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

*************************
create_disk_from_snapshot
*************************



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

  

  Creates a block storage disk from a manual or automatic snapshot of a disk. The resulting disk can be attached to an Amazon Lightsail instance in the same Availability Zone ( ``us-east-2a``).

   

  The ``create disk from snapshot`` operation supports tag-based access control via request tags and resource tags applied to the resource identified by ``disk snapshot name``. For more information, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-controlling-access-using-tags>`__.

  

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


  **Request Syntax**
  ::

    response = client.create_disk_from_snapshot(
        diskName='string',
        diskSnapshotName='string',
        availabilityZone='string',
        sizeInGb=123,
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ],
        addOns=[
            {
                'addOnType': 'AutoSnapshot'|'StopInstanceOnIdle',
                'autoSnapshotAddOnRequest': {
                    'snapshotTimeOfDay': 'string'
                },
                'stopInstanceOnIdleRequest': {
                    'threshold': 'string',
                    'duration': 'string'
                }
            },
        ],
        sourceDiskName='string',
        restoreDate='string',
        useLatestRestorableAutoSnapshot=True|False
    )
    
  :type diskName: string
  :param diskName: **[REQUIRED]** 

    The unique Lightsail disk name ( ``my-disk``).

    

  
  :type diskSnapshotName: string
  :param diskSnapshotName: 

    The name of the disk snapshot ( ``my-snapshot``) from which to create the new storage disk.

     

    Constraint:

     

    
    * This parameter cannot be defined together with the ``source disk name`` parameter. The ``disk snapshot name`` and ``source disk name`` parameters are mutually exclusive.
    

    

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

    The Availability Zone where you want to create the disk ( ``us-east-2a``). Choose the same Availability Zone as the Lightsail instance where you want to create the disk.

     

    Use the GetRegions operation to list the Availability Zones where Lightsail is currently available.

    

  
  :type sizeInGb: integer
  :param sizeInGb: **[REQUIRED]** 

    The size of the disk in GB ( ``32``).

    

  
  :type tags: list
  :param tags: 

    The tag keys and optional values to add to the resource during create.

     

    Use the ``TagResource`` action to tag a resource after it's created.

    

  
    - *(dict) --* 

      Describes a tag key and optional value assigned to an Amazon Lightsail resource.

       

      For more information about tags in Lightsail, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-tags>`__.

      

    
      - **key** *(string) --* 

        The key of the tag.

         

        Constraints: Tag keys accept a maximum of 128 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        

      
      - **value** *(string) --* 

        The value of the tag.

         

        Constraints: Tag values accept a maximum of 256 letters, numbers, spaces in UTF-8, or the following characters: + - = . _ : / @

        

      
    

  :type addOns: list
  :param addOns: 

    An array of objects that represent the add-ons to enable for the new disk.

    

  
    - *(dict) --* 

      Describes a request to enable, modify, or disable an add-on for an Amazon Lightsail resource.

       

      .. note::

        

        An additional cost may be associated with enabling add-ons. For more information, see the `Lightsail pricing page <https://aws.amazon.com/lightsail/pricing/>`__.

        

      

    
      - **addOnType** *(string) --* **[REQUIRED]** 

        The add-on type.

        

      
      - **autoSnapshotAddOnRequest** *(dict) --* 

        An object that represents additional parameters when enabling or modifying the automatic snapshot add-on.

        

      
        - **snapshotTimeOfDay** *(string) --* 

          The daily time when an automatic snapshot will be created.

           

          Constraints:

           

          
          * Must be in ``HH:00`` format, and in an hourly increment.
           
          * Specified in Coordinated Universal Time (UTC).
           
          * The snapshot will be automatically created between the time specified and up to 45 minutes after.
          

          

        
      
      - **stopInstanceOnIdleRequest** *(dict) --* 

        An object that represents additional parameters when enabling or modifying the ``StopInstanceOnIdle`` add-on.

         

        .. warning::

           

          This object only applies to Lightsail for Research resources.

          

        

      
        - **threshold** *(string) --* 

          The value to compare with the duration.

          

        
        - **duration** *(string) --* 

          The amount of idle time in minutes after which your virtual computer will automatically stop.

          

        
      
    

  :type sourceDiskName: string
  :param sourceDiskName: 

    The name of the source disk from which the source automatic snapshot was created.

     

    Constraints:

     

    
    * This parameter cannot be defined together with the ``disk snapshot name`` parameter. The ``source disk name`` and ``disk snapshot name`` parameters are mutually exclusive.
     
    * Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-configuring-automatic-snapshots>`__.
    

    

  
  :type restoreDate: string
  :param restoreDate: 

    The date of the automatic snapshot to use for the new disk. Use the ``get auto snapshots`` operation to identify the dates of the available automatic snapshots.

     

    Constraints:

     

    
    * Must be specified in ``YYYY-MM-DD`` format.
     
    * This parameter cannot be defined together with the ``use latest restorable auto snapshot`` parameter. The ``restore date`` and ``use latest restorable auto snapshot`` parameters are mutually exclusive.
     
    * Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-configuring-automatic-snapshots>`__.
    

    

  
  :type useLatestRestorableAutoSnapshot: boolean
  :param useLatestRestorableAutoSnapshot: 

    A Boolean value to indicate whether to use the latest available automatic snapshot.

     

    Constraints:

     

    
    * This parameter cannot be defined together with the ``restore date`` parameter. The ``use latest restorable auto snapshot`` and ``restore date`` parameters are mutually exclusive.
     
    * Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the `Amazon Lightsail Developer Guide <https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-configuring-automatic-snapshots>`__.
    

    

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

    
    ::

      {
          'operations': [
              {
                  '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) --* 
      

      - **operations** *(list) --* 

        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.

        
        

        - *(dict) --* 

          Describes the API operation.

          
          

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

  