github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcEndpointPolicy.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 // Provides a VPC Endpoint Policy resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "encoding/json" 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // example, err := ec2.LookupVpcEndpointService(ctx, &ec2.LookupVpcEndpointServiceArgs{ 35 // Service: pulumi.StringRef("dynamodb"), 36 // }, nil) 37 // if err != nil { 38 // return err 39 // } 40 // exampleVpc, err := ec2.NewVpc(ctx, "example", &ec2.VpcArgs{ 41 // CidrBlock: pulumi.String("10.0.0.0/16"), 42 // }) 43 // if err != nil { 44 // return err 45 // } 46 // exampleVpcEndpoint, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ 47 // ServiceName: pulumi.String(example.ServiceName), 48 // VpcId: exampleVpc.ID(), 49 // }) 50 // if err != nil { 51 // return err 52 // } 53 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 54 // "Version": "2012-10-17", 55 // "Statement": []map[string]interface{}{ 56 // map[string]interface{}{ 57 // "Sid": "AllowAll", 58 // "Effect": "Allow", 59 // "Principal": map[string]interface{}{ 60 // "AWS": "*", 61 // }, 62 // "Action": []string{ 63 // "dynamodb:*", 64 // }, 65 // "Resource": "*", 66 // }, 67 // }, 68 // }) 69 // if err != nil { 70 // return err 71 // } 72 // json0 := string(tmpJSON0) 73 // _, err = ec2.NewVpcEndpointPolicy(ctx, "example", &ec2.VpcEndpointPolicyArgs{ 74 // VpcEndpointId: exampleVpcEndpoint.ID(), 75 // Policy: pulumi.String(json0), 76 // }) 77 // if err != nil { 78 // return err 79 // } 80 // return nil 81 // }) 82 // } 83 // 84 // ``` 85 // <!--End PulumiCodeChooser --> 86 // 87 // ## Import 88 // 89 // Using `pulumi import`, import VPC Endpoint Policies using the `id`. For example: 90 // 91 // ```sh 92 // $ pulumi import aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy example vpce-3ecf2a57 93 // ``` 94 type VpcEndpointPolicy struct { 95 pulumi.CustomResourceState 96 97 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 98 Policy pulumi.StringOutput `pulumi:"policy"` 99 // The VPC Endpoint ID. 100 VpcEndpointId pulumi.StringOutput `pulumi:"vpcEndpointId"` 101 } 102 103 // NewVpcEndpointPolicy registers a new resource with the given unique name, arguments, and options. 104 func NewVpcEndpointPolicy(ctx *pulumi.Context, 105 name string, args *VpcEndpointPolicyArgs, opts ...pulumi.ResourceOption) (*VpcEndpointPolicy, error) { 106 if args == nil { 107 return nil, errors.New("missing one or more required arguments") 108 } 109 110 if args.VpcEndpointId == nil { 111 return nil, errors.New("invalid value for required argument 'VpcEndpointId'") 112 } 113 opts = internal.PkgResourceDefaultOpts(opts) 114 var resource VpcEndpointPolicy 115 err := ctx.RegisterResource("aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy", name, args, &resource, opts...) 116 if err != nil { 117 return nil, err 118 } 119 return &resource, nil 120 } 121 122 // GetVpcEndpointPolicy gets an existing VpcEndpointPolicy resource's state with the given name, ID, and optional 123 // state properties that are used to uniquely qualify the lookup (nil if not required). 124 func GetVpcEndpointPolicy(ctx *pulumi.Context, 125 name string, id pulumi.IDInput, state *VpcEndpointPolicyState, opts ...pulumi.ResourceOption) (*VpcEndpointPolicy, error) { 126 var resource VpcEndpointPolicy 127 err := ctx.ReadResource("aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy", name, id, state, &resource, opts...) 128 if err != nil { 129 return nil, err 130 } 131 return &resource, nil 132 } 133 134 // Input properties used for looking up and filtering VpcEndpointPolicy resources. 135 type vpcEndpointPolicyState struct { 136 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 137 Policy *string `pulumi:"policy"` 138 // The VPC Endpoint ID. 139 VpcEndpointId *string `pulumi:"vpcEndpointId"` 140 } 141 142 type VpcEndpointPolicyState struct { 143 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 144 Policy pulumi.StringPtrInput 145 // The VPC Endpoint ID. 146 VpcEndpointId pulumi.StringPtrInput 147 } 148 149 func (VpcEndpointPolicyState) ElementType() reflect.Type { 150 return reflect.TypeOf((*vpcEndpointPolicyState)(nil)).Elem() 151 } 152 153 type vpcEndpointPolicyArgs struct { 154 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 155 Policy *string `pulumi:"policy"` 156 // The VPC Endpoint ID. 157 VpcEndpointId string `pulumi:"vpcEndpointId"` 158 } 159 160 // The set of arguments for constructing a VpcEndpointPolicy resource. 161 type VpcEndpointPolicyArgs struct { 162 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 163 Policy pulumi.StringPtrInput 164 // The VPC Endpoint ID. 165 VpcEndpointId pulumi.StringInput 166 } 167 168 func (VpcEndpointPolicyArgs) ElementType() reflect.Type { 169 return reflect.TypeOf((*vpcEndpointPolicyArgs)(nil)).Elem() 170 } 171 172 type VpcEndpointPolicyInput interface { 173 pulumi.Input 174 175 ToVpcEndpointPolicyOutput() VpcEndpointPolicyOutput 176 ToVpcEndpointPolicyOutputWithContext(ctx context.Context) VpcEndpointPolicyOutput 177 } 178 179 func (*VpcEndpointPolicy) ElementType() reflect.Type { 180 return reflect.TypeOf((**VpcEndpointPolicy)(nil)).Elem() 181 } 182 183 func (i *VpcEndpointPolicy) ToVpcEndpointPolicyOutput() VpcEndpointPolicyOutput { 184 return i.ToVpcEndpointPolicyOutputWithContext(context.Background()) 185 } 186 187 func (i *VpcEndpointPolicy) ToVpcEndpointPolicyOutputWithContext(ctx context.Context) VpcEndpointPolicyOutput { 188 return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointPolicyOutput) 189 } 190 191 // VpcEndpointPolicyArrayInput is an input type that accepts VpcEndpointPolicyArray and VpcEndpointPolicyArrayOutput values. 192 // You can construct a concrete instance of `VpcEndpointPolicyArrayInput` via: 193 // 194 // VpcEndpointPolicyArray{ VpcEndpointPolicyArgs{...} } 195 type VpcEndpointPolicyArrayInput interface { 196 pulumi.Input 197 198 ToVpcEndpointPolicyArrayOutput() VpcEndpointPolicyArrayOutput 199 ToVpcEndpointPolicyArrayOutputWithContext(context.Context) VpcEndpointPolicyArrayOutput 200 } 201 202 type VpcEndpointPolicyArray []VpcEndpointPolicyInput 203 204 func (VpcEndpointPolicyArray) ElementType() reflect.Type { 205 return reflect.TypeOf((*[]*VpcEndpointPolicy)(nil)).Elem() 206 } 207 208 func (i VpcEndpointPolicyArray) ToVpcEndpointPolicyArrayOutput() VpcEndpointPolicyArrayOutput { 209 return i.ToVpcEndpointPolicyArrayOutputWithContext(context.Background()) 210 } 211 212 func (i VpcEndpointPolicyArray) ToVpcEndpointPolicyArrayOutputWithContext(ctx context.Context) VpcEndpointPolicyArrayOutput { 213 return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointPolicyArrayOutput) 214 } 215 216 // VpcEndpointPolicyMapInput is an input type that accepts VpcEndpointPolicyMap and VpcEndpointPolicyMapOutput values. 217 // You can construct a concrete instance of `VpcEndpointPolicyMapInput` via: 218 // 219 // VpcEndpointPolicyMap{ "key": VpcEndpointPolicyArgs{...} } 220 type VpcEndpointPolicyMapInput interface { 221 pulumi.Input 222 223 ToVpcEndpointPolicyMapOutput() VpcEndpointPolicyMapOutput 224 ToVpcEndpointPolicyMapOutputWithContext(context.Context) VpcEndpointPolicyMapOutput 225 } 226 227 type VpcEndpointPolicyMap map[string]VpcEndpointPolicyInput 228 229 func (VpcEndpointPolicyMap) ElementType() reflect.Type { 230 return reflect.TypeOf((*map[string]*VpcEndpointPolicy)(nil)).Elem() 231 } 232 233 func (i VpcEndpointPolicyMap) ToVpcEndpointPolicyMapOutput() VpcEndpointPolicyMapOutput { 234 return i.ToVpcEndpointPolicyMapOutputWithContext(context.Background()) 235 } 236 237 func (i VpcEndpointPolicyMap) ToVpcEndpointPolicyMapOutputWithContext(ctx context.Context) VpcEndpointPolicyMapOutput { 238 return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointPolicyMapOutput) 239 } 240 241 type VpcEndpointPolicyOutput struct{ *pulumi.OutputState } 242 243 func (VpcEndpointPolicyOutput) ElementType() reflect.Type { 244 return reflect.TypeOf((**VpcEndpointPolicy)(nil)).Elem() 245 } 246 247 func (o VpcEndpointPolicyOutput) ToVpcEndpointPolicyOutput() VpcEndpointPolicyOutput { 248 return o 249 } 250 251 func (o VpcEndpointPolicyOutput) ToVpcEndpointPolicyOutputWithContext(ctx context.Context) VpcEndpointPolicyOutput { 252 return o 253 } 254 255 // A policy to attach to the endpoint that controls access to the service. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. 256 func (o VpcEndpointPolicyOutput) Policy() pulumi.StringOutput { 257 return o.ApplyT(func(v *VpcEndpointPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 258 } 259 260 // The VPC Endpoint ID. 261 func (o VpcEndpointPolicyOutput) VpcEndpointId() pulumi.StringOutput { 262 return o.ApplyT(func(v *VpcEndpointPolicy) pulumi.StringOutput { return v.VpcEndpointId }).(pulumi.StringOutput) 263 } 264 265 type VpcEndpointPolicyArrayOutput struct{ *pulumi.OutputState } 266 267 func (VpcEndpointPolicyArrayOutput) ElementType() reflect.Type { 268 return reflect.TypeOf((*[]*VpcEndpointPolicy)(nil)).Elem() 269 } 270 271 func (o VpcEndpointPolicyArrayOutput) ToVpcEndpointPolicyArrayOutput() VpcEndpointPolicyArrayOutput { 272 return o 273 } 274 275 func (o VpcEndpointPolicyArrayOutput) ToVpcEndpointPolicyArrayOutputWithContext(ctx context.Context) VpcEndpointPolicyArrayOutput { 276 return o 277 } 278 279 func (o VpcEndpointPolicyArrayOutput) Index(i pulumi.IntInput) VpcEndpointPolicyOutput { 280 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcEndpointPolicy { 281 return vs[0].([]*VpcEndpointPolicy)[vs[1].(int)] 282 }).(VpcEndpointPolicyOutput) 283 } 284 285 type VpcEndpointPolicyMapOutput struct{ *pulumi.OutputState } 286 287 func (VpcEndpointPolicyMapOutput) ElementType() reflect.Type { 288 return reflect.TypeOf((*map[string]*VpcEndpointPolicy)(nil)).Elem() 289 } 290 291 func (o VpcEndpointPolicyMapOutput) ToVpcEndpointPolicyMapOutput() VpcEndpointPolicyMapOutput { 292 return o 293 } 294 295 func (o VpcEndpointPolicyMapOutput) ToVpcEndpointPolicyMapOutputWithContext(ctx context.Context) VpcEndpointPolicyMapOutput { 296 return o 297 } 298 299 func (o VpcEndpointPolicyMapOutput) MapIndex(k pulumi.StringInput) VpcEndpointPolicyOutput { 300 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcEndpointPolicy { 301 return vs[0].(map[string]*VpcEndpointPolicy)[vs[1].(string)] 302 }).(VpcEndpointPolicyOutput) 303 } 304 305 func init() { 306 pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointPolicyInput)(nil)).Elem(), &VpcEndpointPolicy{}) 307 pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointPolicyArrayInput)(nil)).Elem(), VpcEndpointPolicyArray{}) 308 pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointPolicyMapInput)(nil)).Elem(), VpcEndpointPolicyMap{}) 309 pulumi.RegisterOutputType(VpcEndpointPolicyOutput{}) 310 pulumi.RegisterOutputType(VpcEndpointPolicyArrayOutput{}) 311 pulumi.RegisterOutputType(VpcEndpointPolicyMapOutput{}) 312 }