:doc:`DevOpsGuru <../../devops-guru>` / Client / start_cost_estimation

*********************
start_cost_estimation
*********************



.. py:method:: DevOpsGuru.Client.start_cost_estimation(**kwargs)

  

  Starts the creation of an estimate of the monthly cost to analyze your Amazon Web Services resources.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/StartCostEstimation>`_  


  **Request Syntax**
  ::

    response = client.start_cost_estimation(
        ResourceCollection={
            'CloudFormation': {
                'StackNames': [
                    'string',
                ]
            },
            'Tags': [
                {
                    'AppBoundaryKey': 'string',
                    'TagValues': [
                        'string',
                    ]
                },
            ]
        },
        ClientToken='string'
    )
    
  :type ResourceCollection: dict
  :param ResourceCollection: **[REQUIRED]** 

    The collection of Amazon Web Services resources used to create a monthly DevOps Guru cost estimate.

    

  
    - **CloudFormation** *(dict) --* 

      An object that specifies the CloudFormation stack that defines the Amazon Web Services resources used to create a monthly estimate for DevOps Guru.

      

    
      - **StackNames** *(list) --* 

        An array of CloudFormation stack names. Its size is fixed at 1 item.

        

      
        - *(string) --* 

        
    
    
    - **Tags** *(list) --* 

      The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.

       

      Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the `Tagging best practices <https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html>`__ whitepaper.

       

      Each Amazon Web Services tag has two parts.

       

      
      * A tag *key* (for example, ``CostCenter``, ``Environment``, ``Project``, or ``Secret``). Tag *keys* are case-sensitive.
       
      * An optional field known as a tag *value* (for example, ``111122223333``, ``Production``, or a team name). Omitting the tag *value* is the same as using an empty string. Like tag *keys*, tag *values* are case-sensitive.
      

       

      Together these are known as *key*-*value* pairs.

       

      .. warning::

         

        The string used for a *key* in a tag that you use to define your resource coverage must begin with the prefix ``Devops-guru-``. The tag *key* might be ``DevOps-Guru-deployment-application`` or ``devops-guru-rds-application``. When you create a *key*, the case of characters in the *key* can be whatever you choose. After you create a *key*, it is case-sensitive. For example, DevOps Guru works with a *key* named ``devops-guru-rds`` and a *key* named ``DevOps-Guru-RDS``, and these act as two different *keys*. Possible *key*/*value* pairs in your application might be ``Devops-Guru-production-application/RDS`` or ``Devops-Guru-production-application/containers``.

        

      

    
      - *(dict) --* 

        Information about a collection of Amazon Web Services resources that are identified by an Amazon Web Services tag. This collection of resources is used to create a monthly cost estimate for DevOps Guru to analyze Amazon Web Services resources. The maximum number of tags you can specify for a cost estimate is one. The estimate created is for the cost to analyze the Amazon Web Services resources defined by the tag. For more information, see `Stacks <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html>`__ in the *Amazon Web Services CloudFormation User Guide*.

        

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

          An Amazon Web Services tag *key* that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this *key* make up your DevOps Guru application and analysis boundary.

           

          .. warning::

             

            The string used for a *key* in a tag that you use to define your resource coverage must begin with the prefix ``Devops-guru-``. The tag *key* might be ``DevOps-Guru-deployment-application`` or ``devops-guru-rds-application``. When you create a *key*, the case of characters in the *key* can be whatever you choose. After you create a *key*, it is case-sensitive. For example, DevOps Guru works with a *key* named ``devops-guru-rds`` and a *key* named ``DevOps-Guru-RDS``, and these act as two different *keys*. Possible *key*/*value* pairs in your application might be ``Devops-Guru-production-application/RDS`` or ``Devops-Guru-production-application/containers``.

            

          

        
        - **TagValues** *(list) --* **[REQUIRED]** 

          The values in an Amazon Web Services tag collection.

           

          The tag's *value* is an optional field used to associate a string with the tag *key* (for example, ``111122223333``, ``Production``, or a team name). The *key* and *value* are the tag's *key* pair. Omitting the tag *value* is the same as using an empty string. Like tag *keys*, tag *values* are case-sensitive. You can specify a maximum of 256 characters for a tag value.

          

        
          - *(string) --* 

          
      
      
  
  
  :type ClientToken: string
  :param ClientToken: 

    The idempotency token used to identify each cost estimate request.

    This field is autopopulated if not provided.

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

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`DevOpsGuru.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`DevOpsGuru.Client.exceptions.ConflictException`

  
  *   :py:class:`DevOpsGuru.Client.exceptions.InternalServerException`

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

  
  *   :py:class:`DevOpsGuru.Client.exceptions.ThrottlingException`

  
  *   :py:class:`DevOpsGuru.Client.exceptions.ValidationException`

  