:doc:`CodeArtifact <../../codeartifact>` / Client / associate_external_connection

*****************************
associate_external_connection
*****************************



.. py:method:: CodeArtifact.Client.associate_external_connection(**kwargs)

  

  Adds an existing external connection to a repository. One external connection is allowed per repository.

   

  .. note::

    

    A repository can have one or more upstream repositories, or an external connection.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/codeartifact-2018-09-22/AssociateExternalConnection>`_  


  **Request Syntax**
  ::

    response = client.associate_external_connection(
        domain='string',
        domainOwner='string',
        repository='string',
        externalConnection='string'
    )
    
  :type domain: string
  :param domain: **[REQUIRED]** 

    The name of the domain that contains the repository.

    

  
  :type domainOwner: string
  :param domainOwner: 

    The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

    

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

    The name of the repository to which the external connection is added.

    

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

    The name of the external connection to add to the repository. The following values are supported:

     

    
    * ``public:npmjs`` - for the npm public repository.
     
    * ``public:nuget-org`` - for the NuGet Gallery.
     
    * ``public:pypi`` - for the Python Package Index.
     
    * ``public:maven-central`` - for Maven Central.
     
    * ``public:maven-googleandroid`` - for the Google Android repository.
     
    * ``public:maven-gradleplugins`` - for the Gradle plugins repository.
     
    * ``public:maven-commonsware`` - for the CommonsWare Android repository.
     
    * ``public:maven-clojars`` - for the Clojars repository.
     
    * ``public:ruby-gems-org`` - for RubyGems.org.
     
    * ``public:crates-io`` - for Crates.io.
    

    

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

    
    ::

      {
          'repository': {
              'name': 'string',
              'administratorAccount': 'string',
              'domainName': 'string',
              'domainOwner': 'string',
              'arn': 'string',
              'description': 'string',
              'upstreams': [
                  {
                      'repositoryName': 'string'
                  },
              ],
              'externalConnections': [
                  {
                      'externalConnectionName': 'string',
                      'packageFormat': 'npm'|'pypi'|'maven'|'nuget'|'generic'|'ruby'|'swift'|'cargo',
                      'status': 'Available'
                  },
              ],
              'createdTime': datetime(2015, 1, 1)
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **repository** *(dict) --* 

        Information about the connected repository after processing the request.

        
        

        - **name** *(string) --* 

          The name of the repository.

          
        

        - **administratorAccount** *(string) --* 

          The 12-digit account number of the Amazon Web Services account that manages the repository.

          
        

        - **domainName** *(string) --* 

          The name of the domain that contains the repository.

          
        

        - **domainOwner** *(string) --* 

          The 12-digit account number of the Amazon Web Services account that owns the domain that contains the repository. It does not include dashes or spaces.

          
        

        - **arn** *(string) --* 

          The Amazon Resource Name (ARN) of the repository.

          
        

        - **description** *(string) --* 

          A text description of the repository.

          
        

        - **upstreams** *(list) --* 

          A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package version. For more information, see `Working with upstream repositories <https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html>`__.

          
          

          - *(dict) --* 

            Information about an upstream repository.

            
            

            - **repositoryName** *(string) --* 

              The name of an upstream repository.

              
        
      
        

        - **externalConnections** *(list) --* 

          An array of external connections associated with the repository.

          
          

          - *(dict) --* 

            Contains information about the external connection of a repository.

            
            

            - **externalConnectionName** *(string) --* 

              The name of the external connection associated with a repository.

              
            

            - **packageFormat** *(string) --* 

              The package format associated with a repository's external connection. The valid package formats are:

               

              
              * ``npm``: A Node Package Manager (npm) package.
               
              * ``pypi``: A Python Package Index (PyPI) package.
               
              * ``maven``: A Maven package that contains compiled code in a distributable format, such as a JAR file.
               
              * ``nuget``: A NuGet package.
               
              * ``generic``: A generic package.
               
              * ``ruby``: A Ruby package.
               
              * ``swift``: A Swift package.
               
              * ``cargo``: A Cargo package.
              

              
            

            - **status** *(string) --* 

              The status of the external connection of a repository. There is one valid value, ``Available``.

              
        
      
        

        - **createdTime** *(datetime) --* 

          A timestamp that represents the date and time the repository was created.

          
    
  
  **Exceptions**
  
  *   :py:class:`CodeArtifact.Client.exceptions.AccessDeniedException`

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

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

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

  
  *   :py:class:`CodeArtifact.Client.exceptions.ServiceQuotaExceededException`

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

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

  