github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudfront/originAccessControl.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 cloudfront 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 // Manages an AWS CloudFront Origin Access Control, which is used by CloudFront Distributions with an Amazon S3 bucket as the origin. 16 // 17 // Read more about Origin Access Control in the [CloudFront Developer Guide](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html). 18 // 19 // ## Example Usage 20 // 21 // ### Basic Usage 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // _, err := cloudfront.NewOriginAccessControl(ctx, "example", &cloudfront.OriginAccessControlArgs{ 37 // Name: pulumi.String("example"), 38 // Description: pulumi.String("Example Policy"), 39 // OriginAccessControlOriginType: pulumi.String("s3"), 40 // SigningBehavior: pulumi.String("always"), 41 // SigningProtocol: pulumi.String("sigv4"), 42 // }) 43 // if err != nil { 44 // return err 45 // } 46 // return nil 47 // }) 48 // } 49 // 50 // ``` 51 // <!--End PulumiCodeChooser --> 52 // 53 // ## Import 54 // 55 // Using `pulumi import`, import CloudFront Origin Access Control using the `id`. For example: 56 // 57 // ```sh 58 // $ pulumi import aws:cloudfront/originAccessControl:OriginAccessControl example E327GJI25M56DG 59 // ``` 60 type OriginAccessControl struct { 61 pulumi.CustomResourceState 62 63 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 64 Description pulumi.StringPtrOutput `pulumi:"description"` 65 // The current version of this Origin Access Control. 66 Etag pulumi.StringOutput `pulumi:"etag"` 67 // A name that identifies the Origin Access Control. 68 Name pulumi.StringOutput `pulumi:"name"` 69 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 70 OriginAccessControlOriginType pulumi.StringOutput `pulumi:"originAccessControlOriginType"` 71 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 72 SigningBehavior pulumi.StringOutput `pulumi:"signingBehavior"` 73 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 74 SigningProtocol pulumi.StringOutput `pulumi:"signingProtocol"` 75 } 76 77 // NewOriginAccessControl registers a new resource with the given unique name, arguments, and options. 78 func NewOriginAccessControl(ctx *pulumi.Context, 79 name string, args *OriginAccessControlArgs, opts ...pulumi.ResourceOption) (*OriginAccessControl, error) { 80 if args == nil { 81 return nil, errors.New("missing one or more required arguments") 82 } 83 84 if args.OriginAccessControlOriginType == nil { 85 return nil, errors.New("invalid value for required argument 'OriginAccessControlOriginType'") 86 } 87 if args.SigningBehavior == nil { 88 return nil, errors.New("invalid value for required argument 'SigningBehavior'") 89 } 90 if args.SigningProtocol == nil { 91 return nil, errors.New("invalid value for required argument 'SigningProtocol'") 92 } 93 opts = internal.PkgResourceDefaultOpts(opts) 94 var resource OriginAccessControl 95 err := ctx.RegisterResource("aws:cloudfront/originAccessControl:OriginAccessControl", name, args, &resource, opts...) 96 if err != nil { 97 return nil, err 98 } 99 return &resource, nil 100 } 101 102 // GetOriginAccessControl gets an existing OriginAccessControl resource's state with the given name, ID, and optional 103 // state properties that are used to uniquely qualify the lookup (nil if not required). 104 func GetOriginAccessControl(ctx *pulumi.Context, 105 name string, id pulumi.IDInput, state *OriginAccessControlState, opts ...pulumi.ResourceOption) (*OriginAccessControl, error) { 106 var resource OriginAccessControl 107 err := ctx.ReadResource("aws:cloudfront/originAccessControl:OriginAccessControl", name, id, state, &resource, opts...) 108 if err != nil { 109 return nil, err 110 } 111 return &resource, nil 112 } 113 114 // Input properties used for looking up and filtering OriginAccessControl resources. 115 type originAccessControlState struct { 116 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 117 Description *string `pulumi:"description"` 118 // The current version of this Origin Access Control. 119 Etag *string `pulumi:"etag"` 120 // A name that identifies the Origin Access Control. 121 Name *string `pulumi:"name"` 122 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 123 OriginAccessControlOriginType *string `pulumi:"originAccessControlOriginType"` 124 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 125 SigningBehavior *string `pulumi:"signingBehavior"` 126 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 127 SigningProtocol *string `pulumi:"signingProtocol"` 128 } 129 130 type OriginAccessControlState struct { 131 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 132 Description pulumi.StringPtrInput 133 // The current version of this Origin Access Control. 134 Etag pulumi.StringPtrInput 135 // A name that identifies the Origin Access Control. 136 Name pulumi.StringPtrInput 137 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 138 OriginAccessControlOriginType pulumi.StringPtrInput 139 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 140 SigningBehavior pulumi.StringPtrInput 141 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 142 SigningProtocol pulumi.StringPtrInput 143 } 144 145 func (OriginAccessControlState) ElementType() reflect.Type { 146 return reflect.TypeOf((*originAccessControlState)(nil)).Elem() 147 } 148 149 type originAccessControlArgs struct { 150 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 151 Description *string `pulumi:"description"` 152 // A name that identifies the Origin Access Control. 153 Name *string `pulumi:"name"` 154 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 155 OriginAccessControlOriginType string `pulumi:"originAccessControlOriginType"` 156 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 157 SigningBehavior string `pulumi:"signingBehavior"` 158 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 159 SigningProtocol string `pulumi:"signingProtocol"` 160 } 161 162 // The set of arguments for constructing a OriginAccessControl resource. 163 type OriginAccessControlArgs struct { 164 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 165 Description pulumi.StringPtrInput 166 // A name that identifies the Origin Access Control. 167 Name pulumi.StringPtrInput 168 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 169 OriginAccessControlOriginType pulumi.StringInput 170 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 171 SigningBehavior pulumi.StringInput 172 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 173 SigningProtocol pulumi.StringInput 174 } 175 176 func (OriginAccessControlArgs) ElementType() reflect.Type { 177 return reflect.TypeOf((*originAccessControlArgs)(nil)).Elem() 178 } 179 180 type OriginAccessControlInput interface { 181 pulumi.Input 182 183 ToOriginAccessControlOutput() OriginAccessControlOutput 184 ToOriginAccessControlOutputWithContext(ctx context.Context) OriginAccessControlOutput 185 } 186 187 func (*OriginAccessControl) ElementType() reflect.Type { 188 return reflect.TypeOf((**OriginAccessControl)(nil)).Elem() 189 } 190 191 func (i *OriginAccessControl) ToOriginAccessControlOutput() OriginAccessControlOutput { 192 return i.ToOriginAccessControlOutputWithContext(context.Background()) 193 } 194 195 func (i *OriginAccessControl) ToOriginAccessControlOutputWithContext(ctx context.Context) OriginAccessControlOutput { 196 return pulumi.ToOutputWithContext(ctx, i).(OriginAccessControlOutput) 197 } 198 199 // OriginAccessControlArrayInput is an input type that accepts OriginAccessControlArray and OriginAccessControlArrayOutput values. 200 // You can construct a concrete instance of `OriginAccessControlArrayInput` via: 201 // 202 // OriginAccessControlArray{ OriginAccessControlArgs{...} } 203 type OriginAccessControlArrayInput interface { 204 pulumi.Input 205 206 ToOriginAccessControlArrayOutput() OriginAccessControlArrayOutput 207 ToOriginAccessControlArrayOutputWithContext(context.Context) OriginAccessControlArrayOutput 208 } 209 210 type OriginAccessControlArray []OriginAccessControlInput 211 212 func (OriginAccessControlArray) ElementType() reflect.Type { 213 return reflect.TypeOf((*[]*OriginAccessControl)(nil)).Elem() 214 } 215 216 func (i OriginAccessControlArray) ToOriginAccessControlArrayOutput() OriginAccessControlArrayOutput { 217 return i.ToOriginAccessControlArrayOutputWithContext(context.Background()) 218 } 219 220 func (i OriginAccessControlArray) ToOriginAccessControlArrayOutputWithContext(ctx context.Context) OriginAccessControlArrayOutput { 221 return pulumi.ToOutputWithContext(ctx, i).(OriginAccessControlArrayOutput) 222 } 223 224 // OriginAccessControlMapInput is an input type that accepts OriginAccessControlMap and OriginAccessControlMapOutput values. 225 // You can construct a concrete instance of `OriginAccessControlMapInput` via: 226 // 227 // OriginAccessControlMap{ "key": OriginAccessControlArgs{...} } 228 type OriginAccessControlMapInput interface { 229 pulumi.Input 230 231 ToOriginAccessControlMapOutput() OriginAccessControlMapOutput 232 ToOriginAccessControlMapOutputWithContext(context.Context) OriginAccessControlMapOutput 233 } 234 235 type OriginAccessControlMap map[string]OriginAccessControlInput 236 237 func (OriginAccessControlMap) ElementType() reflect.Type { 238 return reflect.TypeOf((*map[string]*OriginAccessControl)(nil)).Elem() 239 } 240 241 func (i OriginAccessControlMap) ToOriginAccessControlMapOutput() OriginAccessControlMapOutput { 242 return i.ToOriginAccessControlMapOutputWithContext(context.Background()) 243 } 244 245 func (i OriginAccessControlMap) ToOriginAccessControlMapOutputWithContext(ctx context.Context) OriginAccessControlMapOutput { 246 return pulumi.ToOutputWithContext(ctx, i).(OriginAccessControlMapOutput) 247 } 248 249 type OriginAccessControlOutput struct{ *pulumi.OutputState } 250 251 func (OriginAccessControlOutput) ElementType() reflect.Type { 252 return reflect.TypeOf((**OriginAccessControl)(nil)).Elem() 253 } 254 255 func (o OriginAccessControlOutput) ToOriginAccessControlOutput() OriginAccessControlOutput { 256 return o 257 } 258 259 func (o OriginAccessControlOutput) ToOriginAccessControlOutputWithContext(ctx context.Context) OriginAccessControlOutput { 260 return o 261 } 262 263 // The description of the Origin Access Control. Defaults to "Managed by Pulumi" if omitted. 264 func (o OriginAccessControlOutput) Description() pulumi.StringPtrOutput { 265 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 266 } 267 268 // The current version of this Origin Access Control. 269 func (o OriginAccessControlOutput) Etag() pulumi.StringOutput { 270 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) 271 } 272 273 // A name that identifies the Origin Access Control. 274 func (o OriginAccessControlOutput) Name() pulumi.StringOutput { 275 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 276 } 277 278 // The type of origin that this Origin Access Control is for. Valid values are `lambda`, `mediapackagev2`, `mediastore`, and `s3`. 279 func (o OriginAccessControlOutput) OriginAccessControlOriginType() pulumi.StringOutput { 280 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringOutput { return v.OriginAccessControlOriginType }).(pulumi.StringOutput) 281 } 282 283 // Specifies which requests CloudFront signs. Specify `always` for the most common use case. Allowed values: `always`, `never`, and `no-override`. 284 func (o OriginAccessControlOutput) SigningBehavior() pulumi.StringOutput { 285 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringOutput { return v.SigningBehavior }).(pulumi.StringOutput) 286 } 287 288 // Determines how CloudFront signs (authenticates) requests. The only valid value is `sigv4`. 289 func (o OriginAccessControlOutput) SigningProtocol() pulumi.StringOutput { 290 return o.ApplyT(func(v *OriginAccessControl) pulumi.StringOutput { return v.SigningProtocol }).(pulumi.StringOutput) 291 } 292 293 type OriginAccessControlArrayOutput struct{ *pulumi.OutputState } 294 295 func (OriginAccessControlArrayOutput) ElementType() reflect.Type { 296 return reflect.TypeOf((*[]*OriginAccessControl)(nil)).Elem() 297 } 298 299 func (o OriginAccessControlArrayOutput) ToOriginAccessControlArrayOutput() OriginAccessControlArrayOutput { 300 return o 301 } 302 303 func (o OriginAccessControlArrayOutput) ToOriginAccessControlArrayOutputWithContext(ctx context.Context) OriginAccessControlArrayOutput { 304 return o 305 } 306 307 func (o OriginAccessControlArrayOutput) Index(i pulumi.IntInput) OriginAccessControlOutput { 308 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OriginAccessControl { 309 return vs[0].([]*OriginAccessControl)[vs[1].(int)] 310 }).(OriginAccessControlOutput) 311 } 312 313 type OriginAccessControlMapOutput struct{ *pulumi.OutputState } 314 315 func (OriginAccessControlMapOutput) ElementType() reflect.Type { 316 return reflect.TypeOf((*map[string]*OriginAccessControl)(nil)).Elem() 317 } 318 319 func (o OriginAccessControlMapOutput) ToOriginAccessControlMapOutput() OriginAccessControlMapOutput { 320 return o 321 } 322 323 func (o OriginAccessControlMapOutput) ToOriginAccessControlMapOutputWithContext(ctx context.Context) OriginAccessControlMapOutput { 324 return o 325 } 326 327 func (o OriginAccessControlMapOutput) MapIndex(k pulumi.StringInput) OriginAccessControlOutput { 328 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OriginAccessControl { 329 return vs[0].(map[string]*OriginAccessControl)[vs[1].(string)] 330 }).(OriginAccessControlOutput) 331 } 332 333 func init() { 334 pulumi.RegisterInputType(reflect.TypeOf((*OriginAccessControlInput)(nil)).Elem(), &OriginAccessControl{}) 335 pulumi.RegisterInputType(reflect.TypeOf((*OriginAccessControlArrayInput)(nil)).Elem(), OriginAccessControlArray{}) 336 pulumi.RegisterInputType(reflect.TypeOf((*OriginAccessControlMapInput)(nil)).Elem(), OriginAccessControlMap{}) 337 pulumi.RegisterOutputType(OriginAccessControlOutput{}) 338 pulumi.RegisterOutputType(OriginAccessControlArrayOutput{}) 339 pulumi.RegisterOutputType(OriginAccessControlMapOutput{}) 340 }