:doc:`ServiceCatalog <../../servicecatalog>` / Client / create_provisioned_product_plan

*******************************
create_provisioned_product_plan
*******************************



.. py:method:: ServiceCatalog.Client.create_provisioned_product_plan(**kwargs)

  

  Creates a plan.

   

  A plan includes the list of resources to be created (when provisioning a new product) or modified (when updating a provisioned product) when the plan is executed.

   

  You can create one plan for each provisioned product. To create a plan for an existing provisioned product, the product status must be AVAILABLE or TAINTED.

   

  To view the resource changes in the change set, use  DescribeProvisionedProductPlan. To create or modify the provisioned product, use  ExecuteProvisionedProductPlan.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisionedProductPlan>`_  


  **Request Syntax**
  ::

    response = client.create_provisioned_product_plan(
        AcceptLanguage='string',
        PlanName='string',
        PlanType='CLOUDFORMATION',
        NotificationArns=[
            'string',
        ],
        PathId='string',
        ProductId='string',
        ProvisionedProductName='string',
        ProvisioningArtifactId='string',
        ProvisioningParameters=[
            {
                'Key': 'string',
                'Value': 'string',
                'UsePreviousValue': True|False
            },
        ],
        IdempotencyToken='string',
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type AcceptLanguage: string
  :param AcceptLanguage: 

    The language code.

     

    
    * ``jp`` - Japanese
     
    * ``zh`` - Chinese
    

    

  
  :type PlanName: string
  :param PlanName: **[REQUIRED]** 

    The name of the plan.

    

  
  :type PlanType: string
  :param PlanType: **[REQUIRED]** 

    The plan type.

    

  
  :type NotificationArns: list
  :param NotificationArns: 

    Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.

    

  
    - *(string) --* 

    

  :type PathId: string
  :param PathId: 

    The 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  ListLaunchPaths.

    

  
  :type ProductId: string
  :param ProductId: **[REQUIRED]** 

    The product identifier.

    

  
  :type ProvisionedProductName: string
  :param ProvisionedProductName: **[REQUIRED]** 

    A user-friendly name for the provisioned product. This value must be unique for the Amazon Web Services account and cannot be updated after the product is provisioned.

    

  
  :type ProvisioningArtifactId: string
  :param ProvisioningArtifactId: **[REQUIRED]** 

    The identifier of the provisioning artifact.

    

  
  :type ProvisioningParameters: list
  :param ProvisioningParameters: 

    Parameters specified by the administrator that are required for provisioning the product.

    

  
    - *(dict) --* 

      The parameter key-value pair used to update a provisioned product.

      

    
      - **Key** *(string) --* 

        The parameter key.

        

      
      - **Value** *(string) --* 

        The parameter value.

        

      
      - **UsePreviousValue** *(boolean) --* 

        If set to true, ``Value`` is ignored and the previous parameter value is kept.

        

      
    

  :type IdempotencyToken: string
  :param IdempotencyToken: **[REQUIRED]** 

    A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.

    This field is autopopulated if not provided.

  
  :type Tags: list
  :param Tags: 

    One or more tags.

     

    If the plan is for an existing provisioned product, the product must have a ``RESOURCE_UPDATE`` constraint with ``TagUpdatesOnProvisionedProduct`` set to ``ALLOWED`` to allow tag updates.

    

  
    - *(dict) --* 

      Information about a tag. A tag is a key-value pair. Tags are propagated to the resources created when provisioning a product.

      

    
      - **Key** *(string) --* **[REQUIRED]** 

        The tag key.

        

      
      - **Value** *(string) --* **[REQUIRED]** 

        The value for this key.

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'PlanName': 'string',
          'PlanId': 'string',
          'ProvisionProductId': 'string',
          'ProvisionedProductName': 'string',
          'ProvisioningArtifactId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **PlanName** *(string) --* 

        The name of the plan.

        
      

      - **PlanId** *(string) --* 

        The plan identifier.

        
      

      - **ProvisionProductId** *(string) --* 

        The product identifier.

        
      

      - **ProvisionedProductName** *(string) --* 

        The user-friendly name of the provisioned product.

        
      

      - **ProvisioningArtifactId** *(string) --* 

        The identifier of the provisioning artifact.

        
  
  **Exceptions**
  
  *   :py:class:`ServiceCatalog.Client.exceptions.InvalidParametersException`

  
  *   :py:class:`ServiceCatalog.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`ServiceCatalog.Client.exceptions.InvalidStateException`

  