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  }