github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/evidently/launch.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 Launch 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.NewLaunch(ctx, "example", &evidently.LaunchArgs{
    35  //				Name:    pulumi.String("example"),
    36  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
    37  //				Groups: evidently.LaunchGroupArray{
    38  //					&evidently.LaunchGroupArgs{
    39  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
    40  //						Name:      pulumi.String("Variation1"),
    41  //						Variation: pulumi.String("Variation1"),
    42  //					},
    43  //				},
    44  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
    45  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
    46  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
    47  //							GroupWeights: pulumi.IntMap{
    48  //								"Variation1": pulumi.Int(0),
    49  //							},
    50  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
    51  //						},
    52  //					},
    53  //				},
    54  //			})
    55  //			if err != nil {
    56  //				return err
    57  //			}
    58  //			return nil
    59  //		})
    60  //	}
    61  //
    62  // ```
    63  // <!--End PulumiCodeChooser -->
    64  //
    65  // ### With description
    66  //
    67  // <!--Start PulumiCodeChooser -->
    68  // ```go
    69  // package main
    70  //
    71  // import (
    72  //
    73  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
    74  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    75  //
    76  // )
    77  //
    78  //	func main() {
    79  //		pulumi.Run(func(ctx *pulumi.Context) error {
    80  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
    81  //				Name:        pulumi.String("example"),
    82  //				Project:     pulumi.Any(exampleAwsEvidentlyProject.Name),
    83  //				Description: pulumi.String("example description"),
    84  //				Groups: evidently.LaunchGroupArray{
    85  //					&evidently.LaunchGroupArgs{
    86  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
    87  //						Name:      pulumi.String("Variation1"),
    88  //						Variation: pulumi.String("Variation1"),
    89  //					},
    90  //				},
    91  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
    92  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
    93  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
    94  //							GroupWeights: pulumi.IntMap{
    95  //								"Variation1": pulumi.Int(0),
    96  //							},
    97  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
    98  //						},
    99  //					},
   100  //				},
   101  //			})
   102  //			if err != nil {
   103  //				return err
   104  //			}
   105  //			return nil
   106  //		})
   107  //	}
   108  //
   109  // ```
   110  // <!--End PulumiCodeChooser -->
   111  //
   112  // ### With multiple groups
   113  //
   114  // <!--Start PulumiCodeChooser -->
   115  // ```go
   116  // package main
   117  //
   118  // import (
   119  //
   120  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   121  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   122  //
   123  // )
   124  //
   125  //	func main() {
   126  //		pulumi.Run(func(ctx *pulumi.Context) error {
   127  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
   128  //				Name:    pulumi.String("example"),
   129  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
   130  //				Groups: evidently.LaunchGroupArray{
   131  //					&evidently.LaunchGroupArgs{
   132  //						Feature:     pulumi.Any(exampleAwsEvidentlyFeature.Name),
   133  //						Name:        pulumi.String("Variation1"),
   134  //						Variation:   pulumi.String("Variation1"),
   135  //						Description: pulumi.String("first-group"),
   136  //					},
   137  //					&evidently.LaunchGroupArgs{
   138  //						Feature:     pulumi.Any(exampleAwsEvidentlyFeature.Name),
   139  //						Name:        pulumi.String("Variation2"),
   140  //						Variation:   pulumi.String("Variation2"),
   141  //						Description: pulumi.String("second-group"),
   142  //					},
   143  //				},
   144  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
   145  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
   146  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   147  //							GroupWeights: pulumi.IntMap{
   148  //								"Variation1": pulumi.Int(0),
   149  //								"Variation2": pulumi.Int(0),
   150  //							},
   151  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
   152  //						},
   153  //					},
   154  //				},
   155  //			})
   156  //			if err != nil {
   157  //				return err
   158  //			}
   159  //			return nil
   160  //		})
   161  //	}
   162  //
   163  // ```
   164  // <!--End PulumiCodeChooser -->
   165  //
   166  // ### With metricMonitors
   167  //
   168  // <!--Start PulumiCodeChooser -->
   169  // ```go
   170  // package main
   171  //
   172  // import (
   173  //
   174  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   175  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   176  //
   177  // )
   178  //
   179  //	func main() {
   180  //		pulumi.Run(func(ctx *pulumi.Context) error {
   181  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
   182  //				Name:    pulumi.String("example"),
   183  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
   184  //				Groups: evidently.LaunchGroupArray{
   185  //					&evidently.LaunchGroupArgs{
   186  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   187  //						Name:      pulumi.String("Variation1"),
   188  //						Variation: pulumi.String("Variation1"),
   189  //					},
   190  //				},
   191  //				MetricMonitors: evidently.LaunchMetricMonitorArray{
   192  //					&evidently.LaunchMetricMonitorArgs{
   193  //						MetricDefinition: &evidently.LaunchMetricMonitorMetricDefinitionArgs{
   194  //							EntityIdKey:  pulumi.String("entity_id_key1"),
   195  //							EventPattern: pulumi.String("{\"Price\":[{\"numeric\":[\">\",11,\"<=\",22]}]}"),
   196  //							Name:         pulumi.String("name1"),
   197  //							UnitLabel:    pulumi.String("unit_label1"),
   198  //							ValueKey:     pulumi.String("value_key1"),
   199  //						},
   200  //					},
   201  //					&evidently.LaunchMetricMonitorArgs{
   202  //						MetricDefinition: &evidently.LaunchMetricMonitorMetricDefinitionArgs{
   203  //							EntityIdKey:  pulumi.String("entity_id_key2"),
   204  //							EventPattern: pulumi.String("{\"Price\":[{\"numeric\":[\">\",9,\"<=\",19]}]}"),
   205  //							Name:         pulumi.String("name2"),
   206  //							UnitLabel:    pulumi.String("unit_label2"),
   207  //							ValueKey:     pulumi.String("value_key2"),
   208  //						},
   209  //					},
   210  //				},
   211  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
   212  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
   213  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   214  //							GroupWeights: pulumi.IntMap{
   215  //								"Variation1": pulumi.Int(0),
   216  //							},
   217  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
   218  //						},
   219  //					},
   220  //				},
   221  //			})
   222  //			if err != nil {
   223  //				return err
   224  //			}
   225  //			return nil
   226  //		})
   227  //	}
   228  //
   229  // ```
   230  // <!--End PulumiCodeChooser -->
   231  //
   232  // ### With randomizationSalt
   233  //
   234  // <!--Start PulumiCodeChooser -->
   235  // ```go
   236  // package main
   237  //
   238  // import (
   239  //
   240  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   241  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   242  //
   243  // )
   244  //
   245  //	func main() {
   246  //		pulumi.Run(func(ctx *pulumi.Context) error {
   247  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
   248  //				Name:              pulumi.String("example"),
   249  //				Project:           pulumi.Any(exampleAwsEvidentlyProject.Name),
   250  //				RandomizationSalt: pulumi.String("example randomization salt"),
   251  //				Groups: evidently.LaunchGroupArray{
   252  //					&evidently.LaunchGroupArgs{
   253  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   254  //						Name:      pulumi.String("Variation1"),
   255  //						Variation: pulumi.String("Variation1"),
   256  //					},
   257  //				},
   258  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
   259  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
   260  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   261  //							GroupWeights: pulumi.IntMap{
   262  //								"Variation1": pulumi.Int(0),
   263  //							},
   264  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
   265  //						},
   266  //					},
   267  //				},
   268  //			})
   269  //			if err != nil {
   270  //				return err
   271  //			}
   272  //			return nil
   273  //		})
   274  //	}
   275  //
   276  // ```
   277  // <!--End PulumiCodeChooser -->
   278  //
   279  // ### With multiple steps
   280  //
   281  // <!--Start PulumiCodeChooser -->
   282  // ```go
   283  // package main
   284  //
   285  // import (
   286  //
   287  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   288  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   289  //
   290  // )
   291  //
   292  //	func main() {
   293  //		pulumi.Run(func(ctx *pulumi.Context) error {
   294  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
   295  //				Name:    pulumi.String("example"),
   296  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
   297  //				Groups: evidently.LaunchGroupArray{
   298  //					&evidently.LaunchGroupArgs{
   299  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   300  //						Name:      pulumi.String("Variation1"),
   301  //						Variation: pulumi.String("Variation1"),
   302  //					},
   303  //					&evidently.LaunchGroupArgs{
   304  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   305  //						Name:      pulumi.String("Variation2"),
   306  //						Variation: pulumi.String("Variation2"),
   307  //					},
   308  //				},
   309  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
   310  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
   311  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   312  //							GroupWeights: pulumi.IntMap{
   313  //								"Variation1": pulumi.Int(15),
   314  //								"Variation2": pulumi.Int(10),
   315  //							},
   316  //							StartTime: pulumi.String("2024-01-07 01:43:59+00:00"),
   317  //						},
   318  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   319  //							GroupWeights: pulumi.IntMap{
   320  //								"Variation1": pulumi.Int(20),
   321  //								"Variation2": pulumi.Int(25),
   322  //							},
   323  //							StartTime: pulumi.String("2024-01-08 01:43:59+00:00"),
   324  //						},
   325  //					},
   326  //				},
   327  //			})
   328  //			if err != nil {
   329  //				return err
   330  //			}
   331  //			return nil
   332  //		})
   333  //	}
   334  //
   335  // ```
   336  // <!--End PulumiCodeChooser -->
   337  //
   338  // ### With segment overrides
   339  //
   340  // <!--Start PulumiCodeChooser -->
   341  // ```go
   342  // package main
   343  //
   344  // import (
   345  //
   346  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/evidently"
   347  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   348  //
   349  // )
   350  //
   351  //	func main() {
   352  //		pulumi.Run(func(ctx *pulumi.Context) error {
   353  //			_, err := evidently.NewLaunch(ctx, "example", &evidently.LaunchArgs{
   354  //				Name:    pulumi.String("example"),
   355  //				Project: pulumi.Any(exampleAwsEvidentlyProject.Name),
   356  //				Groups: evidently.LaunchGroupArray{
   357  //					&evidently.LaunchGroupArgs{
   358  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   359  //						Name:      pulumi.String("Variation1"),
   360  //						Variation: pulumi.String("Variation1"),
   361  //					},
   362  //					&evidently.LaunchGroupArgs{
   363  //						Feature:   pulumi.Any(exampleAwsEvidentlyFeature.Name),
   364  //						Name:      pulumi.String("Variation2"),
   365  //						Variation: pulumi.String("Variation2"),
   366  //					},
   367  //				},
   368  //				ScheduledSplitsConfig: &evidently.LaunchScheduledSplitsConfigArgs{
   369  //					Steps: evidently.LaunchScheduledSplitsConfigStepArray{
   370  //						&evidently.LaunchScheduledSplitsConfigStepArgs{
   371  //							GroupWeights: pulumi.IntMap{
   372  //								"Variation1": pulumi.Int(0),
   373  //								"Variation2": pulumi.Int(0),
   374  //							},
   375  //							SegmentOverrides: evidently.LaunchScheduledSplitsConfigStepSegmentOverrideArray{
   376  //								&evidently.LaunchScheduledSplitsConfigStepSegmentOverrideArgs{
   377  //									EvaluationOrder: pulumi.Int(1),
   378  //									Segment:         pulumi.Any(exampleAwsEvidentlySegment.Name),
   379  //									Weights: pulumi.IntMap{
   380  //										"Variation2": pulumi.Int(10000),
   381  //									},
   382  //								},
   383  //								&evidently.LaunchScheduledSplitsConfigStepSegmentOverrideArgs{
   384  //									EvaluationOrder: pulumi.Int(2),
   385  //									Segment:         pulumi.Any(exampleAwsEvidentlySegment.Name),
   386  //									Weights: pulumi.IntMap{
   387  //										"Variation1": pulumi.Int(40000),
   388  //										"Variation2": pulumi.Int(30000),
   389  //									},
   390  //								},
   391  //							},
   392  //							StartTime: pulumi.String("2024-01-08 01:43:59+00:00"),
   393  //						},
   394  //					},
   395  //				},
   396  //			})
   397  //			if err != nil {
   398  //				return err
   399  //			}
   400  //			return nil
   401  //		})
   402  //	}
   403  //
   404  // ```
   405  // <!--End PulumiCodeChooser -->
   406  //
   407  // ## Import
   408  //
   409  // Import using the `name` of the launch and `arn` of the project separated by a `:`:
   410  //
   411  // __Using `pulumi import` to import__ CloudWatch Evidently Launch using the `name` of the launch and `name` of the project or `arn` of the hosting CloudWatch Evidently Project separated by a `:`. For example:
   412  //
   413  // Import using the `name` of the launch and `name` of the project separated by a `:`:
   414  //
   415  // ```sh
   416  // $ pulumi import aws:evidently/launch:Launch example exampleLaunchName:exampleProjectName
   417  // ```
   418  // Import using the `name` of the launch and `arn` of the project separated by a `:`:
   419  //
   420  // ```sh
   421  // $ pulumi import aws:evidently/launch:Launch example exampleLaunchName:arn:aws:evidently:us-east-1:123456789012:project/exampleProjectName
   422  // ```
   423  type Launch struct {
   424  	pulumi.CustomResourceState
   425  
   426  	// The ARN of the launch.
   427  	Arn pulumi.StringOutput `pulumi:"arn"`
   428  	// The date and time that the launch is created.
   429  	CreatedTime pulumi.StringOutput `pulumi:"createdTime"`
   430  	// Specifies the description of the launch.
   431  	Description pulumi.StringPtrOutput `pulumi:"description"`
   432  	// A block that contains information about the start and end times of the launch. Detailed below
   433  	Executions LaunchExecutionArrayOutput `pulumi:"executions"`
   434  	// One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   435  	Groups LaunchGroupArrayOutput `pulumi:"groups"`
   436  	// The date and time that the launch was most recently updated.
   437  	LastUpdatedTime pulumi.StringOutput `pulumi:"lastUpdatedTime"`
   438  	// One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   439  	MetricMonitors LaunchMetricMonitorArrayOutput `pulumi:"metricMonitors"`
   440  	// The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   441  	Name pulumi.StringOutput `pulumi:"name"`
   442  	// The name or ARN of the project that is to contain the new launch.
   443  	Project pulumi.StringOutput `pulumi:"project"`
   444  	// When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   445  	RandomizationSalt pulumi.StringPtrOutput `pulumi:"randomizationSalt"`
   446  	// A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   447  	ScheduledSplitsConfig LaunchScheduledSplitsConfigPtrOutput `pulumi:"scheduledSplitsConfig"`
   448  	// The current state of the launch. Valid values are `CREATED`, `UPDATING`, `RUNNING`, `COMPLETED`, and `CANCELLED`.
   449  	Status pulumi.StringOutput `pulumi:"status"`
   450  	// If the launch was stopped, this is the string that was entered by the person who stopped the launch, to explain why it was stopped.
   451  	StatusReason pulumi.StringOutput `pulumi:"statusReason"`
   452  	// Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   453  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   454  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   455  	//
   456  	// Deprecated: Please use `tags` instead.
   457  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   458  	// The type of launch.
   459  	Type pulumi.StringOutput `pulumi:"type"`
   460  }
   461  
   462  // NewLaunch registers a new resource with the given unique name, arguments, and options.
   463  func NewLaunch(ctx *pulumi.Context,
   464  	name string, args *LaunchArgs, opts ...pulumi.ResourceOption) (*Launch, error) {
   465  	if args == nil {
   466  		return nil, errors.New("missing one or more required arguments")
   467  	}
   468  
   469  	if args.Groups == nil {
   470  		return nil, errors.New("invalid value for required argument 'Groups'")
   471  	}
   472  	if args.Project == nil {
   473  		return nil, errors.New("invalid value for required argument 'Project'")
   474  	}
   475  	opts = internal.PkgResourceDefaultOpts(opts)
   476  	var resource Launch
   477  	err := ctx.RegisterResource("aws:evidently/launch:Launch", name, args, &resource, opts...)
   478  	if err != nil {
   479  		return nil, err
   480  	}
   481  	return &resource, nil
   482  }
   483  
   484  // GetLaunch gets an existing Launch resource's state with the given name, ID, and optional
   485  // state properties that are used to uniquely qualify the lookup (nil if not required).
   486  func GetLaunch(ctx *pulumi.Context,
   487  	name string, id pulumi.IDInput, state *LaunchState, opts ...pulumi.ResourceOption) (*Launch, error) {
   488  	var resource Launch
   489  	err := ctx.ReadResource("aws:evidently/launch:Launch", name, id, state, &resource, opts...)
   490  	if err != nil {
   491  		return nil, err
   492  	}
   493  	return &resource, nil
   494  }
   495  
   496  // Input properties used for looking up and filtering Launch resources.
   497  type launchState struct {
   498  	// The ARN of the launch.
   499  	Arn *string `pulumi:"arn"`
   500  	// The date and time that the launch is created.
   501  	CreatedTime *string `pulumi:"createdTime"`
   502  	// Specifies the description of the launch.
   503  	Description *string `pulumi:"description"`
   504  	// A block that contains information about the start and end times of the launch. Detailed below
   505  	Executions []LaunchExecution `pulumi:"executions"`
   506  	// One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   507  	Groups []LaunchGroup `pulumi:"groups"`
   508  	// The date and time that the launch was most recently updated.
   509  	LastUpdatedTime *string `pulumi:"lastUpdatedTime"`
   510  	// One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   511  	MetricMonitors []LaunchMetricMonitor `pulumi:"metricMonitors"`
   512  	// The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   513  	Name *string `pulumi:"name"`
   514  	// The name or ARN of the project that is to contain the new launch.
   515  	Project *string `pulumi:"project"`
   516  	// When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   517  	RandomizationSalt *string `pulumi:"randomizationSalt"`
   518  	// A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   519  	ScheduledSplitsConfig *LaunchScheduledSplitsConfig `pulumi:"scheduledSplitsConfig"`
   520  	// The current state of the launch. Valid values are `CREATED`, `UPDATING`, `RUNNING`, `COMPLETED`, and `CANCELLED`.
   521  	Status *string `pulumi:"status"`
   522  	// If the launch was stopped, this is the string that was entered by the person who stopped the launch, to explain why it was stopped.
   523  	StatusReason *string `pulumi:"statusReason"`
   524  	// Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   525  	Tags map[string]string `pulumi:"tags"`
   526  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   527  	//
   528  	// Deprecated: Please use `tags` instead.
   529  	TagsAll map[string]string `pulumi:"tagsAll"`
   530  	// The type of launch.
   531  	Type *string `pulumi:"type"`
   532  }
   533  
   534  type LaunchState struct {
   535  	// The ARN of the launch.
   536  	Arn pulumi.StringPtrInput
   537  	// The date and time that the launch is created.
   538  	CreatedTime pulumi.StringPtrInput
   539  	// Specifies the description of the launch.
   540  	Description pulumi.StringPtrInput
   541  	// A block that contains information about the start and end times of the launch. Detailed below
   542  	Executions LaunchExecutionArrayInput
   543  	// One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   544  	Groups LaunchGroupArrayInput
   545  	// The date and time that the launch was most recently updated.
   546  	LastUpdatedTime pulumi.StringPtrInput
   547  	// One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   548  	MetricMonitors LaunchMetricMonitorArrayInput
   549  	// The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   550  	Name pulumi.StringPtrInput
   551  	// The name or ARN of the project that is to contain the new launch.
   552  	Project pulumi.StringPtrInput
   553  	// When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   554  	RandomizationSalt pulumi.StringPtrInput
   555  	// A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   556  	ScheduledSplitsConfig LaunchScheduledSplitsConfigPtrInput
   557  	// The current state of the launch. Valid values are `CREATED`, `UPDATING`, `RUNNING`, `COMPLETED`, and `CANCELLED`.
   558  	Status pulumi.StringPtrInput
   559  	// If the launch was stopped, this is the string that was entered by the person who stopped the launch, to explain why it was stopped.
   560  	StatusReason pulumi.StringPtrInput
   561  	// Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   562  	Tags pulumi.StringMapInput
   563  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   564  	//
   565  	// Deprecated: Please use `tags` instead.
   566  	TagsAll pulumi.StringMapInput
   567  	// The type of launch.
   568  	Type pulumi.StringPtrInput
   569  }
   570  
   571  func (LaunchState) ElementType() reflect.Type {
   572  	return reflect.TypeOf((*launchState)(nil)).Elem()
   573  }
   574  
   575  type launchArgs struct {
   576  	// Specifies the description of the launch.
   577  	Description *string `pulumi:"description"`
   578  	// One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   579  	Groups []LaunchGroup `pulumi:"groups"`
   580  	// One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   581  	MetricMonitors []LaunchMetricMonitor `pulumi:"metricMonitors"`
   582  	// The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   583  	Name *string `pulumi:"name"`
   584  	// The name or ARN of the project that is to contain the new launch.
   585  	Project string `pulumi:"project"`
   586  	// When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   587  	RandomizationSalt *string `pulumi:"randomizationSalt"`
   588  	// A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   589  	ScheduledSplitsConfig *LaunchScheduledSplitsConfig `pulumi:"scheduledSplitsConfig"`
   590  	// Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   591  	Tags map[string]string `pulumi:"tags"`
   592  }
   593  
   594  // The set of arguments for constructing a Launch resource.
   595  type LaunchArgs struct {
   596  	// Specifies the description of the launch.
   597  	Description pulumi.StringPtrInput
   598  	// One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   599  	Groups LaunchGroupArrayInput
   600  	// One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   601  	MetricMonitors LaunchMetricMonitorArrayInput
   602  	// The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   603  	Name pulumi.StringPtrInput
   604  	// The name or ARN of the project that is to contain the new launch.
   605  	Project pulumi.StringInput
   606  	// When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   607  	RandomizationSalt pulumi.StringPtrInput
   608  	// A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   609  	ScheduledSplitsConfig LaunchScheduledSplitsConfigPtrInput
   610  	// Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   611  	Tags pulumi.StringMapInput
   612  }
   613  
   614  func (LaunchArgs) ElementType() reflect.Type {
   615  	return reflect.TypeOf((*launchArgs)(nil)).Elem()
   616  }
   617  
   618  type LaunchInput interface {
   619  	pulumi.Input
   620  
   621  	ToLaunchOutput() LaunchOutput
   622  	ToLaunchOutputWithContext(ctx context.Context) LaunchOutput
   623  }
   624  
   625  func (*Launch) ElementType() reflect.Type {
   626  	return reflect.TypeOf((**Launch)(nil)).Elem()
   627  }
   628  
   629  func (i *Launch) ToLaunchOutput() LaunchOutput {
   630  	return i.ToLaunchOutputWithContext(context.Background())
   631  }
   632  
   633  func (i *Launch) ToLaunchOutputWithContext(ctx context.Context) LaunchOutput {
   634  	return pulumi.ToOutputWithContext(ctx, i).(LaunchOutput)
   635  }
   636  
   637  // LaunchArrayInput is an input type that accepts LaunchArray and LaunchArrayOutput values.
   638  // You can construct a concrete instance of `LaunchArrayInput` via:
   639  //
   640  //	LaunchArray{ LaunchArgs{...} }
   641  type LaunchArrayInput interface {
   642  	pulumi.Input
   643  
   644  	ToLaunchArrayOutput() LaunchArrayOutput
   645  	ToLaunchArrayOutputWithContext(context.Context) LaunchArrayOutput
   646  }
   647  
   648  type LaunchArray []LaunchInput
   649  
   650  func (LaunchArray) ElementType() reflect.Type {
   651  	return reflect.TypeOf((*[]*Launch)(nil)).Elem()
   652  }
   653  
   654  func (i LaunchArray) ToLaunchArrayOutput() LaunchArrayOutput {
   655  	return i.ToLaunchArrayOutputWithContext(context.Background())
   656  }
   657  
   658  func (i LaunchArray) ToLaunchArrayOutputWithContext(ctx context.Context) LaunchArrayOutput {
   659  	return pulumi.ToOutputWithContext(ctx, i).(LaunchArrayOutput)
   660  }
   661  
   662  // LaunchMapInput is an input type that accepts LaunchMap and LaunchMapOutput values.
   663  // You can construct a concrete instance of `LaunchMapInput` via:
   664  //
   665  //	LaunchMap{ "key": LaunchArgs{...} }
   666  type LaunchMapInput interface {
   667  	pulumi.Input
   668  
   669  	ToLaunchMapOutput() LaunchMapOutput
   670  	ToLaunchMapOutputWithContext(context.Context) LaunchMapOutput
   671  }
   672  
   673  type LaunchMap map[string]LaunchInput
   674  
   675  func (LaunchMap) ElementType() reflect.Type {
   676  	return reflect.TypeOf((*map[string]*Launch)(nil)).Elem()
   677  }
   678  
   679  func (i LaunchMap) ToLaunchMapOutput() LaunchMapOutput {
   680  	return i.ToLaunchMapOutputWithContext(context.Background())
   681  }
   682  
   683  func (i LaunchMap) ToLaunchMapOutputWithContext(ctx context.Context) LaunchMapOutput {
   684  	return pulumi.ToOutputWithContext(ctx, i).(LaunchMapOutput)
   685  }
   686  
   687  type LaunchOutput struct{ *pulumi.OutputState }
   688  
   689  func (LaunchOutput) ElementType() reflect.Type {
   690  	return reflect.TypeOf((**Launch)(nil)).Elem()
   691  }
   692  
   693  func (o LaunchOutput) ToLaunchOutput() LaunchOutput {
   694  	return o
   695  }
   696  
   697  func (o LaunchOutput) ToLaunchOutputWithContext(ctx context.Context) LaunchOutput {
   698  	return o
   699  }
   700  
   701  // The ARN of the launch.
   702  func (o LaunchOutput) Arn() pulumi.StringOutput {
   703  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   704  }
   705  
   706  // The date and time that the launch is created.
   707  func (o LaunchOutput) CreatedTime() pulumi.StringOutput {
   708  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.CreatedTime }).(pulumi.StringOutput)
   709  }
   710  
   711  // Specifies the description of the launch.
   712  func (o LaunchOutput) Description() pulumi.StringPtrOutput {
   713  	return o.ApplyT(func(v *Launch) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   714  }
   715  
   716  // A block that contains information about the start and end times of the launch. Detailed below
   717  func (o LaunchOutput) Executions() LaunchExecutionArrayOutput {
   718  	return o.ApplyT(func(v *Launch) LaunchExecutionArrayOutput { return v.Executions }).(LaunchExecutionArrayOutput)
   719  }
   720  
   721  // One or up to five blocks that contain the feature and variations that are to be used for the launch. Detailed below.
   722  func (o LaunchOutput) Groups() LaunchGroupArrayOutput {
   723  	return o.ApplyT(func(v *Launch) LaunchGroupArrayOutput { return v.Groups }).(LaunchGroupArrayOutput)
   724  }
   725  
   726  // The date and time that the launch was most recently updated.
   727  func (o LaunchOutput) LastUpdatedTime() pulumi.StringOutput {
   728  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.LastUpdatedTime }).(pulumi.StringOutput)
   729  }
   730  
   731  // One or up to three blocks that define the metrics that will be used to monitor the launch performance. Detailed below.
   732  func (o LaunchOutput) MetricMonitors() LaunchMetricMonitorArrayOutput {
   733  	return o.ApplyT(func(v *Launch) LaunchMetricMonitorArrayOutput { return v.MetricMonitors }).(LaunchMetricMonitorArrayOutput)
   734  }
   735  
   736  // The name for the new launch. Minimum length of `1`. Maximum length of `127`.
   737  func (o LaunchOutput) Name() pulumi.StringOutput {
   738  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   739  }
   740  
   741  // The name or ARN of the project that is to contain the new launch.
   742  func (o LaunchOutput) Project() pulumi.StringOutput {
   743  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput)
   744  }
   745  
   746  // When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.
   747  func (o LaunchOutput) RandomizationSalt() pulumi.StringPtrOutput {
   748  	return o.ApplyT(func(v *Launch) pulumi.StringPtrOutput { return v.RandomizationSalt }).(pulumi.StringPtrOutput)
   749  }
   750  
   751  // A block that defines the traffic allocation percentages among the feature variations during each step of the launch. Detailed below.
   752  func (o LaunchOutput) ScheduledSplitsConfig() LaunchScheduledSplitsConfigPtrOutput {
   753  	return o.ApplyT(func(v *Launch) LaunchScheduledSplitsConfigPtrOutput { return v.ScheduledSplitsConfig }).(LaunchScheduledSplitsConfigPtrOutput)
   754  }
   755  
   756  // The current state of the launch. Valid values are `CREATED`, `UPDATING`, `RUNNING`, `COMPLETED`, and `CANCELLED`.
   757  func (o LaunchOutput) Status() pulumi.StringOutput {
   758  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   759  }
   760  
   761  // If the launch was stopped, this is the string that was entered by the person who stopped the launch, to explain why it was stopped.
   762  func (o LaunchOutput) StatusReason() pulumi.StringOutput {
   763  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.StatusReason }).(pulumi.StringOutput)
   764  }
   765  
   766  // Tags to apply to the launch. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   767  func (o LaunchOutput) Tags() pulumi.StringMapOutput {
   768  	return o.ApplyT(func(v *Launch) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   769  }
   770  
   771  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   772  //
   773  // Deprecated: Please use `tags` instead.
   774  func (o LaunchOutput) TagsAll() pulumi.StringMapOutput {
   775  	return o.ApplyT(func(v *Launch) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   776  }
   777  
   778  // The type of launch.
   779  func (o LaunchOutput) Type() pulumi.StringOutput {
   780  	return o.ApplyT(func(v *Launch) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
   781  }
   782  
   783  type LaunchArrayOutput struct{ *pulumi.OutputState }
   784  
   785  func (LaunchArrayOutput) ElementType() reflect.Type {
   786  	return reflect.TypeOf((*[]*Launch)(nil)).Elem()
   787  }
   788  
   789  func (o LaunchArrayOutput) ToLaunchArrayOutput() LaunchArrayOutput {
   790  	return o
   791  }
   792  
   793  func (o LaunchArrayOutput) ToLaunchArrayOutputWithContext(ctx context.Context) LaunchArrayOutput {
   794  	return o
   795  }
   796  
   797  func (o LaunchArrayOutput) Index(i pulumi.IntInput) LaunchOutput {
   798  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Launch {
   799  		return vs[0].([]*Launch)[vs[1].(int)]
   800  	}).(LaunchOutput)
   801  }
   802  
   803  type LaunchMapOutput struct{ *pulumi.OutputState }
   804  
   805  func (LaunchMapOutput) ElementType() reflect.Type {
   806  	return reflect.TypeOf((*map[string]*Launch)(nil)).Elem()
   807  }
   808  
   809  func (o LaunchMapOutput) ToLaunchMapOutput() LaunchMapOutput {
   810  	return o
   811  }
   812  
   813  func (o LaunchMapOutput) ToLaunchMapOutputWithContext(ctx context.Context) LaunchMapOutput {
   814  	return o
   815  }
   816  
   817  func (o LaunchMapOutput) MapIndex(k pulumi.StringInput) LaunchOutput {
   818  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Launch {
   819  		return vs[0].(map[string]*Launch)[vs[1].(string)]
   820  	}).(LaunchOutput)
   821  }
   822  
   823  func init() {
   824  	pulumi.RegisterInputType(reflect.TypeOf((*LaunchInput)(nil)).Elem(), &Launch{})
   825  	pulumi.RegisterInputType(reflect.TypeOf((*LaunchArrayInput)(nil)).Elem(), LaunchArray{})
   826  	pulumi.RegisterInputType(reflect.TypeOf((*LaunchMapInput)(nil)).Elem(), LaunchMap{})
   827  	pulumi.RegisterOutputType(LaunchOutput{})
   828  	pulumi.RegisterOutputType(LaunchArrayOutput{})
   829  	pulumi.RegisterOutputType(LaunchMapOutput{})
   830  }