github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2transitgateway/multicastGroupMember.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 ec2transitgateway 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 // Registers members (network interfaces) with the transit gateway multicast group. 16 // A member is a network interface associated with a supported EC2 instance that receives multicast traffic. 17 // 18 // ## Example Usage 19 // 20 // <!--Start PulumiCodeChooser --> 21 // ```go 22 // package main 23 // 24 // import ( 25 // 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // _, err := ec2transitgateway.NewMulticastGroupMember(ctx, "example", &ec2transitgateway.MulticastGroupMemberArgs{ 34 // GroupIpAddress: pulumi.String("224.0.0.1"), 35 // NetworkInterfaceId: pulumi.Any(exampleAwsNetworkInterface.Id), 36 // TransitGatewayMulticastDomainId: pulumi.Any(exampleAwsEc2TransitGatewayMulticastDomain.Id), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 type MulticastGroupMember struct { 48 pulumi.CustomResourceState 49 50 // The IP address assigned to the transit gateway multicast group. 51 GroupIpAddress pulumi.StringOutput `pulumi:"groupIpAddress"` 52 // The group members' network interface ID to register with the transit gateway multicast group. 53 NetworkInterfaceId pulumi.StringOutput `pulumi:"networkInterfaceId"` 54 // The ID of the transit gateway multicast domain. 55 TransitGatewayMulticastDomainId pulumi.StringOutput `pulumi:"transitGatewayMulticastDomainId"` 56 } 57 58 // NewMulticastGroupMember registers a new resource with the given unique name, arguments, and options. 59 func NewMulticastGroupMember(ctx *pulumi.Context, 60 name string, args *MulticastGroupMemberArgs, opts ...pulumi.ResourceOption) (*MulticastGroupMember, error) { 61 if args == nil { 62 return nil, errors.New("missing one or more required arguments") 63 } 64 65 if args.GroupIpAddress == nil { 66 return nil, errors.New("invalid value for required argument 'GroupIpAddress'") 67 } 68 if args.NetworkInterfaceId == nil { 69 return nil, errors.New("invalid value for required argument 'NetworkInterfaceId'") 70 } 71 if args.TransitGatewayMulticastDomainId == nil { 72 return nil, errors.New("invalid value for required argument 'TransitGatewayMulticastDomainId'") 73 } 74 opts = internal.PkgResourceDefaultOpts(opts) 75 var resource MulticastGroupMember 76 err := ctx.RegisterResource("aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember", name, args, &resource, opts...) 77 if err != nil { 78 return nil, err 79 } 80 return &resource, nil 81 } 82 83 // GetMulticastGroupMember gets an existing MulticastGroupMember resource's state with the given name, ID, and optional 84 // state properties that are used to uniquely qualify the lookup (nil if not required). 85 func GetMulticastGroupMember(ctx *pulumi.Context, 86 name string, id pulumi.IDInput, state *MulticastGroupMemberState, opts ...pulumi.ResourceOption) (*MulticastGroupMember, error) { 87 var resource MulticastGroupMember 88 err := ctx.ReadResource("aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember", name, id, state, &resource, opts...) 89 if err != nil { 90 return nil, err 91 } 92 return &resource, nil 93 } 94 95 // Input properties used for looking up and filtering MulticastGroupMember resources. 96 type multicastGroupMemberState struct { 97 // The IP address assigned to the transit gateway multicast group. 98 GroupIpAddress *string `pulumi:"groupIpAddress"` 99 // The group members' network interface ID to register with the transit gateway multicast group. 100 NetworkInterfaceId *string `pulumi:"networkInterfaceId"` 101 // The ID of the transit gateway multicast domain. 102 TransitGatewayMulticastDomainId *string `pulumi:"transitGatewayMulticastDomainId"` 103 } 104 105 type MulticastGroupMemberState struct { 106 // The IP address assigned to the transit gateway multicast group. 107 GroupIpAddress pulumi.StringPtrInput 108 // The group members' network interface ID to register with the transit gateway multicast group. 109 NetworkInterfaceId pulumi.StringPtrInput 110 // The ID of the transit gateway multicast domain. 111 TransitGatewayMulticastDomainId pulumi.StringPtrInput 112 } 113 114 func (MulticastGroupMemberState) ElementType() reflect.Type { 115 return reflect.TypeOf((*multicastGroupMemberState)(nil)).Elem() 116 } 117 118 type multicastGroupMemberArgs struct { 119 // The IP address assigned to the transit gateway multicast group. 120 GroupIpAddress string `pulumi:"groupIpAddress"` 121 // The group members' network interface ID to register with the transit gateway multicast group. 122 NetworkInterfaceId string `pulumi:"networkInterfaceId"` 123 // The ID of the transit gateway multicast domain. 124 TransitGatewayMulticastDomainId string `pulumi:"transitGatewayMulticastDomainId"` 125 } 126 127 // The set of arguments for constructing a MulticastGroupMember resource. 128 type MulticastGroupMemberArgs struct { 129 // The IP address assigned to the transit gateway multicast group. 130 GroupIpAddress pulumi.StringInput 131 // The group members' network interface ID to register with the transit gateway multicast group. 132 NetworkInterfaceId pulumi.StringInput 133 // The ID of the transit gateway multicast domain. 134 TransitGatewayMulticastDomainId pulumi.StringInput 135 } 136 137 func (MulticastGroupMemberArgs) ElementType() reflect.Type { 138 return reflect.TypeOf((*multicastGroupMemberArgs)(nil)).Elem() 139 } 140 141 type MulticastGroupMemberInput interface { 142 pulumi.Input 143 144 ToMulticastGroupMemberOutput() MulticastGroupMemberOutput 145 ToMulticastGroupMemberOutputWithContext(ctx context.Context) MulticastGroupMemberOutput 146 } 147 148 func (*MulticastGroupMember) ElementType() reflect.Type { 149 return reflect.TypeOf((**MulticastGroupMember)(nil)).Elem() 150 } 151 152 func (i *MulticastGroupMember) ToMulticastGroupMemberOutput() MulticastGroupMemberOutput { 153 return i.ToMulticastGroupMemberOutputWithContext(context.Background()) 154 } 155 156 func (i *MulticastGroupMember) ToMulticastGroupMemberOutputWithContext(ctx context.Context) MulticastGroupMemberOutput { 157 return pulumi.ToOutputWithContext(ctx, i).(MulticastGroupMemberOutput) 158 } 159 160 // MulticastGroupMemberArrayInput is an input type that accepts MulticastGroupMemberArray and MulticastGroupMemberArrayOutput values. 161 // You can construct a concrete instance of `MulticastGroupMemberArrayInput` via: 162 // 163 // MulticastGroupMemberArray{ MulticastGroupMemberArgs{...} } 164 type MulticastGroupMemberArrayInput interface { 165 pulumi.Input 166 167 ToMulticastGroupMemberArrayOutput() MulticastGroupMemberArrayOutput 168 ToMulticastGroupMemberArrayOutputWithContext(context.Context) MulticastGroupMemberArrayOutput 169 } 170 171 type MulticastGroupMemberArray []MulticastGroupMemberInput 172 173 func (MulticastGroupMemberArray) ElementType() reflect.Type { 174 return reflect.TypeOf((*[]*MulticastGroupMember)(nil)).Elem() 175 } 176 177 func (i MulticastGroupMemberArray) ToMulticastGroupMemberArrayOutput() MulticastGroupMemberArrayOutput { 178 return i.ToMulticastGroupMemberArrayOutputWithContext(context.Background()) 179 } 180 181 func (i MulticastGroupMemberArray) ToMulticastGroupMemberArrayOutputWithContext(ctx context.Context) MulticastGroupMemberArrayOutput { 182 return pulumi.ToOutputWithContext(ctx, i).(MulticastGroupMemberArrayOutput) 183 } 184 185 // MulticastGroupMemberMapInput is an input type that accepts MulticastGroupMemberMap and MulticastGroupMemberMapOutput values. 186 // You can construct a concrete instance of `MulticastGroupMemberMapInput` via: 187 // 188 // MulticastGroupMemberMap{ "key": MulticastGroupMemberArgs{...} } 189 type MulticastGroupMemberMapInput interface { 190 pulumi.Input 191 192 ToMulticastGroupMemberMapOutput() MulticastGroupMemberMapOutput 193 ToMulticastGroupMemberMapOutputWithContext(context.Context) MulticastGroupMemberMapOutput 194 } 195 196 type MulticastGroupMemberMap map[string]MulticastGroupMemberInput 197 198 func (MulticastGroupMemberMap) ElementType() reflect.Type { 199 return reflect.TypeOf((*map[string]*MulticastGroupMember)(nil)).Elem() 200 } 201 202 func (i MulticastGroupMemberMap) ToMulticastGroupMemberMapOutput() MulticastGroupMemberMapOutput { 203 return i.ToMulticastGroupMemberMapOutputWithContext(context.Background()) 204 } 205 206 func (i MulticastGroupMemberMap) ToMulticastGroupMemberMapOutputWithContext(ctx context.Context) MulticastGroupMemberMapOutput { 207 return pulumi.ToOutputWithContext(ctx, i).(MulticastGroupMemberMapOutput) 208 } 209 210 type MulticastGroupMemberOutput struct{ *pulumi.OutputState } 211 212 func (MulticastGroupMemberOutput) ElementType() reflect.Type { 213 return reflect.TypeOf((**MulticastGroupMember)(nil)).Elem() 214 } 215 216 func (o MulticastGroupMemberOutput) ToMulticastGroupMemberOutput() MulticastGroupMemberOutput { 217 return o 218 } 219 220 func (o MulticastGroupMemberOutput) ToMulticastGroupMemberOutputWithContext(ctx context.Context) MulticastGroupMemberOutput { 221 return o 222 } 223 224 // The IP address assigned to the transit gateway multicast group. 225 func (o MulticastGroupMemberOutput) GroupIpAddress() pulumi.StringOutput { 226 return o.ApplyT(func(v *MulticastGroupMember) pulumi.StringOutput { return v.GroupIpAddress }).(pulumi.StringOutput) 227 } 228 229 // The group members' network interface ID to register with the transit gateway multicast group. 230 func (o MulticastGroupMemberOutput) NetworkInterfaceId() pulumi.StringOutput { 231 return o.ApplyT(func(v *MulticastGroupMember) pulumi.StringOutput { return v.NetworkInterfaceId }).(pulumi.StringOutput) 232 } 233 234 // The ID of the transit gateway multicast domain. 235 func (o MulticastGroupMemberOutput) TransitGatewayMulticastDomainId() pulumi.StringOutput { 236 return o.ApplyT(func(v *MulticastGroupMember) pulumi.StringOutput { return v.TransitGatewayMulticastDomainId }).(pulumi.StringOutput) 237 } 238 239 type MulticastGroupMemberArrayOutput struct{ *pulumi.OutputState } 240 241 func (MulticastGroupMemberArrayOutput) ElementType() reflect.Type { 242 return reflect.TypeOf((*[]*MulticastGroupMember)(nil)).Elem() 243 } 244 245 func (o MulticastGroupMemberArrayOutput) ToMulticastGroupMemberArrayOutput() MulticastGroupMemberArrayOutput { 246 return o 247 } 248 249 func (o MulticastGroupMemberArrayOutput) ToMulticastGroupMemberArrayOutputWithContext(ctx context.Context) MulticastGroupMemberArrayOutput { 250 return o 251 } 252 253 func (o MulticastGroupMemberArrayOutput) Index(i pulumi.IntInput) MulticastGroupMemberOutput { 254 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MulticastGroupMember { 255 return vs[0].([]*MulticastGroupMember)[vs[1].(int)] 256 }).(MulticastGroupMemberOutput) 257 } 258 259 type MulticastGroupMemberMapOutput struct{ *pulumi.OutputState } 260 261 func (MulticastGroupMemberMapOutput) ElementType() reflect.Type { 262 return reflect.TypeOf((*map[string]*MulticastGroupMember)(nil)).Elem() 263 } 264 265 func (o MulticastGroupMemberMapOutput) ToMulticastGroupMemberMapOutput() MulticastGroupMemberMapOutput { 266 return o 267 } 268 269 func (o MulticastGroupMemberMapOutput) ToMulticastGroupMemberMapOutputWithContext(ctx context.Context) MulticastGroupMemberMapOutput { 270 return o 271 } 272 273 func (o MulticastGroupMemberMapOutput) MapIndex(k pulumi.StringInput) MulticastGroupMemberOutput { 274 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MulticastGroupMember { 275 return vs[0].(map[string]*MulticastGroupMember)[vs[1].(string)] 276 }).(MulticastGroupMemberOutput) 277 } 278 279 func init() { 280 pulumi.RegisterInputType(reflect.TypeOf((*MulticastGroupMemberInput)(nil)).Elem(), &MulticastGroupMember{}) 281 pulumi.RegisterInputType(reflect.TypeOf((*MulticastGroupMemberArrayInput)(nil)).Elem(), MulticastGroupMemberArray{}) 282 pulumi.RegisterInputType(reflect.TypeOf((*MulticastGroupMemberMapInput)(nil)).Elem(), MulticastGroupMemberMap{}) 283 pulumi.RegisterOutputType(MulticastGroupMemberOutput{}) 284 pulumi.RegisterOutputType(MulticastGroupMemberArrayOutput{}) 285 pulumi.RegisterOutputType(MulticastGroupMemberMapOutput{}) 286 }