:doc:`Lightsail <../../lightsail>` / Client / update_instance_metadata_options

********************************
update_instance_metadata_options
********************************



.. py:method:: Lightsail.Client.update_instance_metadata_options(**kwargs)

  

  Modifies the Amazon Lightsail instance metadata parameters on a running or stopped instance. When you modify the parameters on a running instance, the ``GetInstance`` or ``GetInstances`` API operation initially responds with a state of ``pending``. After the parameter modifications are successfully applied, the state changes to ``applied`` in subsequent ``GetInstance`` or ``GetInstances`` API calls. For more information, see `Use IMDSv2 with an Amazon Lightsail instance <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-configuring-instance-metadata-service>`__ in the *Amazon Lightsail Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateInstanceMetadataOptions>`_  


  **Request Syntax**
  ::

    response = client.update_instance_metadata_options(
        instanceName='string',
        httpTokens='optional'|'required',
        httpEndpoint='disabled'|'enabled',
        httpPutResponseHopLimit=123,
        httpProtocolIpv6='disabled'|'enabled'
    )
    
  :type instanceName: string
  :param instanceName: **[REQUIRED]** 

    The name of the instance for which to update metadata parameters.

    

  
  :type httpTokens: string
  :param httpTokens: 

    The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is ``optional``.

     

    If the state is ``optional``, you can choose whether to retrieve instance metadata with a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials by using a valid signed token, the version 2.0 role credentials are returned.

     

    If the state is ``required``, you must send a signed token header with all instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials. The version 1.0 credentials are not available.

    

  
  :type httpEndpoint: string
  :param httpEndpoint: 

    Enables or disables the HTTP metadata endpoint on your instances. If this parameter is not specified, the existing state is maintained.

     

    If you specify a value of ``disabled``, you cannot access your instance metadata.

    

  
  :type httpPutResponseHopLimit: integer
  :param httpPutResponseHopLimit: 

    The desired HTTP PUT response hop limit for instance metadata requests. A larger number means that the instance metadata requests can travel farther. If no parameter is specified, the existing state is maintained.

    

  
  :type httpProtocolIpv6: string
  :param httpProtocolIpv6: 

    Enables or disables the IPv6 endpoint for the instance metadata service. This setting applies only when the HTTP metadata endpoint is enabled.

     

    .. note::

      

      This parameter is available only for instances in the Europe (Stockholm) Amazon Web Services Region ( ``eu-north-1``).

      

    

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

    
    ::

      {
          'operation': {
              'id': 'string',
              'resourceName': 'string',
              'resourceType': 'ContainerService'|'Instance'|'StaticIp'|'KeyPair'|'InstanceSnapshot'|'Domain'|'PeeredVpc'|'LoadBalancer'|'LoadBalancerTlsCertificate'|'Disk'|'DiskSnapshot'|'RelationalDatabase'|'RelationalDatabaseSnapshot'|'ExportSnapshotRecord'|'CloudFormationStackRecord'|'Alarm'|'ContactMethod'|'Distribution'|'Certificate'|'Bucket',
              'createdAt': datetime(2015, 1, 1),
              'location': {
                  'availabilityZone': 'string',
                  'regionName': 'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-central-1'|'ca-central-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'ap-northeast-2'|'eu-north-1'|'ap-southeast-3'
              },
              'isTerminal': True|False,
              'operationDetails': 'string',
              'operationType': 'DeleteKnownHostKeys'|'DeleteInstance'|'CreateInstance'|'StopInstance'|'StartInstance'|'RebootInstance'|'OpenInstancePublicPorts'|'PutInstancePublicPorts'|'CloseInstancePublicPorts'|'AllocateStaticIp'|'ReleaseStaticIp'|'AttachStaticIp'|'DetachStaticIp'|'UpdateDomainEntry'|'DeleteDomainEntry'|'CreateDomain'|'DeleteDomain'|'CreateInstanceSnapshot'|'DeleteInstanceSnapshot'|'CreateInstancesFromSnapshot'|'CreateLoadBalancer'|'DeleteLoadBalancer'|'AttachInstancesToLoadBalancer'|'DetachInstancesFromLoadBalancer'|'UpdateLoadBalancerAttribute'|'CreateLoadBalancerTlsCertificate'|'DeleteLoadBalancerTlsCertificate'|'AttachLoadBalancerTlsCertificate'|'CreateDisk'|'DeleteDisk'|'AttachDisk'|'DetachDisk'|'CreateDiskSnapshot'|'DeleteDiskSnapshot'|'CreateDiskFromSnapshot'|'CreateRelationalDatabase'|'UpdateRelationalDatabase'|'DeleteRelationalDatabase'|'CreateRelationalDatabaseFromSnapshot'|'CreateRelationalDatabaseSnapshot'|'DeleteRelationalDatabaseSnapshot'|'UpdateRelationalDatabaseParameters'|'StartRelationalDatabase'|'RebootRelationalDatabase'|'StopRelationalDatabase'|'EnableAddOn'|'DisableAddOn'|'PutAlarm'|'GetAlarms'|'DeleteAlarm'|'TestAlarm'|'CreateContactMethod'|'GetContactMethods'|'SendContactMethodVerification'|'DeleteContactMethod'|'CreateDistribution'|'UpdateDistribution'|'DeleteDistribution'|'ResetDistributionCache'|'AttachCertificateToDistribution'|'DetachCertificateFromDistribution'|'UpdateDistributionBundle'|'SetIpAddressType'|'CreateCertificate'|'DeleteCertificate'|'CreateContainerService'|'UpdateContainerService'|'DeleteContainerService'|'CreateContainerServiceDeployment'|'CreateContainerServiceRegistryLogin'|'RegisterContainerImage'|'DeleteContainerImage'|'CreateBucket'|'DeleteBucket'|'CreateBucketAccessKey'|'DeleteBucketAccessKey'|'UpdateBucketBundle'|'UpdateBucket'|'SetResourceAccessForBucket'|'UpdateInstanceMetadataOptions'|'StartGUISession'|'StopGUISession'|'SetupInstanceHttps',
              'status': 'NotStarted'|'Started'|'Failed'|'Completed'|'Succeeded',
              'statusChangedAt': datetime(2015, 1, 1),
              'errorCode': 'string',
              'errorDetails': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **operation** *(dict) --* 

        An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.

        
        

        - **id** *(string) --* 

          The ID of the operation.

          
        

        - **resourceName** *(string) --* 

          The resource name.

          
        

        - **resourceType** *(string) --* 

          The resource type.

          
        

        - **createdAt** *(datetime) --* 

          The timestamp when the operation was initialized ( ``1479816991.349``).

          
        

        - **location** *(dict) --* 

          The Amazon Web Services Region and Availability Zone.

          
          

          - **availabilityZone** *(string) --* 

            The Availability Zone. Follows the format ``us-east-2a`` (case-sensitive).

            
          

          - **regionName** *(string) --* 

            The Amazon Web Services Region name.

            
      
        

        - **isTerminal** *(boolean) --* 

          A Boolean value indicating whether the operation is terminal.

          
        

        - **operationDetails** *(string) --* 

          Details about the operation ( ``Debian-1GB-Ohio-1``).

          
        

        - **operationType** *(string) --* 

          The type of operation.

          
        

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

          The status of the operation.

          
        

        - **statusChangedAt** *(datetime) --* 

          The timestamp when the status was changed ( ``1479816991.349``).

          
        

        - **errorCode** *(string) --* 

          The error code.

          
        

        - **errorDetails** *(string) --* 

          The error details.

          
    
  
  **Exceptions**
  
  *   :py:class:`Lightsail.Client.exceptions.ServiceException`

  
  *   :py:class:`Lightsail.Client.exceptions.InvalidInputException`

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

  
  *   :py:class:`Lightsail.Client.exceptions.OperationFailureException`

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

  
  *   :py:class:`Lightsail.Client.exceptions.AccountSetupInProgressException`

  
  *   :py:class:`Lightsail.Client.exceptions.RegionSetupInProgressException`

  
  *   :py:class:`Lightsail.Client.exceptions.UnauthenticatedException`

  