github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/evidently/feature.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 evidently
     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 CloudWatch Evidently Feature resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := evidently.NewFeature(ctx, "example", &evidently.FeatureArgs{
    35  //				Name:        pulumi.String("example"),
    36  //				Project:     pulumi.Any(exampleAwsEvidentlyProject.Name),
    37  //				Description: pulumi.String("example description"),
    38  //				Variations: evidently.FeatureVariationArray{
    39  //					&evidently.FeatureVariationArgs{
    40  //						Name: pulumi.String("Variation1"),
    41  //						Value: &evidently.FeatureVariationValueArgs{
    42  //							StringValue: pulumi.String("example"),
    43  //						},
    44  //					},
    45  //				},
    46  //				Tags: pulumi.StringMap{
    47  //					"Key1": pulumi.String("example Feature"),
    48  //				},
    49  //			})
    50  //			if err != nil {
    51  //				return err
    52  //			}
    53  //			return nil
    54  //		})
    55  //	}
    56  //
    57  // ```
    58  // <!--End PulumiCodeChooser -->
    59  //
    60  // ### With default variation
    61  //
    62  // <!--Start PulumiCodeChooser -->
    63  // ```go
    64  // package main
    65  //
    66  // import (
    67  //
    68  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
    69  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    70  //
    71  // )
    72  //
    73  //	func main() {
    74  //		pulumi.Run(func(ctx *pulumi.Context) error {
    75  //			_, err := evidently.NewFeature(ctx, "example", &evidently.FeatureArgs{
    76  //				Name:             pulumi.String("example"),
    77  //				Project:          pulumi.Any(exampleAwsEvidentlyProject.Name),
    78  //				DefaultVariation: pulumi.String("Variation2"),
    79  //				Variations: evidently.FeatureVariationArray{
    80  //					&evidently.FeatureVariationArgs{
    81  //						Name: pulumi.String("Variation1"),
    82  //						Value: &evidently.FeatureVariationValueArgs{
    83  //							StringValue: pulumi.String("exampleval1"),
    84  //						},
    85  //					},
    86  //					&evidently.FeatureVariationArgs{
    87  //						Name: pulumi.String("Variation2"),
    88  //						Value: &evidently.FeatureVariationValueArgs{
    89  //							StringValue: pulumi.String("exampleval2"),
    90  //						},
    91  //					},
    92  //				},
    93  //			})
    94  //			if err != nil {
    95  //				return err
    96  //			}
    97  //			return nil
    98  //		})
    99  //	}
   100  //
   101  // ```
   102  // <!--End PulumiCodeChooser -->
   103  //
   104  // ### With entity overrides
   105  //
   106  // <!--Start PulumiCodeChooser -->
   107  // ```go
   108  // package main
   109  //
   110  // import (
   111  //
   112  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   113  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   114  //
   115  // )
   116  //
   117  //	func main() {
   118  //		pulumi.Run(func(ctx *pulumi.Context) error {
   119  //			_, err := evidently.NewFeature(ctx, "example", &evidently.FeatureArgs{
   120  //				Name:    pulumi.String("example"),
   121  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
   122  //				EntityOverrides: pulumi.StringMap{
   123  //					"test1": pulumi.String("Variation1"),
   124  //				},
   125  //				Variations: evidently.FeatureVariationArray{
   126  //					&evidently.FeatureVariationArgs{
   127  //						Name: pulumi.String("Variation1"),
   128  //						Value: &evidently.FeatureVariationValueArgs{
   129  //							StringValue: pulumi.String("exampleval1"),
   130  //						},
   131  //					},
   132  //					&evidently.FeatureVariationArgs{
   133  //						Name: pulumi.String("Variation2"),
   134  //						Value: &evidently.FeatureVariationValueArgs{
   135  //							StringValue: pulumi.String("exampleval2"),
   136  //						},
   137  //					},
   138  //				},
   139  //			})
   140  //			if err != nil {
   141  //				return err
   142  //			}
   143  //			return nil
   144  //		})
   145  //	}
   146  //
   147  // ```
   148  // <!--End PulumiCodeChooser -->
   149  //
   150  // ### With evaluation strategy
   151  //
   152  // <!--Start PulumiCodeChooser -->
   153  // ```go
   154  // package main
   155  //
   156  // import (
   157  //
   158  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   159  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   160  //
   161  // )
   162  //
   163  //	func main() {
   164  //		pulumi.Run(func(ctx *pulumi.Context) error {
   165  //			_, err := evidently.NewFeature(ctx, "example", &evidently.FeatureArgs{
   166  //				Name:               pulumi.String("example"),
   167  //				Project:            pulumi.Any(exampleAwsEvidentlyProject.Name),
   168  //				EvaluationStrategy: pulumi.String("ALL_RULES"),
   169  //				EntityOverrides: pulumi.StringMap{
   170  //					"test1": pulumi.String("Variation1"),
   171  //				},
   172  //				Variations: evidently.FeatureVariationArray{
   173  //					&evidently.FeatureVariationArgs{
   174  //						Name: pulumi.String("Variation1"),
   175  //						Value: &evidently.FeatureVariationValueArgs{
   176  //							StringValue: pulumi.String("exampleval1"),
   177  //						},
   178  //					},
   179  //				},
   180  //			})
   181  //			if err != nil {
   182  //				return err
   183  //			}
   184  //			return nil
   185  //		})
   186  //	}
   187  //
   188  // ```
   189  // <!--End PulumiCodeChooser -->
   190  //
   191  // ## Import
   192  //
   193  // Using `pulumi import`, import CloudWatch Evidently Feature using the feature `name` and `name` or `arn` of the hosting CloudWatch Evidently Project separated by a `:`. For example:
   194  //
   195  // ```sh
   196  // $ pulumi import aws:evidently/feature:Feature example exampleFeatureName:arn:aws:evidently:us-east-1:123456789012:project/example
   197  // ```
   198  type Feature struct {
   199  	pulumi.CustomResourceState
   200  
   201  	// The ARN of the feature.
   202  	Arn pulumi.StringOutput `pulumi:"arn"`
   203  	// The date and time that the feature is created.
   204  	CreatedTime pulumi.StringOutput `pulumi:"createdTime"`
   205  	// The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   206  	DefaultVariation pulumi.StringOutput `pulumi:"defaultVariation"`
   207  	// Specifies the description of the feature.
   208  	Description pulumi.StringPtrOutput `pulumi:"description"`
   209  	// Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   210  	EntityOverrides pulumi.StringMapOutput `pulumi:"entityOverrides"`
   211  	// One or more blocks that define the evaluation rules for the feature. Detailed below
   212  	EvaluationRules FeatureEvaluationRuleArrayOutput `pulumi:"evaluationRules"`
   213  	// Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   214  	EvaluationStrategy pulumi.StringOutput `pulumi:"evaluationStrategy"`
   215  	// The date and time that the feature was most recently updated.
   216  	LastUpdatedTime pulumi.StringOutput `pulumi:"lastUpdatedTime"`
   217  	// The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   218  	Name pulumi.StringOutput `pulumi:"name"`
   219  	// The name or ARN of the project that is to contain the new feature.
   220  	Project pulumi.StringOutput `pulumi:"project"`
   221  	// The current state of the feature. Valid values are `AVAILABLE` and `UPDATING`.
   222  	Status pulumi.StringOutput `pulumi:"status"`
   223  	// Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   224  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   225  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   226  	//
   227  	// Deprecated: Please use `tags` instead.
   228  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   229  	// Defines the type of value used to define the different feature variations. Valid Values: `STRING`, `LONG`, `DOUBLE`, `BOOLEAN`.
   230  	ValueType pulumi.StringOutput `pulumi:"valueType"`
   231  	// One or more blocks that contain the configuration of the feature's different variations. Detailed below
   232  	Variations FeatureVariationArrayOutput `pulumi:"variations"`
   233  }
   234  
   235  // NewFeature registers a new resource with the given unique name, arguments, and options.
   236  func NewFeature(ctx *pulumi.Context,
   237  	name string, args *FeatureArgs, opts ...pulumi.ResourceOption) (*Feature, error) {
   238  	if args == nil {
   239  		return nil, errors.New("missing one or more required arguments")
   240  	}
   241  
   242  	if args.Project == nil {
   243  		return nil, errors.New("invalid value for required argument 'Project'")
   244  	}
   245  	if args.Variations == nil {
   246  		return nil, errors.New("invalid value for required argument 'Variations'")
   247  	}
   248  	opts = internal.PkgResourceDefaultOpts(opts)
   249  	var resource Feature
   250  	err := ctx.RegisterResource("aws:evidently/feature:Feature", name, args, &resource, opts...)
   251  	if err != nil {
   252  		return nil, err
   253  	}
   254  	return &resource, nil
   255  }
   256  
   257  // GetFeature gets an existing Feature resource's state with the given name, ID, and optional
   258  // state properties that are used to uniquely qualify the lookup (nil if not required).
   259  func GetFeature(ctx *pulumi.Context,
   260  	name string, id pulumi.IDInput, state *FeatureState, opts ...pulumi.ResourceOption) (*Feature, error) {
   261  	var resource Feature
   262  	err := ctx.ReadResource("aws:evidently/feature:Feature", name, id, state, &resource, opts...)
   263  	if err != nil {
   264  		return nil, err
   265  	}
   266  	return &resource, nil
   267  }
   268  
   269  // Input properties used for looking up and filtering Feature resources.
   270  type featureState struct {
   271  	// The ARN of the feature.
   272  	Arn *string `pulumi:"arn"`
   273  	// The date and time that the feature is created.
   274  	CreatedTime *string `pulumi:"createdTime"`
   275  	// The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   276  	DefaultVariation *string `pulumi:"defaultVariation"`
   277  	// Specifies the description of the feature.
   278  	Description *string `pulumi:"description"`
   279  	// Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   280  	EntityOverrides map[string]string `pulumi:"entityOverrides"`
   281  	// One or more blocks that define the evaluation rules for the feature. Detailed below
   282  	EvaluationRules []FeatureEvaluationRule `pulumi:"evaluationRules"`
   283  	// Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   284  	EvaluationStrategy *string `pulumi:"evaluationStrategy"`
   285  	// The date and time that the feature was most recently updated.
   286  	LastUpdatedTime *string `pulumi:"lastUpdatedTime"`
   287  	// The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   288  	Name *string `pulumi:"name"`
   289  	// The name or ARN of the project that is to contain the new feature.
   290  	Project *string `pulumi:"project"`
   291  	// The current state of the feature. Valid values are `AVAILABLE` and `UPDATING`.
   292  	Status *string `pulumi:"status"`
   293  	// Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   294  	Tags map[string]string `pulumi:"tags"`
   295  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   296  	//
   297  	// Deprecated: Please use `tags` instead.
   298  	TagsAll map[string]string `pulumi:"tagsAll"`
   299  	// Defines the type of value used to define the different feature variations. Valid Values: `STRING`, `LONG`, `DOUBLE`, `BOOLEAN`.
   300  	ValueType *string `pulumi:"valueType"`
   301  	// One or more blocks that contain the configuration of the feature's different variations. Detailed below
   302  	Variations []FeatureVariation `pulumi:"variations"`
   303  }
   304  
   305  type FeatureState struct {
   306  	// The ARN of the feature.
   307  	Arn pulumi.StringPtrInput
   308  	// The date and time that the feature is created.
   309  	CreatedTime pulumi.StringPtrInput
   310  	// The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   311  	DefaultVariation pulumi.StringPtrInput
   312  	// Specifies the description of the feature.
   313  	Description pulumi.StringPtrInput
   314  	// Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   315  	EntityOverrides pulumi.StringMapInput
   316  	// One or more blocks that define the evaluation rules for the feature. Detailed below
   317  	EvaluationRules FeatureEvaluationRuleArrayInput
   318  	// Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   319  	EvaluationStrategy pulumi.StringPtrInput
   320  	// The date and time that the feature was most recently updated.
   321  	LastUpdatedTime pulumi.StringPtrInput
   322  	// The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   323  	Name pulumi.StringPtrInput
   324  	// The name or ARN of the project that is to contain the new feature.
   325  	Project pulumi.StringPtrInput
   326  	// The current state of the feature. Valid values are `AVAILABLE` and `UPDATING`.
   327  	Status pulumi.StringPtrInput
   328  	// Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   329  	Tags pulumi.StringMapInput
   330  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   331  	//
   332  	// Deprecated: Please use `tags` instead.
   333  	TagsAll pulumi.StringMapInput
   334  	// Defines the type of value used to define the different feature variations. Valid Values: `STRING`, `LONG`, `DOUBLE`, `BOOLEAN`.
   335  	ValueType pulumi.StringPtrInput
   336  	// One or more blocks that contain the configuration of the feature's different variations. Detailed below
   337  	Variations FeatureVariationArrayInput
   338  }
   339  
   340  func (FeatureState) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*featureState)(nil)).Elem()
   342  }
   343  
   344  type featureArgs struct {
   345  	// The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   346  	DefaultVariation *string `pulumi:"defaultVariation"`
   347  	// Specifies the description of the feature.
   348  	Description *string `pulumi:"description"`
   349  	// Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   350  	EntityOverrides map[string]string `pulumi:"entityOverrides"`
   351  	// Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   352  	EvaluationStrategy *string `pulumi:"evaluationStrategy"`
   353  	// The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   354  	Name *string `pulumi:"name"`
   355  	// The name or ARN of the project that is to contain the new feature.
   356  	Project string `pulumi:"project"`
   357  	// Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   358  	Tags map[string]string `pulumi:"tags"`
   359  	// One or more blocks that contain the configuration of the feature's different variations. Detailed below
   360  	Variations []FeatureVariation `pulumi:"variations"`
   361  }
   362  
   363  // The set of arguments for constructing a Feature resource.
   364  type FeatureArgs struct {
   365  	// The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   366  	DefaultVariation pulumi.StringPtrInput
   367  	// Specifies the description of the feature.
   368  	Description pulumi.StringPtrInput
   369  	// Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   370  	EntityOverrides pulumi.StringMapInput
   371  	// Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   372  	EvaluationStrategy pulumi.StringPtrInput
   373  	// The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   374  	Name pulumi.StringPtrInput
   375  	// The name or ARN of the project that is to contain the new feature.
   376  	Project pulumi.StringInput
   377  	// Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   378  	Tags pulumi.StringMapInput
   379  	// One or more blocks that contain the configuration of the feature's different variations. Detailed below
   380  	Variations FeatureVariationArrayInput
   381  }
   382  
   383  func (FeatureArgs) ElementType() reflect.Type {
   384  	return reflect.TypeOf((*featureArgs)(nil)).Elem()
   385  }
   386  
   387  type FeatureInput interface {
   388  	pulumi.Input
   389  
   390  	ToFeatureOutput() FeatureOutput
   391  	ToFeatureOutputWithContext(ctx context.Context) FeatureOutput
   392  }
   393  
   394  func (*Feature) ElementType() reflect.Type {
   395  	return reflect.TypeOf((**Feature)(nil)).Elem()
   396  }
   397  
   398  func (i *Feature) ToFeatureOutput() FeatureOutput {
   399  	return i.ToFeatureOutputWithContext(context.Background())
   400  }
   401  
   402  func (i *Feature) ToFeatureOutputWithContext(ctx context.Context) FeatureOutput {
   403  	return pulumi.ToOutputWithContext(ctx, i).(FeatureOutput)
   404  }
   405  
   406  // FeatureArrayInput is an input type that accepts FeatureArray and FeatureArrayOutput values.
   407  // You can construct a concrete instance of `FeatureArrayInput` via:
   408  //
   409  //	FeatureArray{ FeatureArgs{...} }
   410  type FeatureArrayInput interface {
   411  	pulumi.Input
   412  
   413  	ToFeatureArrayOutput() FeatureArrayOutput
   414  	ToFeatureArrayOutputWithContext(context.Context) FeatureArrayOutput
   415  }
   416  
   417  type FeatureArray []FeatureInput
   418  
   419  func (FeatureArray) ElementType() reflect.Type {
   420  	return reflect.TypeOf((*[]*Feature)(nil)).Elem()
   421  }
   422  
   423  func (i FeatureArray) ToFeatureArrayOutput() FeatureArrayOutput {
   424  	return i.ToFeatureArrayOutputWithContext(context.Background())
   425  }
   426  
   427  func (i FeatureArray) ToFeatureArrayOutputWithContext(ctx context.Context) FeatureArrayOutput {
   428  	return pulumi.ToOutputWithContext(ctx, i).(FeatureArrayOutput)
   429  }
   430  
   431  // FeatureMapInput is an input type that accepts FeatureMap and FeatureMapOutput values.
   432  // You can construct a concrete instance of `FeatureMapInput` via:
   433  //
   434  //	FeatureMap{ "key": FeatureArgs{...} }
   435  type FeatureMapInput interface {
   436  	pulumi.Input
   437  
   438  	ToFeatureMapOutput() FeatureMapOutput
   439  	ToFeatureMapOutputWithContext(context.Context) FeatureMapOutput
   440  }
   441  
   442  type FeatureMap map[string]FeatureInput
   443  
   444  func (FeatureMap) ElementType() reflect.Type {
   445  	return reflect.TypeOf((*map[string]*Feature)(nil)).Elem()
   446  }
   447  
   448  func (i FeatureMap) ToFeatureMapOutput() FeatureMapOutput {
   449  	return i.ToFeatureMapOutputWithContext(context.Background())
   450  }
   451  
   452  func (i FeatureMap) ToFeatureMapOutputWithContext(ctx context.Context) FeatureMapOutput {
   453  	return pulumi.ToOutputWithContext(ctx, i).(FeatureMapOutput)
   454  }
   455  
   456  type FeatureOutput struct{ *pulumi.OutputState }
   457  
   458  func (FeatureOutput) ElementType() reflect.Type {
   459  	return reflect.TypeOf((**Feature)(nil)).Elem()
   460  }
   461  
   462  func (o FeatureOutput) ToFeatureOutput() FeatureOutput {
   463  	return o
   464  }
   465  
   466  func (o FeatureOutput) ToFeatureOutputWithContext(ctx context.Context) FeatureOutput {
   467  	return o
   468  }
   469  
   470  // The ARN of the feature.
   471  func (o FeatureOutput) Arn() pulumi.StringOutput {
   472  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   473  }
   474  
   475  // The date and time that the feature is created.
   476  func (o FeatureOutput) CreatedTime() pulumi.StringOutput {
   477  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.CreatedTime }).(pulumi.StringOutput)
   478  }
   479  
   480  // The name of the variation to use as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature. This variation must also be listed in the `variations` structure. If you omit `defaultVariation`, the first variation listed in the `variations` structure is used as the default variation.
   481  func (o FeatureOutput) DefaultVariation() pulumi.StringOutput {
   482  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.DefaultVariation }).(pulumi.StringOutput)
   483  }
   484  
   485  // Specifies the description of the feature.
   486  func (o FeatureOutput) Description() pulumi.StringPtrOutput {
   487  	return o.ApplyT(func(v *Feature) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   488  }
   489  
   490  // Specify users that should always be served a specific variation of a feature. Each user is specified by a key-value pair . For each key, specify a user by entering their user ID, account ID, or some other identifier. For the value, specify the name of the variation that they are to be served.
   491  func (o FeatureOutput) EntityOverrides() pulumi.StringMapOutput {
   492  	return o.ApplyT(func(v *Feature) pulumi.StringMapOutput { return v.EntityOverrides }).(pulumi.StringMapOutput)
   493  }
   494  
   495  // One or more blocks that define the evaluation rules for the feature. Detailed below
   496  func (o FeatureOutput) EvaluationRules() FeatureEvaluationRuleArrayOutput {
   497  	return o.ApplyT(func(v *Feature) FeatureEvaluationRuleArrayOutput { return v.EvaluationRules }).(FeatureEvaluationRuleArrayOutput)
   498  }
   499  
   500  // Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead.
   501  func (o FeatureOutput) EvaluationStrategy() pulumi.StringOutput {
   502  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.EvaluationStrategy }).(pulumi.StringOutput)
   503  }
   504  
   505  // The date and time that the feature was most recently updated.
   506  func (o FeatureOutput) LastUpdatedTime() pulumi.StringOutput {
   507  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.LastUpdatedTime }).(pulumi.StringOutput)
   508  }
   509  
   510  // The name for the new feature. Minimum length of `1`. Maximum length of `127`.
   511  func (o FeatureOutput) Name() pulumi.StringOutput {
   512  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   513  }
   514  
   515  // The name or ARN of the project that is to contain the new feature.
   516  func (o FeatureOutput) Project() pulumi.StringOutput {
   517  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
   518  }
   519  
   520  // The current state of the feature. Valid values are `AVAILABLE` and `UPDATING`.
   521  func (o FeatureOutput) Status() pulumi.StringOutput {
   522  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   523  }
   524  
   525  // Tags to apply to the feature. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   526  func (o FeatureOutput) Tags() pulumi.StringMapOutput {
   527  	return o.ApplyT(func(v *Feature) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   528  }
   529  
   530  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   531  //
   532  // Deprecated: Please use `tags` instead.
   533  func (o FeatureOutput) TagsAll() pulumi.StringMapOutput {
   534  	return o.ApplyT(func(v *Feature) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   535  }
   536  
   537  // Defines the type of value used to define the different feature variations. Valid Values: `STRING`, `LONG`, `DOUBLE`, `BOOLEAN`.
   538  func (o FeatureOutput) ValueType() pulumi.StringOutput {
   539  	return o.ApplyT(func(v *Feature) pulumi.StringOutput { return v.ValueType }).(pulumi.StringOutput)
   540  }
   541  
   542  // One or more blocks that contain the configuration of the feature's different variations. Detailed below
   543  func (o FeatureOutput) Variations() FeatureVariationArrayOutput {
   544  	return o.ApplyT(func(v *Feature) FeatureVariationArrayOutput { return v.Variations }).(FeatureVariationArrayOutput)
   545  }
   546  
   547  type FeatureArrayOutput struct{ *pulumi.OutputState }
   548  
   549  func (FeatureArrayOutput) ElementType() reflect.Type {
   550  	return reflect.TypeOf((*[]*Feature)(nil)).Elem()
   551  }
   552  
   553  func (o FeatureArrayOutput) ToFeatureArrayOutput() FeatureArrayOutput {
   554  	return o
   555  }
   556  
   557  func (o FeatureArrayOutput) ToFeatureArrayOutputWithContext(ctx context.Context) FeatureArrayOutput {
   558  	return o
   559  }
   560  
   561  func (o FeatureArrayOutput) Index(i pulumi.IntInput) FeatureOutput {
   562  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Feature {
   563  		return vs[0].([]*Feature)[vs[1].(int)]
   564  	}).(FeatureOutput)
   565  }
   566  
   567  type FeatureMapOutput struct{ *pulumi.OutputState }
   568  
   569  func (FeatureMapOutput) ElementType() reflect.Type {
   570  	return reflect.TypeOf((*map[string]*Feature)(nil)).Elem()
   571  }
   572  
   573  func (o FeatureMapOutput) ToFeatureMapOutput() FeatureMapOutput {
   574  	return o
   575  }
   576  
   577  func (o FeatureMapOutput) ToFeatureMapOutputWithContext(ctx context.Context) FeatureMapOutput {
   578  	return o
   579  }
   580  
   581  func (o FeatureMapOutput) MapIndex(k pulumi.StringInput) FeatureOutput {
   582  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Feature {
   583  		return vs[0].(map[string]*Feature)[vs[1].(string)]
   584  	}).(FeatureOutput)
   585  }
   586  
   587  func init() {
   588  	pulumi.RegisterInputType(reflect.TypeOf((*FeatureInput)(nil)).Elem(), &Feature{})
   589  	pulumi.RegisterInputType(reflect.TypeOf((*FeatureArrayInput)(nil)).Elem(), FeatureArray{})
   590  	pulumi.RegisterInputType(reflect.TypeOf((*FeatureMapInput)(nil)).Elem(), FeatureMap{})
   591  	pulumi.RegisterOutputType(FeatureOutput{})
   592  	pulumi.RegisterOutputType(FeatureArrayOutput{})
   593  	pulumi.RegisterOutputType(FeatureMapOutput{})
   594  }