github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/getIpRanges.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package aws 5 6 import ( 7 "context" 8 "reflect" 9 10 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Use this data source to get the IP ranges of various AWS products and services. For more information about the contents of this data source and required JSON syntax if referencing a custom URL, see the [AWS IP Address Ranges documentation](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html). 15 // 16 // ## Example Usage 17 // 18 // <!--Start PulumiCodeChooser --> 19 // ```go 20 // package main 21 // 22 // import ( 23 // 24 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // europeanEc2, err := aws.GetIpRanges(ctx, &aws.GetIpRangesArgs{ 33 // Regions: []string{ 34 // "eu-west-1", 35 // "eu-central-1", 36 // }, 37 // Services: []string{ 38 // "ec2", 39 // }, 40 // }, nil) 41 // if err != nil { 42 // return err 43 // } 44 // _, err = ec2.NewSecurityGroup(ctx, "from_europe", &ec2.SecurityGroupArgs{ 45 // Name: pulumi.String("from_europe"), 46 // Ingress: ec2.SecurityGroupIngressArray{ 47 // &ec2.SecurityGroupIngressArgs{ 48 // FromPort: pulumi.Int(443), 49 // ToPort: pulumi.Int(443), 50 // Protocol: pulumi.String("tcp"), 51 // CidrBlocks: interface{}(europeanEc2.CidrBlocks), 52 // Ipv6CidrBlocks: interface{}(europeanEc2.Ipv6CidrBlocks), 53 // }, 54 // }, 55 // Tags: pulumi.StringMap{ 56 // "CreateDate": pulumi.String(europeanEc2.CreateDate), 57 // "SyncToken": pulumi.Int(europeanEc2.SyncToken), 58 // }, 59 // }) 60 // if err != nil { 61 // return err 62 // } 63 // return nil 64 // }) 65 // } 66 // 67 // ``` 68 // <!--End PulumiCodeChooser --> 69 func GetIpRanges(ctx *pulumi.Context, args *GetIpRangesArgs, opts ...pulumi.InvokeOption) (*GetIpRangesResult, error) { 70 opts = internal.PkgInvokeDefaultOpts(opts) 71 var rv GetIpRangesResult 72 err := ctx.Invoke("aws:index/getIpRanges:getIpRanges", args, &rv, opts...) 73 if err != nil { 74 return nil, err 75 } 76 return &rv, nil 77 } 78 79 // A collection of arguments for invoking getIpRanges. 80 type GetIpRangesArgs struct { 81 Id *string `pulumi:"id"` 82 // Filter IP ranges by regions (or include all regions, if 83 // omitted). Valid items are `global` (for `cloudfront`) as well as all AWS regions 84 // (e.g., `eu-central-1`) 85 Regions []string `pulumi:"regions"` 86 // Filter IP ranges by services. Valid items are `amazon` 87 // (for amazon.com), `amazonConnect`, `apiGateway`, `cloud9`, `cloudfront`, 88 // `codebuild`, `dynamodb`, `ec2`, `ec2InstanceConnect`, `globalaccelerator`, 89 // `route53`, `route53Healthchecks`, `s3` and `workspacesGateways`. See the 90 // [`service` attribute][2] documentation for other possible values. 91 // 92 // > **NOTE:** If the specified combination of regions and services does not yield any 93 // CIDR blocks, this call will fail. 94 Services []string `pulumi:"services"` 95 // Custom URL for source JSON file. Syntax must match [AWS IP Address Ranges documentation](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html). Defaults to `https://ip-ranges.amazonaws.com/ip-ranges.json`. 96 Url *string `pulumi:"url"` 97 } 98 99 // A collection of values returned by getIpRanges. 100 type GetIpRangesResult struct { 101 // Lexically ordered list of CIDR blocks. 102 CidrBlocks []string `pulumi:"cidrBlocks"` 103 // Publication time of the IP ranges (e.g., `2016-08-03-23-46-05`). 104 CreateDate string `pulumi:"createDate"` 105 Id string `pulumi:"id"` 106 // Lexically ordered list of IPv6 CIDR blocks. 107 Ipv6CidrBlocks []string `pulumi:"ipv6CidrBlocks"` 108 Regions []string `pulumi:"regions"` 109 Services []string `pulumi:"services"` 110 // Publication time of the IP ranges, in Unix epoch time format 111 // (e.g., `1470267965`). 112 SyncToken int `pulumi:"syncToken"` 113 Url *string `pulumi:"url"` 114 } 115 116 func GetIpRangesOutput(ctx *pulumi.Context, args GetIpRangesOutputArgs, opts ...pulumi.InvokeOption) GetIpRangesResultOutput { 117 return pulumi.ToOutputWithContext(context.Background(), args). 118 ApplyT(func(v interface{}) (GetIpRangesResult, error) { 119 args := v.(GetIpRangesArgs) 120 r, err := GetIpRanges(ctx, &args, opts...) 121 var s GetIpRangesResult 122 if r != nil { 123 s = *r 124 } 125 return s, err 126 }).(GetIpRangesResultOutput) 127 } 128 129 // A collection of arguments for invoking getIpRanges. 130 type GetIpRangesOutputArgs struct { 131 Id pulumi.StringPtrInput `pulumi:"id"` 132 // Filter IP ranges by regions (or include all regions, if 133 // omitted). Valid items are `global` (for `cloudfront`) as well as all AWS regions 134 // (e.g., `eu-central-1`) 135 Regions pulumi.StringArrayInput `pulumi:"regions"` 136 // Filter IP ranges by services. Valid items are `amazon` 137 // (for amazon.com), `amazonConnect`, `apiGateway`, `cloud9`, `cloudfront`, 138 // `codebuild`, `dynamodb`, `ec2`, `ec2InstanceConnect`, `globalaccelerator`, 139 // `route53`, `route53Healthchecks`, `s3` and `workspacesGateways`. See the 140 // [`service` attribute][2] documentation for other possible values. 141 // 142 // > **NOTE:** If the specified combination of regions and services does not yield any 143 // CIDR blocks, this call will fail. 144 Services pulumi.StringArrayInput `pulumi:"services"` 145 // Custom URL for source JSON file. Syntax must match [AWS IP Address Ranges documentation](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html). Defaults to `https://ip-ranges.amazonaws.com/ip-ranges.json`. 146 Url pulumi.StringPtrInput `pulumi:"url"` 147 } 148 149 func (GetIpRangesOutputArgs) ElementType() reflect.Type { 150 return reflect.TypeOf((*GetIpRangesArgs)(nil)).Elem() 151 } 152 153 // A collection of values returned by getIpRanges. 154 type GetIpRangesResultOutput struct{ *pulumi.OutputState } 155 156 func (GetIpRangesResultOutput) ElementType() reflect.Type { 157 return reflect.TypeOf((*GetIpRangesResult)(nil)).Elem() 158 } 159 160 func (o GetIpRangesResultOutput) ToGetIpRangesResultOutput() GetIpRangesResultOutput { 161 return o 162 } 163 164 func (o GetIpRangesResultOutput) ToGetIpRangesResultOutputWithContext(ctx context.Context) GetIpRangesResultOutput { 165 return o 166 } 167 168 // Lexically ordered list of CIDR blocks. 169 func (o GetIpRangesResultOutput) CidrBlocks() pulumi.StringArrayOutput { 170 return o.ApplyT(func(v GetIpRangesResult) []string { return v.CidrBlocks }).(pulumi.StringArrayOutput) 171 } 172 173 // Publication time of the IP ranges (e.g., `2016-08-03-23-46-05`). 174 func (o GetIpRangesResultOutput) CreateDate() pulumi.StringOutput { 175 return o.ApplyT(func(v GetIpRangesResult) string { return v.CreateDate }).(pulumi.StringOutput) 176 } 177 178 func (o GetIpRangesResultOutput) Id() pulumi.StringOutput { 179 return o.ApplyT(func(v GetIpRangesResult) string { return v.Id }).(pulumi.StringOutput) 180 } 181 182 // Lexically ordered list of IPv6 CIDR blocks. 183 func (o GetIpRangesResultOutput) Ipv6CidrBlocks() pulumi.StringArrayOutput { 184 return o.ApplyT(func(v GetIpRangesResult) []string { return v.Ipv6CidrBlocks }).(pulumi.StringArrayOutput) 185 } 186 187 func (o GetIpRangesResultOutput) Regions() pulumi.StringArrayOutput { 188 return o.ApplyT(func(v GetIpRangesResult) []string { return v.Regions }).(pulumi.StringArrayOutput) 189 } 190 191 func (o GetIpRangesResultOutput) Services() pulumi.StringArrayOutput { 192 return o.ApplyT(func(v GetIpRangesResult) []string { return v.Services }).(pulumi.StringArrayOutput) 193 } 194 195 // Publication time of the IP ranges, in Unix epoch time format 196 // (e.g., `1470267965`). 197 func (o GetIpRangesResultOutput) SyncToken() pulumi.IntOutput { 198 return o.ApplyT(func(v GetIpRangesResult) int { return v.SyncToken }).(pulumi.IntOutput) 199 } 200 201 func (o GetIpRangesResultOutput) Url() pulumi.StringPtrOutput { 202 return o.ApplyT(func(v GetIpRangesResult) *string { return v.Url }).(pulumi.StringPtrOutput) 203 } 204 205 func init() { 206 pulumi.RegisterOutputType(GetIpRangesResultOutput{}) 207 }