1. Packages
  2. Cloudflare Provider
  3. API Docs
  4. getIpRanges
Cloudflare v5.39.1 published on Tuesday, Sep 24, 2024 by Pulumi

cloudflare.getIpRanges

Explore with Pulumi AI

cloudflare logo
Cloudflare v5.39.1 published on Tuesday, Sep 24, 2024 by Pulumi

    Use this data source to get the IP ranges of Cloudflare network.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as cloudflare from "@pulumi/cloudflare";
    import * as example from "@pulumi/example";
    
    const cloudflare = cloudflare.getIpRanges({});
    const example = new example.index.FirewallResource("example", {
        name: "from-cloudflare",
        network: "default",
        sourceRanges: cloudflare.ipv4CidrBlocks,
        allow: [{
            ports: "443",
            protocol: "tcp",
        }],
    });
    
    import pulumi
    import pulumi_cloudflare as cloudflare
    import pulumi_example as example
    
    cloudflare = cloudflare.get_ip_ranges()
    example = example.index.FirewallResource("example",
        name=from-cloudflare,
        network=default,
        source_ranges=cloudflare.ipv4_cidr_blocks,
        allow=[{
            ports: 443,
            protocol: tcp,
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-cloudflare/sdk/v5/go/cloudflare"
    	"github.com/pulumi/pulumi-example/sdk/go/example"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cloudflare, err := cloudflare.GetIpRanges(ctx, nil, nil)
    		if err != nil {
    			return err
    		}
    		_, err = example.NewFirewallResource(ctx, "example", &example.FirewallResourceArgs{
    			Name:         "from-cloudflare",
    			Network:      "default",
    			SourceRanges: cloudflare.Ipv4CidrBlocks,
    			Allow: []map[string]interface{}{
    				map[string]interface{}{
    					"ports":    "443",
    					"protocol": "tcp",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Cloudflare = Pulumi.Cloudflare;
    using Example = Pulumi.Example;
    
    return await Deployment.RunAsync(() => 
    {
        var cloudflare = Cloudflare.GetIpRanges.Invoke();
    
        var example = new Example.Index.FirewallResource("example", new()
        {
            Name = "from-cloudflare",
            Network = "default",
            SourceRanges = cloudflare.Apply(getIpRangesResult => getIpRangesResult.Ipv4CidrBlocks),
            Allow = new[]
            {
                
                {
                    { "ports", "443" },
                    { "protocol", "tcp" },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.cloudflare.CloudflareFunctions;
    import com.pulumi.example.firewallResource;
    import com.pulumi.example.FirewallResourceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var cloudflare = CloudflareFunctions.getIpRanges();
    
            var example = new FirewallResource("example", FirewallResourceArgs.builder()
                .name("from-cloudflare")
                .network("default")
                .sourceRanges(cloudflare.applyValue(getIpRangesResult -> getIpRangesResult.ipv4CidrBlocks()))
                .allow(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                .build());
    
        }
    }
    
    resources:
      example:
        type: example:firewallResource
        properties:
          name: from-cloudflare
          network: default
          sourceRanges: ${cloudflare.ipv4CidrBlocks}
          allow:
            - ports: '443'
              protocol: tcp
    variables:
      cloudflare:
        fn::invoke:
          Function: cloudflare:getIpRanges
          Arguments: {}
    

    Using getIpRanges

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getIpRanges(opts?: InvokeOptions): Promise<GetIpRangesResult>
    function getIpRangesOutput(opts?: InvokeOptions): Output<GetIpRangesResult>
    def get_ip_ranges(opts: Optional[InvokeOptions] = None) -> GetIpRangesResult
    def get_ip_ranges_output(opts: Optional[InvokeOptions] = None) -> Output[GetIpRangesResult]
    func GetIpRanges(ctx *Context, opts ...InvokeOption) (*GetIpRangesResult, error)
    func GetIpRangesOutput(ctx *Context, opts ...InvokeOption) GetIpRangesResultOutput

    > Note: This function is named GetIpRanges in the Go SDK.

    public static class GetIpRanges 
    {
        public static Task<GetIpRangesResult> InvokeAsync(InvokeOptions? opts = null)
        public static Output<GetIpRangesResult> Invoke(InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetIpRangesResult> getIpRanges(InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: cloudflare:index/getIpRanges:getIpRanges
      arguments:
        # arguments dictionary

    getIpRanges Result

    The following output properties are available:

    ChinaIpv4CidrBlocks List<string>
    The lexically ordered list of only the IPv4 China CIDR blocks.
    ChinaIpv6CidrBlocks List<string>
    The lexically ordered list of only the IPv6 China CIDR blocks.
    CidrBlocks List<string>
    The lexically ordered list of all non-China CIDR blocks.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ipv4CidrBlocks List<string>
    The lexically ordered list of only the IPv4 CIDR blocks.
    Ipv6CidrBlocks List<string>
    The lexically ordered list of only the IPv6 CIDR blocks.
    ChinaIpv4CidrBlocks []string
    The lexically ordered list of only the IPv4 China CIDR blocks.
    ChinaIpv6CidrBlocks []string
    The lexically ordered list of only the IPv6 China CIDR blocks.
    CidrBlocks []string
    The lexically ordered list of all non-China CIDR blocks.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ipv4CidrBlocks []string
    The lexically ordered list of only the IPv4 CIDR blocks.
    Ipv6CidrBlocks []string
    The lexically ordered list of only the IPv6 CIDR blocks.
    chinaIpv4CidrBlocks List<String>
    The lexically ordered list of only the IPv4 China CIDR blocks.
    chinaIpv6CidrBlocks List<String>
    The lexically ordered list of only the IPv6 China CIDR blocks.
    cidrBlocks List<String>
    The lexically ordered list of all non-China CIDR blocks.
    id String
    The provider-assigned unique ID for this managed resource.
    ipv4CidrBlocks List<String>
    The lexically ordered list of only the IPv4 CIDR blocks.
    ipv6CidrBlocks List<String>
    The lexically ordered list of only the IPv6 CIDR blocks.
    chinaIpv4CidrBlocks string[]
    The lexically ordered list of only the IPv4 China CIDR blocks.
    chinaIpv6CidrBlocks string[]
    The lexically ordered list of only the IPv6 China CIDR blocks.
    cidrBlocks string[]
    The lexically ordered list of all non-China CIDR blocks.
    id string
    The provider-assigned unique ID for this managed resource.
    ipv4CidrBlocks string[]
    The lexically ordered list of only the IPv4 CIDR blocks.
    ipv6CidrBlocks string[]
    The lexically ordered list of only the IPv6 CIDR blocks.
    china_ipv4_cidr_blocks Sequence[str]
    The lexically ordered list of only the IPv4 China CIDR blocks.
    china_ipv6_cidr_blocks Sequence[str]
    The lexically ordered list of only the IPv6 China CIDR blocks.
    cidr_blocks Sequence[str]
    The lexically ordered list of all non-China CIDR blocks.
    id str
    The provider-assigned unique ID for this managed resource.
    ipv4_cidr_blocks Sequence[str]
    The lexically ordered list of only the IPv4 CIDR blocks.
    ipv6_cidr_blocks Sequence[str]
    The lexically ordered list of only the IPv6 CIDR blocks.
    chinaIpv4CidrBlocks List<String>
    The lexically ordered list of only the IPv4 China CIDR blocks.
    chinaIpv6CidrBlocks List<String>
    The lexically ordered list of only the IPv6 China CIDR blocks.
    cidrBlocks List<String>
    The lexically ordered list of all non-China CIDR blocks.
    id String
    The provider-assigned unique ID for this managed resource.
    ipv4CidrBlocks List<String>
    The lexically ordered list of only the IPv4 CIDR blocks.
    ipv6CidrBlocks List<String>
    The lexically ordered list of only the IPv6 CIDR blocks.

    Package Details

    Repository
    Cloudflare pulumi/pulumi-cloudflare
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the cloudflare Terraform Provider.
    cloudflare logo
    Cloudflare v5.39.1 published on Tuesday, Sep 24, 2024 by Pulumi