github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/servicecatalog/provisionedProduct.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 servicecatalog
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // This resource provisions and manages a Service Catalog provisioned product.
    15  //
    16  // A provisioned product is a resourced instance of a product. For example, provisioning a product based on a CloudFormation template launches a CloudFormation stack and its underlying resources.
    17  //
    18  // Like this resource, the `awsServicecatalogRecord` data source also provides information about a provisioned product. Although a Service Catalog record provides some overlapping information with this resource, a record is tied to a provisioned product event, such as provisioning, termination, and updating.
    19  //
    20  // > **Tip:** If you include conflicted keys as tags, AWS will report an error, "Parameter validation failed: Missing required parameter in Tags[N]:Value".
    21  //
    22  // > **Tip:** A "provisioning artifact" is also referred to as a "version." A "distributor" is also referred to as a "vendor."
    23  //
    24  // ## Example Usage
    25  //
    26  // ### Basic Usage
    27  //
    28  // <!--Start PulumiCodeChooser -->
    29  // ```go
    30  // package main
    31  //
    32  // import (
    33  //
    34  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog"
    35  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    36  //
    37  // )
    38  //
    39  //	func main() {
    40  //		pulumi.Run(func(ctx *pulumi.Context) error {
    41  //			_, err := servicecatalog.NewProvisionedProduct(ctx, "example", &servicecatalog.ProvisionedProductArgs{
    42  //				Name:                     pulumi.String("example"),
    43  //				ProductName:              pulumi.String("Example product"),
    44  //				ProvisioningArtifactName: pulumi.String("Example version"),
    45  //				ProvisioningParameters: servicecatalog.ProvisionedProductProvisioningParameterArray{
    46  //					&servicecatalog.ProvisionedProductProvisioningParameterArgs{
    47  //						Key:   pulumi.String("foo"),
    48  //						Value: pulumi.String("bar"),
    49  //					},
    50  //				},
    51  //				Tags: pulumi.StringMap{
    52  //					"foo": pulumi.String("bar"),
    53  //				},
    54  //			})
    55  //			if err != nil {
    56  //				return err
    57  //			}
    58  //			return nil
    59  //		})
    60  //	}
    61  //
    62  // ```
    63  // <!--End PulumiCodeChooser -->
    64  //
    65  // ## Import
    66  //
    67  // Using `pulumi import`, import `aws_servicecatalog_provisioned_product` using the provisioned product ID. For example:
    68  //
    69  // ```sh
    70  // $ pulumi import aws:servicecatalog/provisionedProduct:ProvisionedProduct example pp-dnigbtea24ste
    71  // ```
    72  type ProvisionedProduct struct {
    73  	pulumi.CustomResourceState
    74  
    75  	// Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
    76  	AcceptLanguage pulumi.StringPtrOutput `pulumi:"acceptLanguage"`
    77  	// ARN of the provisioned product.
    78  	Arn pulumi.StringOutput `pulumi:"arn"`
    79  	// Set of CloudWatch dashboards that were created when provisioning the product.
    80  	CloudwatchDashboardNames pulumi.StringArrayOutput `pulumi:"cloudwatchDashboardNames"`
    81  	// Time when the provisioned product was created.
    82  	CreatedTime pulumi.StringOutput `pulumi:"createdTime"`
    83  	// _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
    84  	IgnoreErrors pulumi.BoolPtrOutput `pulumi:"ignoreErrors"`
    85  	// Record identifier of the last request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
    86  	LastProvisioningRecordId pulumi.StringOutput `pulumi:"lastProvisioningRecordId"`
    87  	// Record identifier of the last request performed on this provisioned product.
    88  	LastRecordId pulumi.StringOutput `pulumi:"lastRecordId"`
    89  	// Record identifier of the last successful request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
    90  	LastSuccessfulProvisioningRecordId pulumi.StringOutput `pulumi:"lastSuccessfulProvisioningRecordId"`
    91  	// ARN of the launch role associated with the provisioned product.
    92  	LaunchRoleArn pulumi.StringOutput `pulumi:"launchRoleArn"`
    93  	// User-friendly name of the provisioned product.
    94  	//
    95  	// The following arguments are optional:
    96  	Name pulumi.StringOutput `pulumi:"name"`
    97  	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
    98  	NotificationArns pulumi.StringArrayOutput `pulumi:"notificationArns"`
    99  	// The set of outputs for the product created.
   100  	Outputs ProvisionedProductOutputTypeArrayOutput `pulumi:"outputs"`
   101  	// Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   102  	PathId pulumi.StringOutput `pulumi:"pathId"`
   103  	// Name of the path. You must provide `pathId` or `pathName`, but not both.
   104  	PathName pulumi.StringPtrOutput `pulumi:"pathName"`
   105  	// Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   106  	ProductId pulumi.StringOutput `pulumi:"productId"`
   107  	// Name of the product. You must provide `productId` or `productName`, but not both.
   108  	ProductName pulumi.StringPtrOutput `pulumi:"productName"`
   109  	// Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   110  	ProvisioningArtifactId pulumi.StringOutput `pulumi:"provisioningArtifactId"`
   111  	// Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   112  	ProvisioningArtifactName pulumi.StringPtrOutput `pulumi:"provisioningArtifactName"`
   113  	// Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   114  	ProvisioningParameters ProvisionedProductProvisioningParameterArrayOutput `pulumi:"provisioningParameters"`
   115  	// _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   116  	RetainPhysicalResources pulumi.BoolPtrOutput `pulumi:"retainPhysicalResources"`
   117  	// Configuration block with information about the provisioning preferences for a stack set. See details below.
   118  	StackSetProvisioningPreferences ProvisionedProductStackSetProvisioningPreferencesPtrOutput `pulumi:"stackSetProvisioningPreferences"`
   119  	// Current status of the provisioned product. See meanings below.
   120  	Status pulumi.StringOutput `pulumi:"status"`
   121  	// Current status message of the provisioned product.
   122  	StatusMessage pulumi.StringOutput `pulumi:"statusMessage"`
   123  	// Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   124  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   125  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   126  	//
   127  	// Deprecated: Please use `tags` instead.
   128  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   129  	// Type of provisioned product. Valid values are `CFN_STACK` and `CFN_STACKSET`.
   130  	Type pulumi.StringOutput `pulumi:"type"`
   131  }
   132  
   133  // NewProvisionedProduct registers a new resource with the given unique name, arguments, and options.
   134  func NewProvisionedProduct(ctx *pulumi.Context,
   135  	name string, args *ProvisionedProductArgs, opts ...pulumi.ResourceOption) (*ProvisionedProduct, error) {
   136  	if args == nil {
   137  		args = &ProvisionedProductArgs{}
   138  	}
   139  
   140  	opts = internal.PkgResourceDefaultOpts(opts)
   141  	var resource ProvisionedProduct
   142  	err := ctx.RegisterResource("aws:servicecatalog/provisionedProduct:ProvisionedProduct", name, args, &resource, opts...)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return &resource, nil
   147  }
   148  
   149  // GetProvisionedProduct gets an existing ProvisionedProduct resource's state with the given name, ID, and optional
   150  // state properties that are used to uniquely qualify the lookup (nil if not required).
   151  func GetProvisionedProduct(ctx *pulumi.Context,
   152  	name string, id pulumi.IDInput, state *ProvisionedProductState, opts ...pulumi.ResourceOption) (*ProvisionedProduct, error) {
   153  	var resource ProvisionedProduct
   154  	err := ctx.ReadResource("aws:servicecatalog/provisionedProduct:ProvisionedProduct", name, id, state, &resource, opts...)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	return &resource, nil
   159  }
   160  
   161  // Input properties used for looking up and filtering ProvisionedProduct resources.
   162  type provisionedProductState struct {
   163  	// Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
   164  	AcceptLanguage *string `pulumi:"acceptLanguage"`
   165  	// ARN of the provisioned product.
   166  	Arn *string `pulumi:"arn"`
   167  	// Set of CloudWatch dashboards that were created when provisioning the product.
   168  	CloudwatchDashboardNames []string `pulumi:"cloudwatchDashboardNames"`
   169  	// Time when the provisioned product was created.
   170  	CreatedTime *string `pulumi:"createdTime"`
   171  	// _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
   172  	IgnoreErrors *bool `pulumi:"ignoreErrors"`
   173  	// Record identifier of the last request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   174  	LastProvisioningRecordId *string `pulumi:"lastProvisioningRecordId"`
   175  	// Record identifier of the last request performed on this provisioned product.
   176  	LastRecordId *string `pulumi:"lastRecordId"`
   177  	// Record identifier of the last successful request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   178  	LastSuccessfulProvisioningRecordId *string `pulumi:"lastSuccessfulProvisioningRecordId"`
   179  	// ARN of the launch role associated with the provisioned product.
   180  	LaunchRoleArn *string `pulumi:"launchRoleArn"`
   181  	// User-friendly name of the provisioned product.
   182  	//
   183  	// The following arguments are optional:
   184  	Name *string `pulumi:"name"`
   185  	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
   186  	NotificationArns []string `pulumi:"notificationArns"`
   187  	// The set of outputs for the product created.
   188  	Outputs []ProvisionedProductOutputType `pulumi:"outputs"`
   189  	// Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   190  	PathId *string `pulumi:"pathId"`
   191  	// Name of the path. You must provide `pathId` or `pathName`, but not both.
   192  	PathName *string `pulumi:"pathName"`
   193  	// Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   194  	ProductId *string `pulumi:"productId"`
   195  	// Name of the product. You must provide `productId` or `productName`, but not both.
   196  	ProductName *string `pulumi:"productName"`
   197  	// Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   198  	ProvisioningArtifactId *string `pulumi:"provisioningArtifactId"`
   199  	// Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   200  	ProvisioningArtifactName *string `pulumi:"provisioningArtifactName"`
   201  	// Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   202  	ProvisioningParameters []ProvisionedProductProvisioningParameter `pulumi:"provisioningParameters"`
   203  	// _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   204  	RetainPhysicalResources *bool `pulumi:"retainPhysicalResources"`
   205  	// Configuration block with information about the provisioning preferences for a stack set. See details below.
   206  	StackSetProvisioningPreferences *ProvisionedProductStackSetProvisioningPreferences `pulumi:"stackSetProvisioningPreferences"`
   207  	// Current status of the provisioned product. See meanings below.
   208  	Status *string `pulumi:"status"`
   209  	// Current status message of the provisioned product.
   210  	StatusMessage *string `pulumi:"statusMessage"`
   211  	// Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   212  	Tags map[string]string `pulumi:"tags"`
   213  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   214  	//
   215  	// Deprecated: Please use `tags` instead.
   216  	TagsAll map[string]string `pulumi:"tagsAll"`
   217  	// Type of provisioned product. Valid values are `CFN_STACK` and `CFN_STACKSET`.
   218  	Type *string `pulumi:"type"`
   219  }
   220  
   221  type ProvisionedProductState struct {
   222  	// Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
   223  	AcceptLanguage pulumi.StringPtrInput
   224  	// ARN of the provisioned product.
   225  	Arn pulumi.StringPtrInput
   226  	// Set of CloudWatch dashboards that were created when provisioning the product.
   227  	CloudwatchDashboardNames pulumi.StringArrayInput
   228  	// Time when the provisioned product was created.
   229  	CreatedTime pulumi.StringPtrInput
   230  	// _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
   231  	IgnoreErrors pulumi.BoolPtrInput
   232  	// Record identifier of the last request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   233  	LastProvisioningRecordId pulumi.StringPtrInput
   234  	// Record identifier of the last request performed on this provisioned product.
   235  	LastRecordId pulumi.StringPtrInput
   236  	// Record identifier of the last successful request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   237  	LastSuccessfulProvisioningRecordId pulumi.StringPtrInput
   238  	// ARN of the launch role associated with the provisioned product.
   239  	LaunchRoleArn pulumi.StringPtrInput
   240  	// User-friendly name of the provisioned product.
   241  	//
   242  	// The following arguments are optional:
   243  	Name pulumi.StringPtrInput
   244  	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
   245  	NotificationArns pulumi.StringArrayInput
   246  	// The set of outputs for the product created.
   247  	Outputs ProvisionedProductOutputTypeArrayInput
   248  	// Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   249  	PathId pulumi.StringPtrInput
   250  	// Name of the path. You must provide `pathId` or `pathName`, but not both.
   251  	PathName pulumi.StringPtrInput
   252  	// Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   253  	ProductId pulumi.StringPtrInput
   254  	// Name of the product. You must provide `productId` or `productName`, but not both.
   255  	ProductName pulumi.StringPtrInput
   256  	// Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   257  	ProvisioningArtifactId pulumi.StringPtrInput
   258  	// Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   259  	ProvisioningArtifactName pulumi.StringPtrInput
   260  	// Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   261  	ProvisioningParameters ProvisionedProductProvisioningParameterArrayInput
   262  	// _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   263  	RetainPhysicalResources pulumi.BoolPtrInput
   264  	// Configuration block with information about the provisioning preferences for a stack set. See details below.
   265  	StackSetProvisioningPreferences ProvisionedProductStackSetProvisioningPreferencesPtrInput
   266  	// Current status of the provisioned product. See meanings below.
   267  	Status pulumi.StringPtrInput
   268  	// Current status message of the provisioned product.
   269  	StatusMessage pulumi.StringPtrInput
   270  	// Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   271  	Tags pulumi.StringMapInput
   272  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   273  	//
   274  	// Deprecated: Please use `tags` instead.
   275  	TagsAll pulumi.StringMapInput
   276  	// Type of provisioned product. Valid values are `CFN_STACK` and `CFN_STACKSET`.
   277  	Type pulumi.StringPtrInput
   278  }
   279  
   280  func (ProvisionedProductState) ElementType() reflect.Type {
   281  	return reflect.TypeOf((*provisionedProductState)(nil)).Elem()
   282  }
   283  
   284  type provisionedProductArgs struct {
   285  	// Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
   286  	AcceptLanguage *string `pulumi:"acceptLanguage"`
   287  	// _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
   288  	IgnoreErrors *bool `pulumi:"ignoreErrors"`
   289  	// User-friendly name of the provisioned product.
   290  	//
   291  	// The following arguments are optional:
   292  	Name *string `pulumi:"name"`
   293  	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
   294  	NotificationArns []string `pulumi:"notificationArns"`
   295  	// Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   296  	PathId *string `pulumi:"pathId"`
   297  	// Name of the path. You must provide `pathId` or `pathName`, but not both.
   298  	PathName *string `pulumi:"pathName"`
   299  	// Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   300  	ProductId *string `pulumi:"productId"`
   301  	// Name of the product. You must provide `productId` or `productName`, but not both.
   302  	ProductName *string `pulumi:"productName"`
   303  	// Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   304  	ProvisioningArtifactId *string `pulumi:"provisioningArtifactId"`
   305  	// Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   306  	ProvisioningArtifactName *string `pulumi:"provisioningArtifactName"`
   307  	// Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   308  	ProvisioningParameters []ProvisionedProductProvisioningParameter `pulumi:"provisioningParameters"`
   309  	// _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   310  	RetainPhysicalResources *bool `pulumi:"retainPhysicalResources"`
   311  	// Configuration block with information about the provisioning preferences for a stack set. See details below.
   312  	StackSetProvisioningPreferences *ProvisionedProductStackSetProvisioningPreferences `pulumi:"stackSetProvisioningPreferences"`
   313  	// Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   314  	Tags map[string]string `pulumi:"tags"`
   315  }
   316  
   317  // The set of arguments for constructing a ProvisionedProduct resource.
   318  type ProvisionedProductArgs struct {
   319  	// Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
   320  	AcceptLanguage pulumi.StringPtrInput
   321  	// _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
   322  	IgnoreErrors pulumi.BoolPtrInput
   323  	// User-friendly name of the provisioned product.
   324  	//
   325  	// The following arguments are optional:
   326  	Name pulumi.StringPtrInput
   327  	// Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
   328  	NotificationArns pulumi.StringArrayInput
   329  	// Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   330  	PathId pulumi.StringPtrInput
   331  	// Name of the path. You must provide `pathId` or `pathName`, but not both.
   332  	PathName pulumi.StringPtrInput
   333  	// Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   334  	ProductId pulumi.StringPtrInput
   335  	// Name of the product. You must provide `productId` or `productName`, but not both.
   336  	ProductName pulumi.StringPtrInput
   337  	// Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   338  	ProvisioningArtifactId pulumi.StringPtrInput
   339  	// Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   340  	ProvisioningArtifactName pulumi.StringPtrInput
   341  	// Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   342  	ProvisioningParameters ProvisionedProductProvisioningParameterArrayInput
   343  	// _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   344  	RetainPhysicalResources pulumi.BoolPtrInput
   345  	// Configuration block with information about the provisioning preferences for a stack set. See details below.
   346  	StackSetProvisioningPreferences ProvisionedProductStackSetProvisioningPreferencesPtrInput
   347  	// Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   348  	Tags pulumi.StringMapInput
   349  }
   350  
   351  func (ProvisionedProductArgs) ElementType() reflect.Type {
   352  	return reflect.TypeOf((*provisionedProductArgs)(nil)).Elem()
   353  }
   354  
   355  type ProvisionedProductInput interface {
   356  	pulumi.Input
   357  
   358  	ToProvisionedProductOutput() ProvisionedProductOutput
   359  	ToProvisionedProductOutputWithContext(ctx context.Context) ProvisionedProductOutput
   360  }
   361  
   362  func (*ProvisionedProduct) ElementType() reflect.Type {
   363  	return reflect.TypeOf((**ProvisionedProduct)(nil)).Elem()
   364  }
   365  
   366  func (i *ProvisionedProduct) ToProvisionedProductOutput() ProvisionedProductOutput {
   367  	return i.ToProvisionedProductOutputWithContext(context.Background())
   368  }
   369  
   370  func (i *ProvisionedProduct) ToProvisionedProductOutputWithContext(ctx context.Context) ProvisionedProductOutput {
   371  	return pulumi.ToOutputWithContext(ctx, i).(ProvisionedProductOutput)
   372  }
   373  
   374  // ProvisionedProductArrayInput is an input type that accepts ProvisionedProductArray and ProvisionedProductArrayOutput values.
   375  // You can construct a concrete instance of `ProvisionedProductArrayInput` via:
   376  //
   377  //	ProvisionedProductArray{ ProvisionedProductArgs{...} }
   378  type ProvisionedProductArrayInput interface {
   379  	pulumi.Input
   380  
   381  	ToProvisionedProductArrayOutput() ProvisionedProductArrayOutput
   382  	ToProvisionedProductArrayOutputWithContext(context.Context) ProvisionedProductArrayOutput
   383  }
   384  
   385  type ProvisionedProductArray []ProvisionedProductInput
   386  
   387  func (ProvisionedProductArray) ElementType() reflect.Type {
   388  	return reflect.TypeOf((*[]*ProvisionedProduct)(nil)).Elem()
   389  }
   390  
   391  func (i ProvisionedProductArray) ToProvisionedProductArrayOutput() ProvisionedProductArrayOutput {
   392  	return i.ToProvisionedProductArrayOutputWithContext(context.Background())
   393  }
   394  
   395  func (i ProvisionedProductArray) ToProvisionedProductArrayOutputWithContext(ctx context.Context) ProvisionedProductArrayOutput {
   396  	return pulumi.ToOutputWithContext(ctx, i).(ProvisionedProductArrayOutput)
   397  }
   398  
   399  // ProvisionedProductMapInput is an input type that accepts ProvisionedProductMap and ProvisionedProductMapOutput values.
   400  // You can construct a concrete instance of `ProvisionedProductMapInput` via:
   401  //
   402  //	ProvisionedProductMap{ "key": ProvisionedProductArgs{...} }
   403  type ProvisionedProductMapInput interface {
   404  	pulumi.Input
   405  
   406  	ToProvisionedProductMapOutput() ProvisionedProductMapOutput
   407  	ToProvisionedProductMapOutputWithContext(context.Context) ProvisionedProductMapOutput
   408  }
   409  
   410  type ProvisionedProductMap map[string]ProvisionedProductInput
   411  
   412  func (ProvisionedProductMap) ElementType() reflect.Type {
   413  	return reflect.TypeOf((*map[string]*ProvisionedProduct)(nil)).Elem()
   414  }
   415  
   416  func (i ProvisionedProductMap) ToProvisionedProductMapOutput() ProvisionedProductMapOutput {
   417  	return i.ToProvisionedProductMapOutputWithContext(context.Background())
   418  }
   419  
   420  func (i ProvisionedProductMap) ToProvisionedProductMapOutputWithContext(ctx context.Context) ProvisionedProductMapOutput {
   421  	return pulumi.ToOutputWithContext(ctx, i).(ProvisionedProductMapOutput)
   422  }
   423  
   424  type ProvisionedProductOutput struct{ *pulumi.OutputState }
   425  
   426  func (ProvisionedProductOutput) ElementType() reflect.Type {
   427  	return reflect.TypeOf((**ProvisionedProduct)(nil)).Elem()
   428  }
   429  
   430  func (o ProvisionedProductOutput) ToProvisionedProductOutput() ProvisionedProductOutput {
   431  	return o
   432  }
   433  
   434  func (o ProvisionedProductOutput) ToProvisionedProductOutputWithContext(ctx context.Context) ProvisionedProductOutput {
   435  	return o
   436  }
   437  
   438  // Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
   439  func (o ProvisionedProductOutput) AcceptLanguage() pulumi.StringPtrOutput {
   440  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringPtrOutput { return v.AcceptLanguage }).(pulumi.StringPtrOutput)
   441  }
   442  
   443  // ARN of the provisioned product.
   444  func (o ProvisionedProductOutput) Arn() pulumi.StringOutput {
   445  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   446  }
   447  
   448  // Set of CloudWatch dashboards that were created when provisioning the product.
   449  func (o ProvisionedProductOutput) CloudwatchDashboardNames() pulumi.StringArrayOutput {
   450  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringArrayOutput { return v.CloudwatchDashboardNames }).(pulumi.StringArrayOutput)
   451  }
   452  
   453  // Time when the provisioned product was created.
   454  func (o ProvisionedProductOutput) CreatedTime() pulumi.StringOutput {
   455  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.CreatedTime }).(pulumi.StringOutput)
   456  }
   457  
   458  // _Only applies to deleting._ If set to `true`, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources. The default value is `false`.
   459  func (o ProvisionedProductOutput) IgnoreErrors() pulumi.BoolPtrOutput {
   460  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.BoolPtrOutput { return v.IgnoreErrors }).(pulumi.BoolPtrOutput)
   461  }
   462  
   463  // Record identifier of the last request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   464  func (o ProvisionedProductOutput) LastProvisioningRecordId() pulumi.StringOutput {
   465  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.LastProvisioningRecordId }).(pulumi.StringOutput)
   466  }
   467  
   468  // Record identifier of the last request performed on this provisioned product.
   469  func (o ProvisionedProductOutput) LastRecordId() pulumi.StringOutput {
   470  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.LastRecordId }).(pulumi.StringOutput)
   471  }
   472  
   473  // Record identifier of the last successful request performed on this provisioned product of the following types: `ProvisionedProduct`, `UpdateProvisionedProduct`, `ExecuteProvisionedProductPlan`, `TerminateProvisionedProduct`.
   474  func (o ProvisionedProductOutput) LastSuccessfulProvisioningRecordId() pulumi.StringOutput {
   475  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.LastSuccessfulProvisioningRecordId }).(pulumi.StringOutput)
   476  }
   477  
   478  // ARN of the launch role associated with the provisioned product.
   479  func (o ProvisionedProductOutput) LaunchRoleArn() pulumi.StringOutput {
   480  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.LaunchRoleArn }).(pulumi.StringOutput)
   481  }
   482  
   483  // User-friendly name of the provisioned product.
   484  //
   485  // The following arguments are optional:
   486  func (o ProvisionedProductOutput) Name() pulumi.StringOutput {
   487  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   488  }
   489  
   490  // Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.
   491  func (o ProvisionedProductOutput) NotificationArns() pulumi.StringArrayOutput {
   492  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringArrayOutput { return v.NotificationArns }).(pulumi.StringArrayOutput)
   493  }
   494  
   495  // The set of outputs for the product created.
   496  func (o ProvisionedProductOutput) Outputs() ProvisionedProductOutputTypeArrayOutput {
   497  	return o.ApplyT(func(v *ProvisionedProduct) ProvisionedProductOutputTypeArrayOutput { return v.Outputs }).(ProvisionedProductOutputTypeArrayOutput)
   498  }
   499  
   500  // Path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use `servicecatalog.getLaunchPaths`. When required, you must provide `pathId` or `pathName`, but not both.
   501  func (o ProvisionedProductOutput) PathId() pulumi.StringOutput {
   502  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.PathId }).(pulumi.StringOutput)
   503  }
   504  
   505  // Name of the path. You must provide `pathId` or `pathName`, but not both.
   506  func (o ProvisionedProductOutput) PathName() pulumi.StringPtrOutput {
   507  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringPtrOutput { return v.PathName }).(pulumi.StringPtrOutput)
   508  }
   509  
   510  // Product identifier. For example, `prod-abcdzk7xy33qa`. You must provide `productId` or `productName`, but not both.
   511  func (o ProvisionedProductOutput) ProductId() pulumi.StringOutput {
   512  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.ProductId }).(pulumi.StringOutput)
   513  }
   514  
   515  // Name of the product. You must provide `productId` or `productName`, but not both.
   516  func (o ProvisionedProductOutput) ProductName() pulumi.StringPtrOutput {
   517  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringPtrOutput { return v.ProductName }).(pulumi.StringPtrOutput)
   518  }
   519  
   520  // Identifier of the provisioning artifact. For example, `pa-4abcdjnxjj6ne`. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   521  func (o ProvisionedProductOutput) ProvisioningArtifactId() pulumi.StringOutput {
   522  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.ProvisioningArtifactId }).(pulumi.StringOutput)
   523  }
   524  
   525  // Name of the provisioning artifact. You must provide the `provisioningArtifactId` or `provisioningArtifactName`, but not both.
   526  func (o ProvisionedProductOutput) ProvisioningArtifactName() pulumi.StringPtrOutput {
   527  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringPtrOutput { return v.ProvisioningArtifactName }).(pulumi.StringPtrOutput)
   528  }
   529  
   530  // Configuration block with parameters specified by the administrator that are required for provisioning the product. See details below.
   531  func (o ProvisionedProductOutput) ProvisioningParameters() ProvisionedProductProvisioningParameterArrayOutput {
   532  	return o.ApplyT(func(v *ProvisionedProduct) ProvisionedProductProvisioningParameterArrayOutput {
   533  		return v.ProvisioningParameters
   534  	}).(ProvisionedProductProvisioningParameterArrayOutput)
   535  }
   536  
   537  // _Only applies to deleting._ Whether to delete the Service Catalog provisioned product but leave the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is `false`.
   538  func (o ProvisionedProductOutput) RetainPhysicalResources() pulumi.BoolPtrOutput {
   539  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.BoolPtrOutput { return v.RetainPhysicalResources }).(pulumi.BoolPtrOutput)
   540  }
   541  
   542  // Configuration block with information about the provisioning preferences for a stack set. See details below.
   543  func (o ProvisionedProductOutput) StackSetProvisioningPreferences() ProvisionedProductStackSetProvisioningPreferencesPtrOutput {
   544  	return o.ApplyT(func(v *ProvisionedProduct) ProvisionedProductStackSetProvisioningPreferencesPtrOutput {
   545  		return v.StackSetProvisioningPreferences
   546  	}).(ProvisionedProductStackSetProvisioningPreferencesPtrOutput)
   547  }
   548  
   549  // Current status of the provisioned product. See meanings below.
   550  func (o ProvisionedProductOutput) Status() pulumi.StringOutput {
   551  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   552  }
   553  
   554  // Current status message of the provisioned product.
   555  func (o ProvisionedProductOutput) StatusMessage() pulumi.StringOutput {
   556  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.StatusMessage }).(pulumi.StringOutput)
   557  }
   558  
   559  // Tags to apply to the provisioned product. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   560  func (o ProvisionedProductOutput) Tags() pulumi.StringMapOutput {
   561  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   562  }
   563  
   564  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   565  //
   566  // Deprecated: Please use `tags` instead.
   567  func (o ProvisionedProductOutput) TagsAll() pulumi.StringMapOutput {
   568  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   569  }
   570  
   571  // Type of provisioned product. Valid values are `CFN_STACK` and `CFN_STACKSET`.
   572  func (o ProvisionedProductOutput) Type() pulumi.StringOutput {
   573  	return o.ApplyT(func(v *ProvisionedProduct) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
   574  }
   575  
   576  type ProvisionedProductArrayOutput struct{ *pulumi.OutputState }
   577  
   578  func (ProvisionedProductArrayOutput) ElementType() reflect.Type {
   579  	return reflect.TypeOf((*[]*ProvisionedProduct)(nil)).Elem()
   580  }
   581  
   582  func (o ProvisionedProductArrayOutput) ToProvisionedProductArrayOutput() ProvisionedProductArrayOutput {
   583  	return o
   584  }
   585  
   586  func (o ProvisionedProductArrayOutput) ToProvisionedProductArrayOutputWithContext(ctx context.Context) ProvisionedProductArrayOutput {
   587  	return o
   588  }
   589  
   590  func (o ProvisionedProductArrayOutput) Index(i pulumi.IntInput) ProvisionedProductOutput {
   591  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ProvisionedProduct {
   592  		return vs[0].([]*ProvisionedProduct)[vs[1].(int)]
   593  	}).(ProvisionedProductOutput)
   594  }
   595  
   596  type ProvisionedProductMapOutput struct{ *pulumi.OutputState }
   597  
   598  func (ProvisionedProductMapOutput) ElementType() reflect.Type {
   599  	return reflect.TypeOf((*map[string]*ProvisionedProduct)(nil)).Elem()
   600  }
   601  
   602  func (o ProvisionedProductMapOutput) ToProvisionedProductMapOutput() ProvisionedProductMapOutput {
   603  	return o
   604  }
   605  
   606  func (o ProvisionedProductMapOutput) ToProvisionedProductMapOutputWithContext(ctx context.Context) ProvisionedProductMapOutput {
   607  	return o
   608  }
   609  
   610  func (o ProvisionedProductMapOutput) MapIndex(k pulumi.StringInput) ProvisionedProductOutput {
   611  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ProvisionedProduct {
   612  		return vs[0].(map[string]*ProvisionedProduct)[vs[1].(string)]
   613  	}).(ProvisionedProductOutput)
   614  }
   615  
   616  func init() {
   617  	pulumi.RegisterInputType(reflect.TypeOf((*ProvisionedProductInput)(nil)).Elem(), &ProvisionedProduct{})
   618  	pulumi.RegisterInputType(reflect.TypeOf((*ProvisionedProductArrayInput)(nil)).Elem(), ProvisionedProductArray{})
   619  	pulumi.RegisterInputType(reflect.TypeOf((*ProvisionedProductMapInput)(nil)).Elem(), ProvisionedProductMap{})
   620  	pulumi.RegisterOutputType(ProvisionedProductOutput{})
   621  	pulumi.RegisterOutputType(ProvisionedProductArrayOutput{})
   622  	pulumi.RegisterOutputType(ProvisionedProductMapOutput{})
   623  }