:doc:`CodeCommit <../../codecommit>` / Client / update_pull_request_approval_rule_content

*****************************************
update_pull_request_approval_rule_content
*****************************************



.. py:method:: CodeCommit.Client.update_pull_request_approval_rule_content(**kwargs)

  

  Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestApprovalRuleContent>`_  


  **Request Syntax**
  ::

    response = client.update_pull_request_approval_rule_content(
        pullRequestId='string',
        approvalRuleName='string',
        existingRuleContentSha256='string',
        newRuleContent='string'
    )
    
  :type pullRequestId: string
  :param pullRequestId: **[REQUIRED]** 

    The system-generated ID of the pull request.

    

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

    The name of the approval rule you want to update.

    

  
  :type existingRuleContentSha256: string
  :param existingRuleContentSha256: 

    The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using  GetPullRequest.

    

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

    The updated content for the approval rule.

     

    .. note::

      

      When you update the content of the approval rule, you can specify approvers in an approval pool in one of two ways:

       

      
      * **CodeCommitApprovers**: This option only requires an Amazon Web Services account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the Amazon Web Services account *123456789012* and *Mary_Major*, all of the following are counted as approvals coming from that user: 

        
        * An IAM user in the account (arn:aws:iam::*123456789012*:user/*Mary_Major*)
         
        * A federated user identified in IAM as Mary_Major (arn:aws:sts::*123456789012*:federated-user/*Mary_Major*)
        

       

      This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of *Mary_Major* (arn:aws:sts::*123456789012*:assumed-role/CodeCommitReview/*Mary_Major*) unless you include a wildcard (*Mary_Major).

      
       
      * **Fully qualified ARN**: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role.
      

       

      For more information about IAM ARNs, wildcards, and formats, see `IAM Identifiers <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html>`__ in the *IAM User Guide*.

      

    

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

    
    ::

      {
          'approvalRule': {
              'approvalRuleId': 'string',
              'approvalRuleName': 'string',
              'approvalRuleContent': 'string',
              'ruleContentSha256': 'string',
              'lastModifiedDate': datetime(2015, 1, 1),
              'creationDate': datetime(2015, 1, 1),
              'lastModifiedUser': 'string',
              'originApprovalRuleTemplate': {
                  'approvalRuleTemplateId': 'string',
                  'approvalRuleTemplateName': 'string'
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **approvalRule** *(dict) --* 

        Information about the updated approval rule.

        
        

        - **approvalRuleId** *(string) --* 

          The system-generated ID of the approval rule.

          
        

        - **approvalRuleName** *(string) --* 

          The name of the approval rule.

          
        

        - **approvalRuleContent** *(string) --* 

          The content of the approval rule.

          
        

        - **ruleContentSha256** *(string) --* 

          The SHA-256 hash signature for the content of the approval rule.

          
        

        - **lastModifiedDate** *(datetime) --* 

          The date the approval rule was most recently changed, in timestamp format.

          
        

        - **creationDate** *(datetime) --* 

          The date the approval rule was created, in timestamp format.

          
        

        - **lastModifiedUser** *(string) --* 

          The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule.

          
        

        - **originApprovalRuleTemplate** *(dict) --* 

          The approval rule template used to create the rule.

          
          

          - **approvalRuleTemplateId** *(string) --* 

            The ID of the template that created the approval rule.

            
          

          - **approvalRuleTemplateName** *(string) --* 

            The name of the template that created the approval rule.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`CodeCommit.Client.exceptions.PullRequestDoesNotExistException`

  
  *   :py:class:`CodeCommit.Client.exceptions.InvalidPullRequestIdException`

  
  *   :py:class:`CodeCommit.Client.exceptions.PullRequestIdRequiredException`

  
  *   :py:class:`CodeCommit.Client.exceptions.PullRequestAlreadyClosedException`

  
  *   :py:class:`CodeCommit.Client.exceptions.ApprovalRuleNameRequiredException`

  
  *   :py:class:`CodeCommit.Client.exceptions.InvalidApprovalRuleNameException`

  
  *   :py:class:`CodeCommit.Client.exceptions.ApprovalRuleDoesNotExistException`

  
  *   :py:class:`CodeCommit.Client.exceptions.InvalidRuleContentSha256Exception`

  
  *   :py:class:`CodeCommit.Client.exceptions.ApprovalRuleContentRequiredException`

  
  *   :py:class:`CodeCommit.Client.exceptions.InvalidApprovalRuleContentException`

  
  *   :py:class:`CodeCommit.Client.exceptions.CannotModifyApprovalRuleFromTemplateException`

  
  *   :py:class:`CodeCommit.Client.exceptions.EncryptionIntegrityChecksFailedException`

  
  *   :py:class:`CodeCommit.Client.exceptions.EncryptionKeyAccessDeniedException`

  
  *   :py:class:`CodeCommit.Client.exceptions.EncryptionKeyDisabledException`

  
  *   :py:class:`CodeCommit.Client.exceptions.EncryptionKeyNotFoundException`

  
  *   :py:class:`CodeCommit.Client.exceptions.EncryptionKeyUnavailableException`

  