github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/eipDomainName.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 ec2 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Assigns a static reverse DNS record to an Elastic IP addresses. See [Using reverse DNS for email applications](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS). 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // example, err := ec2.NewEip(ctx, "example", &ec2.EipArgs{ 34 // Domain: pulumi.String("vpc"), 35 // }) 36 // if err != nil { 37 // return err 38 // } 39 // exampleRecord, err := route53.NewRecord(ctx, "example", &route53.RecordArgs{ 40 // ZoneId: pulumi.Any(main.ZoneId), 41 // Name: pulumi.String("reverse"), 42 // Type: pulumi.String(route53.RecordTypeA), 43 // Records: pulumi.StringArray{ 44 // example.PublicIp, 45 // }, 46 // }) 47 // if err != nil { 48 // return err 49 // } 50 // _, err = ec2.NewEipDomainName(ctx, "example", &ec2.EipDomainNameArgs{ 51 // AllocationId: example.AllocationId, 52 // DomainName: exampleRecord.Fqdn, 53 // }) 54 // if err != nil { 55 // return err 56 // } 57 // return nil 58 // }) 59 // } 60 // 61 // ``` 62 // <!--End PulumiCodeChooser --> 63 type EipDomainName struct { 64 pulumi.CustomResourceState 65 66 // The allocation ID. 67 AllocationId pulumi.StringOutput `pulumi:"allocationId"` 68 // The domain name to modify for the IP address. 69 DomainName pulumi.StringOutput `pulumi:"domainName"` 70 // The DNS pointer (PTR) record for the IP address. 71 PtrRecord pulumi.StringOutput `pulumi:"ptrRecord"` 72 Timeouts EipDomainNameTimeoutsPtrOutput `pulumi:"timeouts"` 73 } 74 75 // NewEipDomainName registers a new resource with the given unique name, arguments, and options. 76 func NewEipDomainName(ctx *pulumi.Context, 77 name string, args *EipDomainNameArgs, opts ...pulumi.ResourceOption) (*EipDomainName, error) { 78 if args == nil { 79 return nil, errors.New("missing one or more required arguments") 80 } 81 82 if args.AllocationId == nil { 83 return nil, errors.New("invalid value for required argument 'AllocationId'") 84 } 85 if args.DomainName == nil { 86 return nil, errors.New("invalid value for required argument 'DomainName'") 87 } 88 opts = internal.PkgResourceDefaultOpts(opts) 89 var resource EipDomainName 90 err := ctx.RegisterResource("aws:ec2/eipDomainName:EipDomainName", name, args, &resource, opts...) 91 if err != nil { 92 return nil, err 93 } 94 return &resource, nil 95 } 96 97 // GetEipDomainName gets an existing EipDomainName resource's state with the given name, ID, and optional 98 // state properties that are used to uniquely qualify the lookup (nil if not required). 99 func GetEipDomainName(ctx *pulumi.Context, 100 name string, id pulumi.IDInput, state *EipDomainNameState, opts ...pulumi.ResourceOption) (*EipDomainName, error) { 101 var resource EipDomainName 102 err := ctx.ReadResource("aws:ec2/eipDomainName:EipDomainName", name, id, state, &resource, opts...) 103 if err != nil { 104 return nil, err 105 } 106 return &resource, nil 107 } 108 109 // Input properties used for looking up and filtering EipDomainName resources. 110 type eipDomainNameState struct { 111 // The allocation ID. 112 AllocationId *string `pulumi:"allocationId"` 113 // The domain name to modify for the IP address. 114 DomainName *string `pulumi:"domainName"` 115 // The DNS pointer (PTR) record for the IP address. 116 PtrRecord *string `pulumi:"ptrRecord"` 117 Timeouts *EipDomainNameTimeouts `pulumi:"timeouts"` 118 } 119 120 type EipDomainNameState struct { 121 // The allocation ID. 122 AllocationId pulumi.StringPtrInput 123 // The domain name to modify for the IP address. 124 DomainName pulumi.StringPtrInput 125 // The DNS pointer (PTR) record for the IP address. 126 PtrRecord pulumi.StringPtrInput 127 Timeouts EipDomainNameTimeoutsPtrInput 128 } 129 130 func (EipDomainNameState) ElementType() reflect.Type { 131 return reflect.TypeOf((*eipDomainNameState)(nil)).Elem() 132 } 133 134 type eipDomainNameArgs struct { 135 // The allocation ID. 136 AllocationId string `pulumi:"allocationId"` 137 // The domain name to modify for the IP address. 138 DomainName string `pulumi:"domainName"` 139 Timeouts *EipDomainNameTimeouts `pulumi:"timeouts"` 140 } 141 142 // The set of arguments for constructing a EipDomainName resource. 143 type EipDomainNameArgs struct { 144 // The allocation ID. 145 AllocationId pulumi.StringInput 146 // The domain name to modify for the IP address. 147 DomainName pulumi.StringInput 148 Timeouts EipDomainNameTimeoutsPtrInput 149 } 150 151 func (EipDomainNameArgs) ElementType() reflect.Type { 152 return reflect.TypeOf((*eipDomainNameArgs)(nil)).Elem() 153 } 154 155 type EipDomainNameInput interface { 156 pulumi.Input 157 158 ToEipDomainNameOutput() EipDomainNameOutput 159 ToEipDomainNameOutputWithContext(ctx context.Context) EipDomainNameOutput 160 } 161 162 func (*EipDomainName) ElementType() reflect.Type { 163 return reflect.TypeOf((**EipDomainName)(nil)).Elem() 164 } 165 166 func (i *EipDomainName) ToEipDomainNameOutput() EipDomainNameOutput { 167 return i.ToEipDomainNameOutputWithContext(context.Background()) 168 } 169 170 func (i *EipDomainName) ToEipDomainNameOutputWithContext(ctx context.Context) EipDomainNameOutput { 171 return pulumi.ToOutputWithContext(ctx, i).(EipDomainNameOutput) 172 } 173 174 // EipDomainNameArrayInput is an input type that accepts EipDomainNameArray and EipDomainNameArrayOutput values. 175 // You can construct a concrete instance of `EipDomainNameArrayInput` via: 176 // 177 // EipDomainNameArray{ EipDomainNameArgs{...} } 178 type EipDomainNameArrayInput interface { 179 pulumi.Input 180 181 ToEipDomainNameArrayOutput() EipDomainNameArrayOutput 182 ToEipDomainNameArrayOutputWithContext(context.Context) EipDomainNameArrayOutput 183 } 184 185 type EipDomainNameArray []EipDomainNameInput 186 187 func (EipDomainNameArray) ElementType() reflect.Type { 188 return reflect.TypeOf((*[]*EipDomainName)(nil)).Elem() 189 } 190 191 func (i EipDomainNameArray) ToEipDomainNameArrayOutput() EipDomainNameArrayOutput { 192 return i.ToEipDomainNameArrayOutputWithContext(context.Background()) 193 } 194 195 func (i EipDomainNameArray) ToEipDomainNameArrayOutputWithContext(ctx context.Context) EipDomainNameArrayOutput { 196 return pulumi.ToOutputWithContext(ctx, i).(EipDomainNameArrayOutput) 197 } 198 199 // EipDomainNameMapInput is an input type that accepts EipDomainNameMap and EipDomainNameMapOutput values. 200 // You can construct a concrete instance of `EipDomainNameMapInput` via: 201 // 202 // EipDomainNameMap{ "key": EipDomainNameArgs{...} } 203 type EipDomainNameMapInput interface { 204 pulumi.Input 205 206 ToEipDomainNameMapOutput() EipDomainNameMapOutput 207 ToEipDomainNameMapOutputWithContext(context.Context) EipDomainNameMapOutput 208 } 209 210 type EipDomainNameMap map[string]EipDomainNameInput 211 212 func (EipDomainNameMap) ElementType() reflect.Type { 213 return reflect.TypeOf((*map[string]*EipDomainName)(nil)).Elem() 214 } 215 216 func (i EipDomainNameMap) ToEipDomainNameMapOutput() EipDomainNameMapOutput { 217 return i.ToEipDomainNameMapOutputWithContext(context.Background()) 218 } 219 220 func (i EipDomainNameMap) ToEipDomainNameMapOutputWithContext(ctx context.Context) EipDomainNameMapOutput { 221 return pulumi.ToOutputWithContext(ctx, i).(EipDomainNameMapOutput) 222 } 223 224 type EipDomainNameOutput struct{ *pulumi.OutputState } 225 226 func (EipDomainNameOutput) ElementType() reflect.Type { 227 return reflect.TypeOf((**EipDomainName)(nil)).Elem() 228 } 229 230 func (o EipDomainNameOutput) ToEipDomainNameOutput() EipDomainNameOutput { 231 return o 232 } 233 234 func (o EipDomainNameOutput) ToEipDomainNameOutputWithContext(ctx context.Context) EipDomainNameOutput { 235 return o 236 } 237 238 // The allocation ID. 239 func (o EipDomainNameOutput) AllocationId() pulumi.StringOutput { 240 return o.ApplyT(func(v *EipDomainName) pulumi.StringOutput { return v.AllocationId }).(pulumi.StringOutput) 241 } 242 243 // The domain name to modify for the IP address. 244 func (o EipDomainNameOutput) DomainName() pulumi.StringOutput { 245 return o.ApplyT(func(v *EipDomainName) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) 246 } 247 248 // The DNS pointer (PTR) record for the IP address. 249 func (o EipDomainNameOutput) PtrRecord() pulumi.StringOutput { 250 return o.ApplyT(func(v *EipDomainName) pulumi.StringOutput { return v.PtrRecord }).(pulumi.StringOutput) 251 } 252 253 func (o EipDomainNameOutput) Timeouts() EipDomainNameTimeoutsPtrOutput { 254 return o.ApplyT(func(v *EipDomainName) EipDomainNameTimeoutsPtrOutput { return v.Timeouts }).(EipDomainNameTimeoutsPtrOutput) 255 } 256 257 type EipDomainNameArrayOutput struct{ *pulumi.OutputState } 258 259 func (EipDomainNameArrayOutput) ElementType() reflect.Type { 260 return reflect.TypeOf((*[]*EipDomainName)(nil)).Elem() 261 } 262 263 func (o EipDomainNameArrayOutput) ToEipDomainNameArrayOutput() EipDomainNameArrayOutput { 264 return o 265 } 266 267 func (o EipDomainNameArrayOutput) ToEipDomainNameArrayOutputWithContext(ctx context.Context) EipDomainNameArrayOutput { 268 return o 269 } 270 271 func (o EipDomainNameArrayOutput) Index(i pulumi.IntInput) EipDomainNameOutput { 272 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EipDomainName { 273 return vs[0].([]*EipDomainName)[vs[1].(int)] 274 }).(EipDomainNameOutput) 275 } 276 277 type EipDomainNameMapOutput struct{ *pulumi.OutputState } 278 279 func (EipDomainNameMapOutput) ElementType() reflect.Type { 280 return reflect.TypeOf((*map[string]*EipDomainName)(nil)).Elem() 281 } 282 283 func (o EipDomainNameMapOutput) ToEipDomainNameMapOutput() EipDomainNameMapOutput { 284 return o 285 } 286 287 func (o EipDomainNameMapOutput) ToEipDomainNameMapOutputWithContext(ctx context.Context) EipDomainNameMapOutput { 288 return o 289 } 290 291 func (o EipDomainNameMapOutput) MapIndex(k pulumi.StringInput) EipDomainNameOutput { 292 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EipDomainName { 293 return vs[0].(map[string]*EipDomainName)[vs[1].(string)] 294 }).(EipDomainNameOutput) 295 } 296 297 func init() { 298 pulumi.RegisterInputType(reflect.TypeOf((*EipDomainNameInput)(nil)).Elem(), &EipDomainName{}) 299 pulumi.RegisterInputType(reflect.TypeOf((*EipDomainNameArrayInput)(nil)).Elem(), EipDomainNameArray{}) 300 pulumi.RegisterInputType(reflect.TypeOf((*EipDomainNameMapInput)(nil)).Elem(), EipDomainNameMap{}) 301 pulumi.RegisterOutputType(EipDomainNameOutput{}) 302 pulumi.RegisterOutputType(EipDomainNameArrayOutput{}) 303 pulumi.RegisterOutputType(EipDomainNameMapOutput{}) 304 }