github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudfront/originRequestPolicy.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  // ## Example Usage
    16  //
    17  // The following example below creates a CloudFront origin request policy.
    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/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := cloudfront.NewOriginRequestPolicy(ctx, "example", &cloudfront.OriginRequestPolicyArgs{
    33  //				Name:    pulumi.String("example-policy"),
    34  //				Comment: pulumi.String("example comment"),
    35  //				CookiesConfig: &cloudfront.OriginRequestPolicyCookiesConfigArgs{
    36  //					CookieBehavior: pulumi.String("whitelist"),
    37  //					Cookies: &cloudfront.OriginRequestPolicyCookiesConfigCookiesArgs{
    38  //						Items: pulumi.StringArray{
    39  //							pulumi.String("example"),
    40  //						},
    41  //					},
    42  //				},
    43  //				HeadersConfig: &cloudfront.OriginRequestPolicyHeadersConfigArgs{
    44  //					HeaderBehavior: pulumi.String("whitelist"),
    45  //					Headers: &cloudfront.OriginRequestPolicyHeadersConfigHeadersArgs{
    46  //						Items: pulumi.StringArray{
    47  //							pulumi.String("example"),
    48  //						},
    49  //					},
    50  //				},
    51  //				QueryStringsConfig: &cloudfront.OriginRequestPolicyQueryStringsConfigArgs{
    52  //					QueryStringBehavior: pulumi.String("whitelist"),
    53  //					QueryStrings: &cloudfront.OriginRequestPolicyQueryStringsConfigQueryStringsArgs{
    54  //						Items: pulumi.StringArray{
    55  //							pulumi.String("example"),
    56  //						},
    57  //					},
    58  //				},
    59  //			})
    60  //			if err != nil {
    61  //				return err
    62  //			}
    63  //			return nil
    64  //		})
    65  //	}
    66  //
    67  // ```
    68  // <!--End PulumiCodeChooser -->
    69  //
    70  // ## Import
    71  //
    72  // Using `pulumi import`, import Cloudfront Origin Request Policies using the `id`. For example:
    73  //
    74  // ```sh
    75  // $ pulumi import aws:cloudfront/originRequestPolicy:OriginRequestPolicy policy ccca32ef-dce3-4df3-80df-1bd3000bc4d3
    76  // ```
    77  type OriginRequestPolicy struct {
    78  	pulumi.CustomResourceState
    79  
    80  	// Comment to describe the origin request policy.
    81  	Comment pulumi.StringPtrOutput `pulumi:"comment"`
    82  	// Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
    83  	CookiesConfig OriginRequestPolicyCookiesConfigOutput `pulumi:"cookiesConfig"`
    84  	// The current version of the origin request policy.
    85  	Etag pulumi.StringOutput `pulumi:"etag"`
    86  	// Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
    87  	HeadersConfig OriginRequestPolicyHeadersConfigOutput `pulumi:"headersConfig"`
    88  	// Unique name to identify the origin request policy.
    89  	Name pulumi.StringOutput `pulumi:"name"`
    90  	// Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
    91  	QueryStringsConfig OriginRequestPolicyQueryStringsConfigOutput `pulumi:"queryStringsConfig"`
    92  }
    93  
    94  // NewOriginRequestPolicy registers a new resource with the given unique name, arguments, and options.
    95  func NewOriginRequestPolicy(ctx *pulumi.Context,
    96  	name string, args *OriginRequestPolicyArgs, opts ...pulumi.ResourceOption) (*OriginRequestPolicy, error) {
    97  	if args == nil {
    98  		return nil, errors.New("missing one or more required arguments")
    99  	}
   100  
   101  	if args.CookiesConfig == nil {
   102  		return nil, errors.New("invalid value for required argument 'CookiesConfig'")
   103  	}
   104  	if args.HeadersConfig == nil {
   105  		return nil, errors.New("invalid value for required argument 'HeadersConfig'")
   106  	}
   107  	if args.QueryStringsConfig == nil {
   108  		return nil, errors.New("invalid value for required argument 'QueryStringsConfig'")
   109  	}
   110  	opts = internal.PkgResourceDefaultOpts(opts)
   111  	var resource OriginRequestPolicy
   112  	err := ctx.RegisterResource("aws:cloudfront/originRequestPolicy:OriginRequestPolicy", name, args, &resource, opts...)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &resource, nil
   117  }
   118  
   119  // GetOriginRequestPolicy gets an existing OriginRequestPolicy resource's state with the given name, ID, and optional
   120  // state properties that are used to uniquely qualify the lookup (nil if not required).
   121  func GetOriginRequestPolicy(ctx *pulumi.Context,
   122  	name string, id pulumi.IDInput, state *OriginRequestPolicyState, opts ...pulumi.ResourceOption) (*OriginRequestPolicy, error) {
   123  	var resource OriginRequestPolicy
   124  	err := ctx.ReadResource("aws:cloudfront/originRequestPolicy:OriginRequestPolicy", name, id, state, &resource, opts...)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	return &resource, nil
   129  }
   130  
   131  // Input properties used for looking up and filtering OriginRequestPolicy resources.
   132  type originRequestPolicyState struct {
   133  	// Comment to describe the origin request policy.
   134  	Comment *string `pulumi:"comment"`
   135  	// Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
   136  	CookiesConfig *OriginRequestPolicyCookiesConfig `pulumi:"cookiesConfig"`
   137  	// The current version of the origin request policy.
   138  	Etag *string `pulumi:"etag"`
   139  	// Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
   140  	HeadersConfig *OriginRequestPolicyHeadersConfig `pulumi:"headersConfig"`
   141  	// Unique name to identify the origin request policy.
   142  	Name *string `pulumi:"name"`
   143  	// Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
   144  	QueryStringsConfig *OriginRequestPolicyQueryStringsConfig `pulumi:"queryStringsConfig"`
   145  }
   146  
   147  type OriginRequestPolicyState struct {
   148  	// Comment to describe the origin request policy.
   149  	Comment pulumi.StringPtrInput
   150  	// Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
   151  	CookiesConfig OriginRequestPolicyCookiesConfigPtrInput
   152  	// The current version of the origin request policy.
   153  	Etag pulumi.StringPtrInput
   154  	// Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
   155  	HeadersConfig OriginRequestPolicyHeadersConfigPtrInput
   156  	// Unique name to identify the origin request policy.
   157  	Name pulumi.StringPtrInput
   158  	// Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
   159  	QueryStringsConfig OriginRequestPolicyQueryStringsConfigPtrInput
   160  }
   161  
   162  func (OriginRequestPolicyState) ElementType() reflect.Type {
   163  	return reflect.TypeOf((*originRequestPolicyState)(nil)).Elem()
   164  }
   165  
   166  type originRequestPolicyArgs struct {
   167  	// Comment to describe the origin request policy.
   168  	Comment *string `pulumi:"comment"`
   169  	// Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
   170  	CookiesConfig OriginRequestPolicyCookiesConfig `pulumi:"cookiesConfig"`
   171  	// Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
   172  	HeadersConfig OriginRequestPolicyHeadersConfig `pulumi:"headersConfig"`
   173  	// Unique name to identify the origin request policy.
   174  	Name *string `pulumi:"name"`
   175  	// Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
   176  	QueryStringsConfig OriginRequestPolicyQueryStringsConfig `pulumi:"queryStringsConfig"`
   177  }
   178  
   179  // The set of arguments for constructing a OriginRequestPolicy resource.
   180  type OriginRequestPolicyArgs struct {
   181  	// Comment to describe the origin request policy.
   182  	Comment pulumi.StringPtrInput
   183  	// Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
   184  	CookiesConfig OriginRequestPolicyCookiesConfigInput
   185  	// Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
   186  	HeadersConfig OriginRequestPolicyHeadersConfigInput
   187  	// Unique name to identify the origin request policy.
   188  	Name pulumi.StringPtrInput
   189  	// Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
   190  	QueryStringsConfig OriginRequestPolicyQueryStringsConfigInput
   191  }
   192  
   193  func (OriginRequestPolicyArgs) ElementType() reflect.Type {
   194  	return reflect.TypeOf((*originRequestPolicyArgs)(nil)).Elem()
   195  }
   196  
   197  type OriginRequestPolicyInput interface {
   198  	pulumi.Input
   199  
   200  	ToOriginRequestPolicyOutput() OriginRequestPolicyOutput
   201  	ToOriginRequestPolicyOutputWithContext(ctx context.Context) OriginRequestPolicyOutput
   202  }
   203  
   204  func (*OriginRequestPolicy) ElementType() reflect.Type {
   205  	return reflect.TypeOf((**OriginRequestPolicy)(nil)).Elem()
   206  }
   207  
   208  func (i *OriginRequestPolicy) ToOriginRequestPolicyOutput() OriginRequestPolicyOutput {
   209  	return i.ToOriginRequestPolicyOutputWithContext(context.Background())
   210  }
   211  
   212  func (i *OriginRequestPolicy) ToOriginRequestPolicyOutputWithContext(ctx context.Context) OriginRequestPolicyOutput {
   213  	return pulumi.ToOutputWithContext(ctx, i).(OriginRequestPolicyOutput)
   214  }
   215  
   216  // OriginRequestPolicyArrayInput is an input type that accepts OriginRequestPolicyArray and OriginRequestPolicyArrayOutput values.
   217  // You can construct a concrete instance of `OriginRequestPolicyArrayInput` via:
   218  //
   219  //	OriginRequestPolicyArray{ OriginRequestPolicyArgs{...} }
   220  type OriginRequestPolicyArrayInput interface {
   221  	pulumi.Input
   222  
   223  	ToOriginRequestPolicyArrayOutput() OriginRequestPolicyArrayOutput
   224  	ToOriginRequestPolicyArrayOutputWithContext(context.Context) OriginRequestPolicyArrayOutput
   225  }
   226  
   227  type OriginRequestPolicyArray []OriginRequestPolicyInput
   228  
   229  func (OriginRequestPolicyArray) ElementType() reflect.Type {
   230  	return reflect.TypeOf((*[]*OriginRequestPolicy)(nil)).Elem()
   231  }
   232  
   233  func (i OriginRequestPolicyArray) ToOriginRequestPolicyArrayOutput() OriginRequestPolicyArrayOutput {
   234  	return i.ToOriginRequestPolicyArrayOutputWithContext(context.Background())
   235  }
   236  
   237  func (i OriginRequestPolicyArray) ToOriginRequestPolicyArrayOutputWithContext(ctx context.Context) OriginRequestPolicyArrayOutput {
   238  	return pulumi.ToOutputWithContext(ctx, i).(OriginRequestPolicyArrayOutput)
   239  }
   240  
   241  // OriginRequestPolicyMapInput is an input type that accepts OriginRequestPolicyMap and OriginRequestPolicyMapOutput values.
   242  // You can construct a concrete instance of `OriginRequestPolicyMapInput` via:
   243  //
   244  //	OriginRequestPolicyMap{ "key": OriginRequestPolicyArgs{...} }
   245  type OriginRequestPolicyMapInput interface {
   246  	pulumi.Input
   247  
   248  	ToOriginRequestPolicyMapOutput() OriginRequestPolicyMapOutput
   249  	ToOriginRequestPolicyMapOutputWithContext(context.Context) OriginRequestPolicyMapOutput
   250  }
   251  
   252  type OriginRequestPolicyMap map[string]OriginRequestPolicyInput
   253  
   254  func (OriginRequestPolicyMap) ElementType() reflect.Type {
   255  	return reflect.TypeOf((*map[string]*OriginRequestPolicy)(nil)).Elem()
   256  }
   257  
   258  func (i OriginRequestPolicyMap) ToOriginRequestPolicyMapOutput() OriginRequestPolicyMapOutput {
   259  	return i.ToOriginRequestPolicyMapOutputWithContext(context.Background())
   260  }
   261  
   262  func (i OriginRequestPolicyMap) ToOriginRequestPolicyMapOutputWithContext(ctx context.Context) OriginRequestPolicyMapOutput {
   263  	return pulumi.ToOutputWithContext(ctx, i).(OriginRequestPolicyMapOutput)
   264  }
   265  
   266  type OriginRequestPolicyOutput struct{ *pulumi.OutputState }
   267  
   268  func (OriginRequestPolicyOutput) ElementType() reflect.Type {
   269  	return reflect.TypeOf((**OriginRequestPolicy)(nil)).Elem()
   270  }
   271  
   272  func (o OriginRequestPolicyOutput) ToOriginRequestPolicyOutput() OriginRequestPolicyOutput {
   273  	return o
   274  }
   275  
   276  func (o OriginRequestPolicyOutput) ToOriginRequestPolicyOutputWithContext(ctx context.Context) OriginRequestPolicyOutput {
   277  	return o
   278  }
   279  
   280  // Comment to describe the origin request policy.
   281  func (o OriginRequestPolicyOutput) Comment() pulumi.StringPtrOutput {
   282  	return o.ApplyT(func(v *OriginRequestPolicy) pulumi.StringPtrOutput { return v.Comment }).(pulumi.StringPtrOutput)
   283  }
   284  
   285  // Object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Cookies Config for more information.
   286  func (o OriginRequestPolicyOutput) CookiesConfig() OriginRequestPolicyCookiesConfigOutput {
   287  	return o.ApplyT(func(v *OriginRequestPolicy) OriginRequestPolicyCookiesConfigOutput { return v.CookiesConfig }).(OriginRequestPolicyCookiesConfigOutput)
   288  }
   289  
   290  // The current version of the origin request policy.
   291  func (o OriginRequestPolicyOutput) Etag() pulumi.StringOutput {
   292  	return o.ApplyT(func(v *OriginRequestPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput)
   293  }
   294  
   295  // Object that determines whether any HTTP headers (and if so, which headers) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Headers Config for more information.
   296  func (o OriginRequestPolicyOutput) HeadersConfig() OriginRequestPolicyHeadersConfigOutput {
   297  	return o.ApplyT(func(v *OriginRequestPolicy) OriginRequestPolicyHeadersConfigOutput { return v.HeadersConfig }).(OriginRequestPolicyHeadersConfigOutput)
   298  }
   299  
   300  // Unique name to identify the origin request policy.
   301  func (o OriginRequestPolicyOutput) Name() pulumi.StringOutput {
   302  	return o.ApplyT(func(v *OriginRequestPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   303  }
   304  
   305  // Object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the origin request key and automatically included in requests that CloudFront sends to the origin. See Query String Config for more information.
   306  func (o OriginRequestPolicyOutput) QueryStringsConfig() OriginRequestPolicyQueryStringsConfigOutput {
   307  	return o.ApplyT(func(v *OriginRequestPolicy) OriginRequestPolicyQueryStringsConfigOutput { return v.QueryStringsConfig }).(OriginRequestPolicyQueryStringsConfigOutput)
   308  }
   309  
   310  type OriginRequestPolicyArrayOutput struct{ *pulumi.OutputState }
   311  
   312  func (OriginRequestPolicyArrayOutput) ElementType() reflect.Type {
   313  	return reflect.TypeOf((*[]*OriginRequestPolicy)(nil)).Elem()
   314  }
   315  
   316  func (o OriginRequestPolicyArrayOutput) ToOriginRequestPolicyArrayOutput() OriginRequestPolicyArrayOutput {
   317  	return o
   318  }
   319  
   320  func (o OriginRequestPolicyArrayOutput) ToOriginRequestPolicyArrayOutputWithContext(ctx context.Context) OriginRequestPolicyArrayOutput {
   321  	return o
   322  }
   323  
   324  func (o OriginRequestPolicyArrayOutput) Index(i pulumi.IntInput) OriginRequestPolicyOutput {
   325  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OriginRequestPolicy {
   326  		return vs[0].([]*OriginRequestPolicy)[vs[1].(int)]
   327  	}).(OriginRequestPolicyOutput)
   328  }
   329  
   330  type OriginRequestPolicyMapOutput struct{ *pulumi.OutputState }
   331  
   332  func (OriginRequestPolicyMapOutput) ElementType() reflect.Type {
   333  	return reflect.TypeOf((*map[string]*OriginRequestPolicy)(nil)).Elem()
   334  }
   335  
   336  func (o OriginRequestPolicyMapOutput) ToOriginRequestPolicyMapOutput() OriginRequestPolicyMapOutput {
   337  	return o
   338  }
   339  
   340  func (o OriginRequestPolicyMapOutput) ToOriginRequestPolicyMapOutputWithContext(ctx context.Context) OriginRequestPolicyMapOutput {
   341  	return o
   342  }
   343  
   344  func (o OriginRequestPolicyMapOutput) MapIndex(k pulumi.StringInput) OriginRequestPolicyOutput {
   345  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OriginRequestPolicy {
   346  		return vs[0].(map[string]*OriginRequestPolicy)[vs[1].(string)]
   347  	}).(OriginRequestPolicyOutput)
   348  }
   349  
   350  func init() {
   351  	pulumi.RegisterInputType(reflect.TypeOf((*OriginRequestPolicyInput)(nil)).Elem(), &OriginRequestPolicy{})
   352  	pulumi.RegisterInputType(reflect.TypeOf((*OriginRequestPolicyArrayInput)(nil)).Elem(), OriginRequestPolicyArray{})
   353  	pulumi.RegisterInputType(reflect.TypeOf((*OriginRequestPolicyMapInput)(nil)).Elem(), OriginRequestPolicyMap{})
   354  	pulumi.RegisterOutputType(OriginRequestPolicyOutput{})
   355  	pulumi.RegisterOutputType(OriginRequestPolicyArrayOutput{})
   356  	pulumi.RegisterOutputType(OriginRequestPolicyMapOutput{})
   357  }