github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudfront/fieldLevelEncryptionProfile.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 // Provides a CloudFront Field-level Encryption Profile resource. 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/cloudfront" 26 // "github.com/pulumi/pulumi-std/sdk/go/std" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // invokeFile, err := std.File(ctx, &std.FileArgs{ 34 // Input: "public_key.pem", 35 // }, nil) 36 // if err != nil { 37 // return err 38 // } 39 // example, err := cloudfront.NewPublicKey(ctx, "example", &cloudfront.PublicKeyArgs{ 40 // Comment: pulumi.String("test public key"), 41 // EncodedKey: invokeFile.Result, 42 // Name: pulumi.String("test_key"), 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // _, err = cloudfront.NewFieldLevelEncryptionProfile(ctx, "test", &cloudfront.FieldLevelEncryptionProfileArgs{ 48 // Comment: pulumi.String("test comment"), 49 // Name: pulumi.String("test profile"), 50 // EncryptionEntities: &cloudfront.FieldLevelEncryptionProfileEncryptionEntitiesArgs{ 51 // Items: cloudfront.FieldLevelEncryptionProfileEncryptionEntitiesItemArray{ 52 // &cloudfront.FieldLevelEncryptionProfileEncryptionEntitiesItemArgs{ 53 // PublicKeyId: example.ID(), 54 // ProviderId: pulumi.String("test provider"), 55 // FieldPatterns: &cloudfront.FieldLevelEncryptionProfileEncryptionEntitiesItemFieldPatternsArgs{ 56 // Items: pulumi.StringArray{ 57 // pulumi.String("DateOfBirth"), 58 // }, 59 // }, 60 // }, 61 // }, 62 // }, 63 // }) 64 // if err != nil { 65 // return err 66 // } 67 // return nil 68 // }) 69 // } 70 // 71 // ``` 72 // <!--End PulumiCodeChooser --> 73 // 74 // ## Import 75 // 76 // Using `pulumi import`, import Cloudfront Field Level Encryption Profile using the `id`. For example: 77 // 78 // ```sh 79 // $ pulumi import aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile profile K3D5EWEUDCCXON 80 // ``` 81 type FieldLevelEncryptionProfile struct { 82 pulumi.CustomResourceState 83 84 // Internal value used by CloudFront to allow future updates to the Field Level Encryption Profile. 85 CallerReference pulumi.StringOutput `pulumi:"callerReference"` 86 // An optional comment about the Field Level Encryption Profile. 87 Comment pulumi.StringPtrOutput `pulumi:"comment"` 88 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 89 EncryptionEntities FieldLevelEncryptionProfileEncryptionEntitiesOutput `pulumi:"encryptionEntities"` 90 // The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. 91 Etag pulumi.StringOutput `pulumi:"etag"` 92 // The name of the Field Level Encryption Profile. 93 Name pulumi.StringOutput `pulumi:"name"` 94 } 95 96 // NewFieldLevelEncryptionProfile registers a new resource with the given unique name, arguments, and options. 97 func NewFieldLevelEncryptionProfile(ctx *pulumi.Context, 98 name string, args *FieldLevelEncryptionProfileArgs, opts ...pulumi.ResourceOption) (*FieldLevelEncryptionProfile, error) { 99 if args == nil { 100 return nil, errors.New("missing one or more required arguments") 101 } 102 103 if args.EncryptionEntities == nil { 104 return nil, errors.New("invalid value for required argument 'EncryptionEntities'") 105 } 106 opts = internal.PkgResourceDefaultOpts(opts) 107 var resource FieldLevelEncryptionProfile 108 err := ctx.RegisterResource("aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile", name, args, &resource, opts...) 109 if err != nil { 110 return nil, err 111 } 112 return &resource, nil 113 } 114 115 // GetFieldLevelEncryptionProfile gets an existing FieldLevelEncryptionProfile resource's state with the given name, ID, and optional 116 // state properties that are used to uniquely qualify the lookup (nil if not required). 117 func GetFieldLevelEncryptionProfile(ctx *pulumi.Context, 118 name string, id pulumi.IDInput, state *FieldLevelEncryptionProfileState, opts ...pulumi.ResourceOption) (*FieldLevelEncryptionProfile, error) { 119 var resource FieldLevelEncryptionProfile 120 err := ctx.ReadResource("aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile", name, id, state, &resource, opts...) 121 if err != nil { 122 return nil, err 123 } 124 return &resource, nil 125 } 126 127 // Input properties used for looking up and filtering FieldLevelEncryptionProfile resources. 128 type fieldLevelEncryptionProfileState struct { 129 // Internal value used by CloudFront to allow future updates to the Field Level Encryption Profile. 130 CallerReference *string `pulumi:"callerReference"` 131 // An optional comment about the Field Level Encryption Profile. 132 Comment *string `pulumi:"comment"` 133 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 134 EncryptionEntities *FieldLevelEncryptionProfileEncryptionEntities `pulumi:"encryptionEntities"` 135 // The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. 136 Etag *string `pulumi:"etag"` 137 // The name of the Field Level Encryption Profile. 138 Name *string `pulumi:"name"` 139 } 140 141 type FieldLevelEncryptionProfileState struct { 142 // Internal value used by CloudFront to allow future updates to the Field Level Encryption Profile. 143 CallerReference pulumi.StringPtrInput 144 // An optional comment about the Field Level Encryption Profile. 145 Comment pulumi.StringPtrInput 146 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 147 EncryptionEntities FieldLevelEncryptionProfileEncryptionEntitiesPtrInput 148 // The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. 149 Etag pulumi.StringPtrInput 150 // The name of the Field Level Encryption Profile. 151 Name pulumi.StringPtrInput 152 } 153 154 func (FieldLevelEncryptionProfileState) ElementType() reflect.Type { 155 return reflect.TypeOf((*fieldLevelEncryptionProfileState)(nil)).Elem() 156 } 157 158 type fieldLevelEncryptionProfileArgs struct { 159 // An optional comment about the Field Level Encryption Profile. 160 Comment *string `pulumi:"comment"` 161 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 162 EncryptionEntities FieldLevelEncryptionProfileEncryptionEntities `pulumi:"encryptionEntities"` 163 // The name of the Field Level Encryption Profile. 164 Name *string `pulumi:"name"` 165 } 166 167 // The set of arguments for constructing a FieldLevelEncryptionProfile resource. 168 type FieldLevelEncryptionProfileArgs struct { 169 // An optional comment about the Field Level Encryption Profile. 170 Comment pulumi.StringPtrInput 171 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 172 EncryptionEntities FieldLevelEncryptionProfileEncryptionEntitiesInput 173 // The name of the Field Level Encryption Profile. 174 Name pulumi.StringPtrInput 175 } 176 177 func (FieldLevelEncryptionProfileArgs) ElementType() reflect.Type { 178 return reflect.TypeOf((*fieldLevelEncryptionProfileArgs)(nil)).Elem() 179 } 180 181 type FieldLevelEncryptionProfileInput interface { 182 pulumi.Input 183 184 ToFieldLevelEncryptionProfileOutput() FieldLevelEncryptionProfileOutput 185 ToFieldLevelEncryptionProfileOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileOutput 186 } 187 188 func (*FieldLevelEncryptionProfile) ElementType() reflect.Type { 189 return reflect.TypeOf((**FieldLevelEncryptionProfile)(nil)).Elem() 190 } 191 192 func (i *FieldLevelEncryptionProfile) ToFieldLevelEncryptionProfileOutput() FieldLevelEncryptionProfileOutput { 193 return i.ToFieldLevelEncryptionProfileOutputWithContext(context.Background()) 194 } 195 196 func (i *FieldLevelEncryptionProfile) ToFieldLevelEncryptionProfileOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileOutput { 197 return pulumi.ToOutputWithContext(ctx, i).(FieldLevelEncryptionProfileOutput) 198 } 199 200 // FieldLevelEncryptionProfileArrayInput is an input type that accepts FieldLevelEncryptionProfileArray and FieldLevelEncryptionProfileArrayOutput values. 201 // You can construct a concrete instance of `FieldLevelEncryptionProfileArrayInput` via: 202 // 203 // FieldLevelEncryptionProfileArray{ FieldLevelEncryptionProfileArgs{...} } 204 type FieldLevelEncryptionProfileArrayInput interface { 205 pulumi.Input 206 207 ToFieldLevelEncryptionProfileArrayOutput() FieldLevelEncryptionProfileArrayOutput 208 ToFieldLevelEncryptionProfileArrayOutputWithContext(context.Context) FieldLevelEncryptionProfileArrayOutput 209 } 210 211 type FieldLevelEncryptionProfileArray []FieldLevelEncryptionProfileInput 212 213 func (FieldLevelEncryptionProfileArray) ElementType() reflect.Type { 214 return reflect.TypeOf((*[]*FieldLevelEncryptionProfile)(nil)).Elem() 215 } 216 217 func (i FieldLevelEncryptionProfileArray) ToFieldLevelEncryptionProfileArrayOutput() FieldLevelEncryptionProfileArrayOutput { 218 return i.ToFieldLevelEncryptionProfileArrayOutputWithContext(context.Background()) 219 } 220 221 func (i FieldLevelEncryptionProfileArray) ToFieldLevelEncryptionProfileArrayOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileArrayOutput { 222 return pulumi.ToOutputWithContext(ctx, i).(FieldLevelEncryptionProfileArrayOutput) 223 } 224 225 // FieldLevelEncryptionProfileMapInput is an input type that accepts FieldLevelEncryptionProfileMap and FieldLevelEncryptionProfileMapOutput values. 226 // You can construct a concrete instance of `FieldLevelEncryptionProfileMapInput` via: 227 // 228 // FieldLevelEncryptionProfileMap{ "key": FieldLevelEncryptionProfileArgs{...} } 229 type FieldLevelEncryptionProfileMapInput interface { 230 pulumi.Input 231 232 ToFieldLevelEncryptionProfileMapOutput() FieldLevelEncryptionProfileMapOutput 233 ToFieldLevelEncryptionProfileMapOutputWithContext(context.Context) FieldLevelEncryptionProfileMapOutput 234 } 235 236 type FieldLevelEncryptionProfileMap map[string]FieldLevelEncryptionProfileInput 237 238 func (FieldLevelEncryptionProfileMap) ElementType() reflect.Type { 239 return reflect.TypeOf((*map[string]*FieldLevelEncryptionProfile)(nil)).Elem() 240 } 241 242 func (i FieldLevelEncryptionProfileMap) ToFieldLevelEncryptionProfileMapOutput() FieldLevelEncryptionProfileMapOutput { 243 return i.ToFieldLevelEncryptionProfileMapOutputWithContext(context.Background()) 244 } 245 246 func (i FieldLevelEncryptionProfileMap) ToFieldLevelEncryptionProfileMapOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileMapOutput { 247 return pulumi.ToOutputWithContext(ctx, i).(FieldLevelEncryptionProfileMapOutput) 248 } 249 250 type FieldLevelEncryptionProfileOutput struct{ *pulumi.OutputState } 251 252 func (FieldLevelEncryptionProfileOutput) ElementType() reflect.Type { 253 return reflect.TypeOf((**FieldLevelEncryptionProfile)(nil)).Elem() 254 } 255 256 func (o FieldLevelEncryptionProfileOutput) ToFieldLevelEncryptionProfileOutput() FieldLevelEncryptionProfileOutput { 257 return o 258 } 259 260 func (o FieldLevelEncryptionProfileOutput) ToFieldLevelEncryptionProfileOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileOutput { 261 return o 262 } 263 264 // Internal value used by CloudFront to allow future updates to the Field Level Encryption Profile. 265 func (o FieldLevelEncryptionProfileOutput) CallerReference() pulumi.StringOutput { 266 return o.ApplyT(func(v *FieldLevelEncryptionProfile) pulumi.StringOutput { return v.CallerReference }).(pulumi.StringOutput) 267 } 268 269 // An optional comment about the Field Level Encryption Profile. 270 func (o FieldLevelEncryptionProfileOutput) Comment() pulumi.StringPtrOutput { 271 return o.ApplyT(func(v *FieldLevelEncryptionProfile) pulumi.StringPtrOutput { return v.Comment }).(pulumi.StringPtrOutput) 272 } 273 274 // The encryption entities config block for field-level encryption profiles that contains an attribute `items` which includes the encryption key and field pattern specifications. 275 func (o FieldLevelEncryptionProfileOutput) EncryptionEntities() FieldLevelEncryptionProfileEncryptionEntitiesOutput { 276 return o.ApplyT(func(v *FieldLevelEncryptionProfile) FieldLevelEncryptionProfileEncryptionEntitiesOutput { 277 return v.EncryptionEntities 278 }).(FieldLevelEncryptionProfileEncryptionEntitiesOutput) 279 } 280 281 // The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. 282 func (o FieldLevelEncryptionProfileOutput) Etag() pulumi.StringOutput { 283 return o.ApplyT(func(v *FieldLevelEncryptionProfile) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) 284 } 285 286 // The name of the Field Level Encryption Profile. 287 func (o FieldLevelEncryptionProfileOutput) Name() pulumi.StringOutput { 288 return o.ApplyT(func(v *FieldLevelEncryptionProfile) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 289 } 290 291 type FieldLevelEncryptionProfileArrayOutput struct{ *pulumi.OutputState } 292 293 func (FieldLevelEncryptionProfileArrayOutput) ElementType() reflect.Type { 294 return reflect.TypeOf((*[]*FieldLevelEncryptionProfile)(nil)).Elem() 295 } 296 297 func (o FieldLevelEncryptionProfileArrayOutput) ToFieldLevelEncryptionProfileArrayOutput() FieldLevelEncryptionProfileArrayOutput { 298 return o 299 } 300 301 func (o FieldLevelEncryptionProfileArrayOutput) ToFieldLevelEncryptionProfileArrayOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileArrayOutput { 302 return o 303 } 304 305 func (o FieldLevelEncryptionProfileArrayOutput) Index(i pulumi.IntInput) FieldLevelEncryptionProfileOutput { 306 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FieldLevelEncryptionProfile { 307 return vs[0].([]*FieldLevelEncryptionProfile)[vs[1].(int)] 308 }).(FieldLevelEncryptionProfileOutput) 309 } 310 311 type FieldLevelEncryptionProfileMapOutput struct{ *pulumi.OutputState } 312 313 func (FieldLevelEncryptionProfileMapOutput) ElementType() reflect.Type { 314 return reflect.TypeOf((*map[string]*FieldLevelEncryptionProfile)(nil)).Elem() 315 } 316 317 func (o FieldLevelEncryptionProfileMapOutput) ToFieldLevelEncryptionProfileMapOutput() FieldLevelEncryptionProfileMapOutput { 318 return o 319 } 320 321 func (o FieldLevelEncryptionProfileMapOutput) ToFieldLevelEncryptionProfileMapOutputWithContext(ctx context.Context) FieldLevelEncryptionProfileMapOutput { 322 return o 323 } 324 325 func (o FieldLevelEncryptionProfileMapOutput) MapIndex(k pulumi.StringInput) FieldLevelEncryptionProfileOutput { 326 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FieldLevelEncryptionProfile { 327 return vs[0].(map[string]*FieldLevelEncryptionProfile)[vs[1].(string)] 328 }).(FieldLevelEncryptionProfileOutput) 329 } 330 331 func init() { 332 pulumi.RegisterInputType(reflect.TypeOf((*FieldLevelEncryptionProfileInput)(nil)).Elem(), &FieldLevelEncryptionProfile{}) 333 pulumi.RegisterInputType(reflect.TypeOf((*FieldLevelEncryptionProfileArrayInput)(nil)).Elem(), FieldLevelEncryptionProfileArray{}) 334 pulumi.RegisterInputType(reflect.TypeOf((*FieldLevelEncryptionProfileMapInput)(nil)).Elem(), FieldLevelEncryptionProfileMap{}) 335 pulumi.RegisterOutputType(FieldLevelEncryptionProfileOutput{}) 336 pulumi.RegisterOutputType(FieldLevelEncryptionProfileArrayOutput{}) 337 pulumi.RegisterOutputType(FieldLevelEncryptionProfileMapOutput{}) 338 }