Vcenter Namespaces Instances create

Vcenter Namespaces Instances create

Create a namespace object on a single vSphere cluster.

This operation was added in vSphere API 7.0.0.0.

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

  • The resource ClusterComputeResource referenced by the property Vcenter Namespaces Instances CreateSpec.cluster requires Namespaces.Configure.
Request
URI
POST
https://{api_host}/api/vcenter/namespaces/instances
COPY
Request Body

The specification for setting up the namespace.

Vcenter Namespaces Instances CreateSpec of type(s) application/json
Required

Show optional properties

{
    "cluster": "string",
    "namespace": "string"
}
{
    "cluster": "string",
    "namespace": "string",
    "description": "string",
    "resource_spec": {},
    "access_list": [
        {
            "subject_type": "string",
            "subject": "string",
            "domain": "string",
            "role": "string",
            "identity_provider": "string"
        }
    ],
    "storage_specs": [
        {
            "policy": "string",
            "limit": 0
        }
    ],
    "networks": [
        "string"
    ],
    "vm_service_spec": {
        "content_libraries": [
            "string"
        ],
        "vm_classes": [
            "string"
        ]
    },
    "content_libraries": [
        {
            "content_library": "string",
            "writable": false,
            "allow_import": false,
            "resource_naming_strategy": "string"
        }
    ],
    "creator": {
        "subject": "string",
        "domain": "string"
    },
    "namespace_network": {
        "network_provider": "string",
        "network": {
            "namespace_network_cidrs": [
                {
                    "address": "string",
                    "prefix": 0
                }
            ],
            "ingress_cidrs": [
                {
                    "address": "string",
                    "prefix": 0
                }
            ],
            "egress_cidrs": [
                {
                    "address": "string",
                    "prefix": 0
                }
            ],
            "nsx_tier0_gateway": "string",
            "subnet_prefix_length": 0,
            "routed_mode": false,
            "load_balancer_size": "string"
        }
    }
}
string
cluster
Required

Identifier of the cluster on which the namespace is being created.

This property was added in vSphere API 7.0.0.0.

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

string
namespace
Required

Identifier of the namespace. This has DNS_LABEL restrictions as specified in . This must be an alphanumeric (a-z and 0-9) string and with maximum length of 63 characters and with the '-' character allowed anywhere except the first or last character. This name is unique across all Namespaces in this vCenter server. In this version, this maps to the name of a Kubernetes namespace.

This property was added in vSphere API 7.0.0.0.

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

string
description
Optional

Description for the namespace.

This property was added in vSphere API 7.0.0.0.

If missing or null, no description is added to the namespace.

object
resource_spec
Optional

Resource quota on the namespace. Refer to Vcenter NamespaceManagement NamespaceResourceOptions Info.create_resource_quota_type and use GET /vcenter/namespace-management/clusters/{cluster}/workload-resource-options for retrieving the type for the value for this field. For an example of this, see Vcenter Namespaces ResourceQuotaOptionsV1.

This property was added in vSphere API 7.0.0.0.

If missing or null, no resource limits will be set on the namespace.

array of object
access_list
Optional

Access controls associated with the namespace.

This property was added in vSphere API 7.0.0.0.

If missing or null, only users with Administrator role can access the namespace.

array of object
storage_specs
Optional

Storage associated with the namespace.

This property was added in vSphere API 7.0.0.0.

If missing or null, storage policies will not be associated with the namespace which will prevent users from being able to provision pods with persistent storage on the namespace. Users will be able to provision pods which use local storage.

array of string
networks
Optional

The vSphere Namespaces network objects to be associated with the namespace. The values of this list need to reference names of pre-existing Vcenter NamespaceManagement Networks Info schemas.

This property was added in vSphere API 7.0.1.0.

The field must be left missing or null if the cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSX_VPC as the network provider, since the network(s) for this namespace will be managed on NSX.

When using NSXT_CONTAINER_PLUGIN as network provider, a new network dedicated to the namespace will be created as part of namespace creation to override cluster network configs if Vcenter Namespaces Instances NsxNetworkCreateSpec is set.

When using NSX_VPC as network provider, any additional network configuration needs to be specified with Vcenter Namespaces Instances VpcNetworkCreateSpec.

If the field is missing or null when the cluster hosting the namespace uses VSPHERE_NETWORK as its network provider, the namespace will automatically be associated with the cluster's Supervisor Primary Workload Network. The field currently accepts at most only 1 vSphere Namespaces network object reference.

When clients pass a value of this schema as a parameter, the property must contain identifiers for the resource type: com.vmware.vcenter.namespace_management.Network. When operations return a value of this schema as a response, the property will contain identifiers for the resource type: com.vmware.vcenter.namespace_management.Network.

vm_service_spec
Optional

VM Service specification associated with the namespace.

This property was added in vSphere API 7.0.2.00100.

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

array of object
content_libraries
Optional

List of Content Libraries used by the VM Image Service. This list refers to existing Content Libraries in vSphere inventory.

The Content Libraries specified in {VMServiceSpec#contentLibraries} will also be used by the VM Image Service but will be read-only by default to users.

If the same Content Library is present both here and in {VMServiceSpec#contentLibraries}, then:

  • The Content Library is only surfaced to users once.
  • The settings here are honored.

This property was added in vSphere API 8.0.2.0.

If missing or null, no additional Content Libraries will be configured for the VM Image Service except for the Content Libraries specified in {VMServiceSpec#contentLibraries}.

creator
Optional

Creator of the namespace. Namespace self-service uses this field to populate the user who created this namespace.

This property was added in vSphere API 7.0.2.00100.

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

namespace_network
Optional

This field that accepts parameters to define a vSphere Namespace Network object that will automatically be associated with this Namespace. Networks created in this operation will be given an autogenerated ID and cannot be referenced by other Namespaces.

This property was added in vSphere API 7.0.2.00100.

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

Authentication
This operation uses the following authentication methods.
Responses
204

Success!

Operation doesn't return any data structure

400

Vapi Std Errors AlreadyExists if a namespace with the same name exists in vCenter server.

Vapi Std Errors InvalidArgument if spec contains any errors or if an invalid name is specified.

Vapi Std Errors NotAllowedInCurrentState if the associated Supervisor cluster is being disabled or if the associated Supervisor cluster is being restored from a backup. When a Supervisor cluster is restored, there's a window of time during which the restored Supervisor cluster's state is being synchronized back to vCenter. During that time, namespace creation is not allowed.

Vapi Std Errors Unsupported ifVcenter Namespaces Instances CreateSpec.cluster is not enabled for Namespaces, or if the networks field is set when the Vcenter Namespaces Instances CreateSpec.cluster hosting the namespace uses NSXT_CONTAINER_PLUGIN or NSX_VPC as its network provider, or if the Supervisor cluster does not support customizable VM classes.

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 can not 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 does not have Namespaces.Configure privilege or the namespace identifier begins with "vmware-system" prefix.

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 Vcenter Namespaces Instances CreateSpec.cluster is not registered on this vCenter server.

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

if the system reports an error while responding to the request.

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.


Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"cluster:"string","namespace:"string"}' https://{api_host}/api/vcenter/namespaces/instances