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

***************
get_differences
***************



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

  

  Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path.

  

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


  **Request Syntax**
  ::

    response = client.get_differences(
        repositoryName='string',
        beforeCommitSpecifier='string',
        afterCommitSpecifier='string',
        beforePath='string',
        afterPath='string',
        MaxResults=123,
        NextToken='string'
    )
    
  :type repositoryName: string
  :param repositoryName: **[REQUIRED]** 

    The name of the repository where you want to get differences.

    

  
  :type beforeCommitSpecifier: string
  :param beforeCommitSpecifier: 

    The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, the full commit ID). Optional. If not specified, all changes before the ``afterCommitSpecifier`` value are shown. If you do not use ``beforeCommitSpecifier`` in your request, consider limiting the results with ``maxResults``.

    

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

    The branch, tag, HEAD, or other fully qualified reference used to identify a commit.

    

  
  :type beforePath: string
  :param beforePath: 

    The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If ``beforePath`` and ``afterPath`` are not specified, differences are shown for all paths.

    

  
  :type afterPath: string
  :param afterPath: 

    The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences are shown for all paths.

    

  
  :type MaxResults: integer
  :param MaxResults: 

    A non-zero, non-negative integer used to limit the number of returned results.

    

  
  :type NextToken: string
  :param NextToken: 

    An enumeration token that, when provided in a request, returns the next batch of the results.

    

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

    
    ::

      {
          'differences': [
              {
                  'beforeBlob': {
                      'blobId': 'string',
                      'path': 'string',
                      'mode': 'string'
                  },
                  'afterBlob': {
                      'blobId': 'string',
                      'path': 'string',
                      'mode': 'string'
                  },
                  'changeType': 'A'|'M'|'D'
              },
          ],
          'NextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **differences** *(list) --* 

        A data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).

        
        

        - *(dict) --* 

          Returns information about a set of differences for a commit specifier.

          
          

          - **beforeBlob** *(dict) --* 

            Information about a ``beforeBlob`` data type object, including the ID, the file mode permission code, and the path.

            
            

            - **blobId** *(string) --* 

              The full ID of the blob.

              
            

            - **path** *(string) --* 

              The path to the blob and associated file name, if any.

              
            

            - **mode** *(string) --* 

              The file mode permissions of the blob. File mode permission codes include:

               

              
              * ``100644`` indicates read/write
               
              * ``100755`` indicates read/write/execute
               
              * ``160000`` indicates a submodule
               
              * ``120000`` indicates a symlink
              

              
        
          

          - **afterBlob** *(dict) --* 

            Information about an ``afterBlob`` data type object, including the ID, the file mode permission code, and the path.

            
            

            - **blobId** *(string) --* 

              The full ID of the blob.

              
            

            - **path** *(string) --* 

              The path to the blob and associated file name, if any.

              
            

            - **mode** *(string) --* 

              The file mode permissions of the blob. File mode permission codes include:

               

              
              * ``100644`` indicates read/write
               
              * ``100755`` indicates read/write/execute
               
              * ``160000`` indicates a submodule
               
              * ``120000`` indicates a symlink
              

              
        
          

          - **changeType** *(string) --* 

            Whether the change type of the difference is an addition (A), deletion (D), or modification (M).

            
      
    
      

      - **NextToken** *(string) --* 

        An enumeration token that can be used in a request to return the next batch of the results.

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

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

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

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

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

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

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

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

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

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

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

  
  *   :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`

  