:doc:`DatabaseMigrationService <../../dms>` / Client / modify_instance_profile

***********************
modify_instance_profile
***********************



.. py:method:: DatabaseMigrationService.Client.modify_instance_profile(**kwargs)

  

  Modifies the specified instance profile using the provided parameters.

   

  .. note::

    

    All migration projects associated with the instance profile must be deleted or modified before you can modify the instance profile.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyInstanceProfile>`_  


  **Request Syntax**
  ::

    response = client.modify_instance_profile(
        InstanceProfileIdentifier='string',
        AvailabilityZone='string',
        KmsKeyArn='string',
        PubliclyAccessible=True|False,
        NetworkType='string',
        InstanceProfileName='string',
        Description='string',
        SubnetGroupIdentifier='string',
        VpcSecurityGroups=[
            'string',
        ]
    )
    
  :type InstanceProfileIdentifier: string
  :param InstanceProfileIdentifier: **[REQUIRED]** 

    The identifier of the instance profile. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.

    

  
  :type AvailabilityZone: string
  :param AvailabilityZone: 

    The Availability Zone where the instance profile runs.

    

  
  :type KmsKeyArn: string
  :param KmsKeyArn: 

    The Amazon Resource Name (ARN) of the KMS key that is used to encrypt the connection parameters for the instance profile.

     

    If you don't specify a value for the ``KmsKeyArn`` parameter, then DMS uses an Amazon Web Services owned encryption key to encrypt your resources.

    

  
  :type PubliclyAccessible: boolean
  :param PubliclyAccessible: 

    Specifies the accessibility options for the instance profile. A value of ``true`` represents an instance profile with a public IP address. A value of ``false`` represents an instance profile with a private IP address. The default value is ``true``.

    

  
  :type NetworkType: string
  :param NetworkType: 

    Specifies the network type for the instance profile. A value of ``IPV4`` represents an instance profile with IPv4 network type and only supports IPv4 addressing. A value of ``IPV6`` represents an instance profile with IPv6 network type and only supports IPv6 addressing. A value of ``DUAL`` represents an instance profile with dual network type that supports IPv4 and IPv6 addressing.

    

  
  :type InstanceProfileName: string
  :param InstanceProfileName: 

    A user-friendly name for the instance profile.

    

  
  :type Description: string
  :param Description: 

    A user-friendly description for the instance profile.

    

  
  :type SubnetGroupIdentifier: string
  :param SubnetGroupIdentifier: 

    A subnet group to associate with the instance profile.

    

  
  :type VpcSecurityGroups: list
  :param VpcSecurityGroups: 

    Specifies the VPC security groups to be used with the instance profile. The VPC security group must work with the VPC containing the instance profile.

    

  
    - *(string) --* 

    

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

    
    ::

      {
          'InstanceProfile': {
              'InstanceProfileArn': 'string',
              'AvailabilityZone': 'string',
              'KmsKeyArn': 'string',
              'PubliclyAccessible': True|False,
              'NetworkType': 'string',
              'InstanceProfileName': 'string',
              'Description': 'string',
              'InstanceProfileCreationTime': datetime(2015, 1, 1),
              'SubnetGroupIdentifier': 'string',
              'VpcSecurityGroups': [
                  'string',
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **InstanceProfile** *(dict) --* 

        The instance profile that was modified.

        
        

        - **InstanceProfileArn** *(string) --* 

          The Amazon Resource Name (ARN) string that uniquely identifies the instance profile.

          
        

        - **AvailabilityZone** *(string) --* 

          The Availability Zone where the instance profile runs.

          
        

        - **KmsKeyArn** *(string) --* 

          The Amazon Resource Name (ARN) of the KMS key that is used to encrypt the connection parameters for the instance profile.

           

          If you don't specify a value for the ``KmsKeyArn`` parameter, then DMS uses an Amazon Web Services owned encryption key to encrypt your resources.

          
        

        - **PubliclyAccessible** *(boolean) --* 

          Specifies the accessibility options for the instance profile. A value of ``true`` represents an instance profile with a public IP address. A value of ``false`` represents an instance profile with a private IP address. The default value is ``true``.

          
        

        - **NetworkType** *(string) --* 

          Specifies the network type for the instance profile. A value of ``IPV4`` represents an instance profile with IPv4 network type and only supports IPv4 addressing. A value of ``IPV6`` represents an instance profile with IPv6 network type and only supports IPv6 addressing. A value of ``DUAL`` represents an instance profile with dual network type that supports IPv4 and IPv6 addressing.

          
        

        - **InstanceProfileName** *(string) --* 

          The user-friendly name for the instance profile.

          
        

        - **Description** *(string) --* 

          A description of the instance profile. Descriptions can have up to 31 characters. A description can contain only ASCII letters, digits, and hyphens ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter.

          
        

        - **InstanceProfileCreationTime** *(datetime) --* 

          The time the instance profile was created.

          
        

        - **SubnetGroupIdentifier** *(string) --* 

          The identifier of the subnet group that is associated with the instance profile.

          
        

        - **VpcSecurityGroups** *(list) --* 

          The VPC security groups that are used with the instance profile. The VPC security group must work with the VPC containing the instance profile.

          
          

          - *(string) --* 
      
    
  
  **Exceptions**
  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.AccessDeniedFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.ResourceNotFoundFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.InvalidResourceStateFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.KMSKeyNotAccessibleFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.S3ResourceNotFoundFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.S3AccessDeniedFault`

  
  *   :py:class:`DatabaseMigrationService.Client.exceptions.FailedDependencyFault`

  