:doc:`Budgets <../../budgets>` / Client / update_budget_action

********************
update_budget_action
********************



.. py:method:: Budgets.Client.update_budget_action(**kwargs)

  

  Updates a budget action.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/budgets-2016-10-20/UpdateBudgetAction>`_  


  **Request Syntax**
  ::

    response = client.update_budget_action(
        AccountId='string',
        BudgetName='string',
        ActionId='string',
        NotificationType='ACTUAL'|'FORECASTED',
        ActionThreshold={
            'ActionThresholdValue': 123.0,
            'ActionThresholdType': 'PERCENTAGE'|'ABSOLUTE_VALUE'
        },
        Definition={
            'IamActionDefinition': {
                'PolicyArn': 'string',
                'Roles': [
                    'string',
                ],
                'Groups': [
                    'string',
                ],
                'Users': [
                    'string',
                ]
            },
            'ScpActionDefinition': {
                'PolicyId': 'string',
                'TargetIds': [
                    'string',
                ]
            },
            'SsmActionDefinition': {
                'ActionSubType': 'STOP_EC2_INSTANCES'|'STOP_RDS_INSTANCES',
                'Region': 'string',
                'InstanceIds': [
                    'string',
                ]
            }
        },
        ExecutionRoleArn='string',
        ApprovalModel='AUTOMATIC'|'MANUAL',
        Subscribers=[
            {
                'SubscriptionType': 'SNS'|'EMAIL',
                'Address': 'string'
            },
        ]
    )
    
  :type AccountId: string
  :param AccountId: **[REQUIRED]** 

    The account ID of the user. It's a 12-digit number.

    

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

    A string that represents the budget name. The ":" and "\" characters, and the "/action/" substring, aren't allowed.

    

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

    A system-generated universally unique identifier (UUID) for the action.

    

  
  :type NotificationType: string
  :param NotificationType: 

    The type of a notification. It must be ACTUAL or FORECASTED.

    

  
  :type ActionThreshold: dict
  :param ActionThreshold: 

    The trigger threshold of the action.

    

  
    - **ActionThresholdValue** *(float) --* **[REQUIRED]** 

      The threshold of a notification.

      

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

      The type of threshold for a notification.

      

    
  
  :type Definition: dict
  :param Definition: 

    Specifies all of the type-specific parameters.

    

  
    - **IamActionDefinition** *(dict) --* 

      The Identity and Access Management (IAM) action definition details.

      

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

        The Amazon Resource Name (ARN) of the policy to be attached.

        

      
      - **Roles** *(list) --* 

        A list of roles to be attached. There must be at least one role.

        

      
        - *(string) --* 

        
    
      - **Groups** *(list) --* 

        A list of groups to be attached. There must be at least one group.

        

      
        - *(string) --* 

        
    
      - **Users** *(list) --* 

        A list of users to be attached. There must be at least one user.

        

      
        - *(string) --* 

        
    
    
    - **ScpActionDefinition** *(dict) --* 

      The service control policies (SCPs) action definition details.

      

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

        The policy ID attached.

        

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

        A list of target IDs.

        

      
        - *(string) --* 

        
    
    
    - **SsmActionDefinition** *(dict) --* 

      The Amazon Web Services Systems Manager (SSM) action definition details.

      

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

        The action subType.

        

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

        The Region to run the SSM document.

        

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

        The EC2 and RDS instance IDs.

        

      
        - *(string) --* 

        
    
    
  
  :type ExecutionRoleArn: string
  :param ExecutionRoleArn: 

    The role passed for action execution and reversion. Roles and actions must be in the same account.

    

  
  :type ApprovalModel: string
  :param ApprovalModel: 

    This specifies if the action needs manual or automatic approval.

    

  
  :type Subscribers: list
  :param Subscribers: 

    A list of subscribers.

    

  
    - *(dict) --* 

      The subscriber to a budget notification. The subscriber consists of a subscription type and either an Amazon SNS topic or an email address.

       

      For example, an email subscriber has the following parameters:

       

      
      * A ``subscriptionType`` of ``EMAIL``
       
      * An ``address`` of ``example@example.com``
      

      

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

        The type of notification that Amazon Web Services sends to a subscriber.

        

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

        The address that Amazon Web Services sends budget notifications to, either an SNS topic or an email.

         

        When you create a subscriber, the value of ``Address`` can't contain line breaks.

        

      
    

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

    
    ::

      {
          'AccountId': 'string',
          'BudgetName': 'string',
          'OldAction': {
              'ActionId': 'string',
              'BudgetName': 'string',
              'NotificationType': 'ACTUAL'|'FORECASTED',
              'ActionType': 'APPLY_IAM_POLICY'|'APPLY_SCP_POLICY'|'RUN_SSM_DOCUMENTS',
              'ActionThreshold': {
                  'ActionThresholdValue': 123.0,
                  'ActionThresholdType': 'PERCENTAGE'|'ABSOLUTE_VALUE'
              },
              'Definition': {
                  'IamActionDefinition': {
                      'PolicyArn': 'string',
                      'Roles': [
                          'string',
                      ],
                      'Groups': [
                          'string',
                      ],
                      'Users': [
                          'string',
                      ]
                  },
                  'ScpActionDefinition': {
                      'PolicyId': 'string',
                      'TargetIds': [
                          'string',
                      ]
                  },
                  'SsmActionDefinition': {
                      'ActionSubType': 'STOP_EC2_INSTANCES'|'STOP_RDS_INSTANCES',
                      'Region': 'string',
                      'InstanceIds': [
                          'string',
                      ]
                  }
              },
              'ExecutionRoleArn': 'string',
              'ApprovalModel': 'AUTOMATIC'|'MANUAL',
              'Status': 'STANDBY'|'PENDING'|'EXECUTION_IN_PROGRESS'|'EXECUTION_SUCCESS'|'EXECUTION_FAILURE'|'REVERSE_IN_PROGRESS'|'REVERSE_SUCCESS'|'REVERSE_FAILURE'|'RESET_IN_PROGRESS'|'RESET_FAILURE',
              'Subscribers': [
                  {
                      'SubscriptionType': 'SNS'|'EMAIL',
                      'Address': 'string'
                  },
              ]
          },
          'NewAction': {
              'ActionId': 'string',
              'BudgetName': 'string',
              'NotificationType': 'ACTUAL'|'FORECASTED',
              'ActionType': 'APPLY_IAM_POLICY'|'APPLY_SCP_POLICY'|'RUN_SSM_DOCUMENTS',
              'ActionThreshold': {
                  'ActionThresholdValue': 123.0,
                  'ActionThresholdType': 'PERCENTAGE'|'ABSOLUTE_VALUE'
              },
              'Definition': {
                  'IamActionDefinition': {
                      'PolicyArn': 'string',
                      'Roles': [
                          'string',
                      ],
                      'Groups': [
                          'string',
                      ],
                      'Users': [
                          'string',
                      ]
                  },
                  'ScpActionDefinition': {
                      'PolicyId': 'string',
                      'TargetIds': [
                          'string',
                      ]
                  },
                  'SsmActionDefinition': {
                      'ActionSubType': 'STOP_EC2_INSTANCES'|'STOP_RDS_INSTANCES',
                      'Region': 'string',
                      'InstanceIds': [
                          'string',
                      ]
                  }
              },
              'ExecutionRoleArn': 'string',
              'ApprovalModel': 'AUTOMATIC'|'MANUAL',
              'Status': 'STANDBY'|'PENDING'|'EXECUTION_IN_PROGRESS'|'EXECUTION_SUCCESS'|'EXECUTION_FAILURE'|'REVERSE_IN_PROGRESS'|'REVERSE_SUCCESS'|'REVERSE_FAILURE'|'RESET_IN_PROGRESS'|'RESET_FAILURE',
              'Subscribers': [
                  {
                      'SubscriptionType': 'SNS'|'EMAIL',
                      'Address': 'string'
                  },
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **AccountId** *(string) --* 

        The account ID of the user. It's a 12-digit number.

        
      

      - **BudgetName** *(string) --* 

        A string that represents the budget name. The ":" and "\" characters, and the "/action/" substring, aren't allowed.

        
      

      - **OldAction** *(dict) --* 

        The previous action resource information.

        
        

        - **ActionId** *(string) --* 

          A system-generated universally unique identifier (UUID) for the action.

          
        

        - **BudgetName** *(string) --* 

          A string that represents the budget name. The ":" and "\" characters, and the "/action/" substring, aren't allowed.

          
        

        - **NotificationType** *(string) --* 

          The type of a notification. It must be ACTUAL or FORECASTED.

          
        

        - **ActionType** *(string) --* 

          The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.

          
        

        - **ActionThreshold** *(dict) --* 

          The trigger threshold of the action.

          
          

          - **ActionThresholdValue** *(float) --* 

            The threshold of a notification.

            
          

          - **ActionThresholdType** *(string) --* 

            The type of threshold for a notification.

            
      
        

        - **Definition** *(dict) --* 

          Where you specify all of the type-specific parameters.

          
          

          - **IamActionDefinition** *(dict) --* 

            The Identity and Access Management (IAM) action definition details.

            
            

            - **PolicyArn** *(string) --* 

              The Amazon Resource Name (ARN) of the policy to be attached.

              
            

            - **Roles** *(list) --* 

              A list of roles to be attached. There must be at least one role.

              
              

              - *(string) --* 
          
            

            - **Groups** *(list) --* 

              A list of groups to be attached. There must be at least one group.

              
              

              - *(string) --* 
          
            

            - **Users** *(list) --* 

              A list of users to be attached. There must be at least one user.

              
              

              - *(string) --* 
          
        
          

          - **ScpActionDefinition** *(dict) --* 

            The service control policies (SCPs) action definition details.

            
            

            - **PolicyId** *(string) --* 

              The policy ID attached.

              
            

            - **TargetIds** *(list) --* 

              A list of target IDs.

              
              

              - *(string) --* 
          
        
          

          - **SsmActionDefinition** *(dict) --* 

            The Amazon Web Services Systems Manager (SSM) action definition details.

            
            

            - **ActionSubType** *(string) --* 

              The action subType.

              
            

            - **Region** *(string) --* 

              The Region to run the SSM document.

              
            

            - **InstanceIds** *(list) --* 

              The EC2 and RDS instance IDs.

              
              

              - *(string) --* 
          
        
      
        

        - **ExecutionRoleArn** *(string) --* 

          The role passed for action execution and reversion. Roles and actions must be in the same account.

          
        

        - **ApprovalModel** *(string) --* 

          This specifies if the action needs manual or automatic approval.

          
        

        - **Status** *(string) --* 

          The status of the action.

          
        

        - **Subscribers** *(list) --* 

          A list of subscribers.

          
          

          - *(dict) --* 

            The subscriber to a budget notification. The subscriber consists of a subscription type and either an Amazon SNS topic or an email address.

             

            For example, an email subscriber has the following parameters:

             

            
            * A ``subscriptionType`` of ``EMAIL``
             
            * An ``address`` of ``example@example.com``
            

            
            

            - **SubscriptionType** *(string) --* 

              The type of notification that Amazon Web Services sends to a subscriber.

              
            

            - **Address** *(string) --* 

              The address that Amazon Web Services sends budget notifications to, either an SNS topic or an email.

               

              When you create a subscriber, the value of ``Address`` can't contain line breaks.

              
        
      
    
      

      - **NewAction** *(dict) --* 

        The updated action resource information.

        
        

        - **ActionId** *(string) --* 

          A system-generated universally unique identifier (UUID) for the action.

          
        

        - **BudgetName** *(string) --* 

          A string that represents the budget name. The ":" and "\" characters, and the "/action/" substring, aren't allowed.

          
        

        - **NotificationType** *(string) --* 

          The type of a notification. It must be ACTUAL or FORECASTED.

          
        

        - **ActionType** *(string) --* 

          The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.

          
        

        - **ActionThreshold** *(dict) --* 

          The trigger threshold of the action.

          
          

          - **ActionThresholdValue** *(float) --* 

            The threshold of a notification.

            
          

          - **ActionThresholdType** *(string) --* 

            The type of threshold for a notification.

            
      
        

        - **Definition** *(dict) --* 

          Where you specify all of the type-specific parameters.

          
          

          - **IamActionDefinition** *(dict) --* 

            The Identity and Access Management (IAM) action definition details.

            
            

            - **PolicyArn** *(string) --* 

              The Amazon Resource Name (ARN) of the policy to be attached.

              
            

            - **Roles** *(list) --* 

              A list of roles to be attached. There must be at least one role.

              
              

              - *(string) --* 
          
            

            - **Groups** *(list) --* 

              A list of groups to be attached. There must be at least one group.

              
              

              - *(string) --* 
          
            

            - **Users** *(list) --* 

              A list of users to be attached. There must be at least one user.

              
              

              - *(string) --* 
          
        
          

          - **ScpActionDefinition** *(dict) --* 

            The service control policies (SCPs) action definition details.

            
            

            - **PolicyId** *(string) --* 

              The policy ID attached.

              
            

            - **TargetIds** *(list) --* 

              A list of target IDs.

              
              

              - *(string) --* 
          
        
          

          - **SsmActionDefinition** *(dict) --* 

            The Amazon Web Services Systems Manager (SSM) action definition details.

            
            

            - **ActionSubType** *(string) --* 

              The action subType.

              
            

            - **Region** *(string) --* 

              The Region to run the SSM document.

              
            

            - **InstanceIds** *(list) --* 

              The EC2 and RDS instance IDs.

              
              

              - *(string) --* 
          
        
      
        

        - **ExecutionRoleArn** *(string) --* 

          The role passed for action execution and reversion. Roles and actions must be in the same account.

          
        

        - **ApprovalModel** *(string) --* 

          This specifies if the action needs manual or automatic approval.

          
        

        - **Status** *(string) --* 

          The status of the action.

          
        

        - **Subscribers** *(list) --* 

          A list of subscribers.

          
          

          - *(dict) --* 

            The subscriber to a budget notification. The subscriber consists of a subscription type and either an Amazon SNS topic or an email address.

             

            For example, an email subscriber has the following parameters:

             

            
            * A ``subscriptionType`` of ``EMAIL``
             
            * An ``address`` of ``example@example.com``
            

            
            

            - **SubscriptionType** *(string) --* 

              The type of notification that Amazon Web Services sends to a subscriber.

              
            

            - **Address** *(string) --* 

              The address that Amazon Web Services sends budget notifications to, either an SNS topic or an email.

               

              When you create a subscriber, the value of ``Address`` can't contain line breaks.

              
        
      
    
  
  **Exceptions**
  
  *   :py:class:`Budgets.Client.exceptions.InternalErrorException`

  
  *   :py:class:`Budgets.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`Budgets.Client.exceptions.NotFoundException`

  
  *   :py:class:`Budgets.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Budgets.Client.exceptions.ResourceLockedException`

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

  