Vcenter VmTemplate LibraryItems create

Vcenter VmTemplate LibraryItems create

Creates a library item in content library from a virtual machine. This operation creates a library item in content library whose content is a virtual machine template created from the source virtual machine, using the supplied create specification. The virtual machine template is stored in a newly created library item.

This operation was added in vSphere API 6.8.

Returns an authorization error if you do not have all of the privileges described as follows:

  • Operation execution requires System.Read.
  • The resource com.vmware.content.Library referenced by the property Vcenter VmTemplate LibraryItems CreateSpec.library requires ContentLibrary.AddLibraryItem.
  • The resource VirtualMachine referenced by the property Vcenter VmTemplate LibraryItems CreateSpec.source_vm requires System.Read.
  • The resource Datastore referenced by the property Vcenter VmTemplate LibraryItems CreateSpecVmHomeStorage.datastore requires System.Read.
  • The resource com.vmware.spbm.StorageProfile referenced by the property Vcenter VmTemplate LibraryItems CreateSpecVmHomeStoragePolicy.policy requires System.Read.
  • The resource Datastore referenced by the property Vcenter VmTemplate LibraryItems CreateSpecDiskStorage.datastore requires System.Read.
  • The resource com.vmware.spbm.StorageProfile referenced by the property Vcenter VmTemplate LibraryItems CreateSpecDiskStoragePolicy.policy requires System.Read.
  • The resource com.vmware.vcenter.vm.hardware.Disk referenced by the map key of property Vcenter VmTemplate LibraryItems CreateSpec.disk_storage_overrides requires System.Read.
  • The resource Folder referenced by the property Vcenter VmTemplate LibraryItems CreatePlacementSpec.folder requires System.Read.
  • The resource ResourcePool referenced by the property Vcenter VmTemplate LibraryItems CreatePlacementSpec.resource_pool requires System.Read.
  • The resource HostSystem referenced by the property Vcenter VmTemplate LibraryItems CreatePlacementSpec.host requires System.Read.
  • The resource ClusterComputeResource referenced by the property Vcenter VmTemplate LibraryItems CreatePlacementSpec.cluster requires System.Read.
Request
URI
POST
https://{api_host}/api/vcenter/vm-template/library-items
COPY
Request Body

information used to create the library item from the source virtual machine.

Required

Show optional properties

{
    "source_vm": "string",
    "name": "string",
    "library": "string"
}
{
    "source_vm": "string",
    "name": "string",
    "description": "string",
    "library": "string",
    "vm_home_storage": {
        "datastore": "string",
        "storage_policy": {
            "type": "string",
            "policy": "string"
        }
    },
    "disk_storage": {
        "datastore": "string",
        "storage_policy": {
            "type": "string",
            "policy": "string"
        }
    },
    "disk_storage_overrides": {
        "disk_storage_overrides": {
            "datastore": "string",
            "storage_policy": {
                "type": "string",
                "policy": "string"
            }
        }
    },
    "placement": {
        "folder": "string",
        "resource_pool": "string",
        "host": "string",
        "cluster": "string"
    }
}
string
source_vm
Required

Identifier of the source virtual machine to create the library item from.

This property was added in vSphere API 6.8.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: VirtualMachine. When operations return a value of this schema as a response, the property will be an identifier for the resource type: VirtualMachine.

string
name
Required

Name of the library item.

This property was added in vSphere API 6.8.

string
description
Optional

Description of the library item.

This property was added in vSphere API 6.8.

If missing or null, the newly created library item has the same description as the source virtual machine.

string
library
Required

Identifier of the library in which the new library item should be created.

This property was added in vSphere API 6.8.

When clients pass a value of this schema as a parameter, the property must be an identifier for the resource type: com.vmware.content.Library. When operations return a value of this schema as a response, the property will be an identifier for the resource type: com.vmware.content.Library.

vm_home_storage
Optional

Storage location for the virtual machine template's configuration and log files.

This property was added in vSphere API 6.8.

If missing or null, the virtual machine template's configuration and log files are placed on the default storage backing associated with the library specified by library.

disk_storage
Optional

Storage specification for the virtual machine template's disks.

This property was added in vSphere API 6.8.

If both disk_storage_overrides and disk_storage are missing or null, the virtual machine template's disks are placed in the default storage backing associated with the library specified by library.

If disk_storage_overrides is missing or null and disk_storage is specified, all of the virtual machine template's disks are created with the storage spec specified by disk_storage.

If disk_storage_overrides is specified and disk_storage is missing or null, disks with identifiers that are not in disk_storage_overrides are placed in the default storage backing associated with the library specified by library.

If both disk_storage_overrides and disk_storage are specified, disks with identifiers that are not in disk_storage_overrides are created with the storage spec specified by disk_storage.

object
disk_storage_overrides
Optional

Storage specification for individual disks in the virtual machine template. This is specified as a mapping between disk identifiers in the source virtual machine and their respective storage specifications.

This property was added in vSphere API 6.8.

If both disk_storage_overrides and disk_storage are missing or null, the virtual machine template's disks are placed in the default storage backing associated with the library specified by library.

If disk_storage_overrides is missing or null and disk_storage is specified, all of the virtual machine template's disks are created with the storage spec specified by disk_storage.

If disk_storage_overrides is specified and disk_storage is missing or null, disks with identifiers that are not in disk_storage_overrides are placed in the default storage backing associated with the library specified by library.

If both disk_storage_overrides and disk_storage are specified, disks with identifiers that are not in disk_storage_overrides are created with the storage spec specified by disk_storage.

When clients pass a value of this schema as a parameter, the key in the property map must be an identifier for the resource type: com.vmware.vcenter.vm.hardware.Disk. When operations return a value of this schema as a response, the key in the property map will be an identifier for the resource type: com.vmware.vcenter.vm.hardware.Disk.

placement
Optional

Information used to place the virtual machine template.

This property was added in vSphere API 6.8.

This property is currently required. In the future, if this property is missing or null, the system will place the virtual machine template on a suitable resource.

If specified, each property will be used for placement. If the properties result in disjoint placement, the operation will fail. If the properties along with the placement values of the source virtual machine result in disjoint placement, the operation will fail.

Authentication
This operation uses the following authentication methods.
Responses
201

Identifier of the newly created library item.

The response will be an identifier for the resource type: com.vmware.content.library.Item.

Returns string of type(s) application/json
Operation doesn't return any data structure

400

Vapi Std Errors AlreadyExists if an entity with the name specified by Vcenter VmTemplate LibraryItems CreateSpec.name already exists in the folder specified by Vcenter VmTemplate LibraryItems CreatePlacementSpec.folder.

Vapi Std Errors InvalidArgument if Vcenter VmTemplate LibraryItems CreateSpec contains invalid arguments.

Vapi Std Errors NotAllowedInCurrentState if the operation cannot be performed because of the source virtual machine's current state.

Vapi Std Errors ResourceInUse if the source virtual machine is busy.

Returns Vapi Std Errors Error of type(s) application/json
"Vapi Std Errors Error Object"
array of object
messages
Required

Stack of one or more localizable messages for human error consumers.

The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked.

Each subsequent message in the stack describes the "cause" of the prior message.

object
data
Optional

Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully.

Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports.

The Vapi Std Errors ArgumentLocations, Vapi Std Errors FileLocations, and Vapi Std Errors TransientIndication schemas are intended as possible values for this property. Vapi Std DynamicID may also be useful as a value for this property (although that is not its primary purpose). Some resources may provide their own specific schemas for use as the value of this property when reporting errors from their operations.

Some operations will not set this property when reporting errors.

string
error_type
Required

Discriminator field to help API consumers identify the structure type.

For more information see: Vapi Std Errors Error Type.

This property was added in vSphere API 6.7.2.

Can be missing or null for compatibility with preceding implementations.


401

if the user that requested the operation cannot be authenticated.

Returns Vapi Std Errors Unauthenticated of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors Unauthenticated0
"Vapi Std Errors Unauthenticated Object"
string
challenge
Optional

Indicates the authentication challenges applicable to the target API provider. It can be used by a client to discover the correct authentication scheme to use. The exact syntax of the value is defined by the specific provider, the protocol and authentication schemes used.

For example, a provider using REST may adhere to the WWW-Authenticate HTTP header specification, RFC7235, section 4.1. In this case an example challenge value may be: SIGN realm="27da1358-2ba4-11e9-b210-d663bd873d93",sts="http://vcenter/sso?vsphere.local", Basic realm="vCenter"

This property was added in vSphere API 7.0.0.0.

This property is optional because it was added in a newer version than its parent node.


403

if the user that requested the operation is not authorized to perform the operation.

Returns Vapi Std Errors Unauthorized of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors Unauthorized0
"Vapi Std Errors Unauthorized Object"

404

if the source virtual machine specified by Vcenter VmTemplate LibraryItems CreateSpec.source_vm does not exist.

if the library specified by Vcenter VmTemplate LibraryItems CreateSpec.library does not exist.

Returns Vapi Std Errors NotFound of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors NotFound0
"Vapi Std Errors NotFound Object"

500

Vapi Std Errors Error if the system reports an error while responding to the request.

Vapi Std Errors ResourceInaccessible if there was an error accessing a file from the source virtual machine.

Vapi Std Errors UnableToAllocateResource if any of the resources needed to create the virtual machine template could not be allocated.

Returns Vapi Std Errors Error of type(s) application/json
"Vapi Std Errors Error Object"
array of object
messages
Required

Stack of one or more localizable messages for human error consumers.

The message at the top of the stack (first in the list) describes the error from the perspective of the operation the client invoked.

Each subsequent message in the stack describes the "cause" of the prior message.

object
data
Optional

Data to facilitate clients responding to the operation reporting a standard error to indicating that it was unable to complete successfully.

Operations may provide data that clients can use when responding to errors. Since the data that clients need may be specific to the context of the operation reporting the error, different operations that report the same error may provide different data in the error. The documentation for each each operation will describe what, if any, data it provides for each error it reports.

The Vapi Std Errors ArgumentLocations, Vapi Std Errors FileLocations, and Vapi Std Errors TransientIndication schemas are intended as possible values for this property. Vapi Std DynamicID may also be useful as a value for this property (although that is not its primary purpose). Some resources may provide their own specific schemas for use as the value of this property when reporting errors from their operations.

Some operations will not set this property when reporting errors.

string
error_type
Required

Discriminator field to help API consumers identify the structure type.

For more information see: Vapi Std Errors Error Type.

This property was added in vSphere API 6.7.2.

Can be missing or null for compatibility with preceding implementations.


503

if any of the services involved in the operation are unavailable.

Returns Vapi Std Errors ServiceUnavailable of type(s) application/json
This response body class contains all of the following: InlineVapi Std Errors ServiceUnavailable0
"Vapi Std Errors ServiceUnavailable Object"

Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"library:"string","name:"string","source_vm:"string"}' https://{api_host}/api/vcenter/vm-template/library-items