+ * This class provides the core functionality for managing all the information. The information + * itself is populated by a compile-time generated class, that extends this class and supplies all + * the information that will be populated. The public methods in this class serve as access to that + * information through the generated class + *
+ * Important implementation notes: The generated class will be in the same package as this class
+ * allowing access to all package-private or more visible components of this class. This allows us
+ * to avoid having to generate complex logic via code generation, thus restricting code-generation
+ * to a simplified implementation of compile time generation of data that get populated into this
+ * class.
+ */
+abstract class VCloudMediaTypesBase {
+ static final Map
+ * e.g. {@code application/vnd.vmware.vm+json} would return
+ * {@code application/vnd.vmware.vm+xml}
+ *
+ * @param jsonType
+ * media type specifying {@code json} serialization
+ * @return corresponding media type specifying {@code xml} serialization or {@code null} if
+ * none found
+ */
+ public final String getXmlTypeFor(final String jsonType) {
+ return JSON_XML_MAP.get(jsonType);
+ }
+
+ /**
+ * Looks up the corresponding {@code json} serialized {@link MediaType} for the specified
+ * {@code xml} serialized one.
+ *
+ * e.g. {@code application/vnd.vmware.vm+xml} would return
+ * {@code application/vnd.vmware.vm+json}
+ *
+ * @param xmlType
+ * media type specifying {@code xml} serialization
+ * @return corresponding media type specifying {@code json} serialization or {@code null} if
+ * none found
+ */
+ public final String getJsonTypeFor(final String xmlType) {
+ return XML_JSON_MAP.get(xmlType);
+ }
+
+ /**
+ * Returns the {@link Class} object for the generated type identified by the specified
+ * {@link MediaType}
+ *
+ * Note: The {@code content-type} specified as argument must match the
+ * {@code
+ * If you have a full media type value with header parameters, use
+ * {@link #getClassFor(MediaType)} version of this method instead.
+ *
+ * Media type can be all valid non-wildcard values as used in API calls. Header
+ * parameters may be present. They
+ * Wild-card values are useless for any lookups. Thus, following values will result in lookup
+ * failures and {@code null} will be returned:
+ *
+ * It is assumed that the parameter is one of the generated types from the .xsd schema.
+ *
+ * @param clazz
+ * {@link Class} representing one of the generated types
+ * @return {@link String} representing the {@code MediaType} for the content-type using
+ * {@code xml} serialization for the specified {@link Class} must be looked up
+ * @throws IllegalArgumentException
+ * if the specified {@link Class} is
+ * It is assumed that the parameter is one of the generated types from the .xsd schema.
+ *
+ * @param clazz
+ * {@link Class} representing one of the generated types
+ * @return {@link String} representing the {@code MediaType} for the content-type using
+ * {@code json} serialization for the specified {@link Class} must be looked up
+ * @throws IllegalArgumentException
+ * if the specified {@link Class} is
+ * e.g. following are legal values:
+ *
+ *
+ *
e.g. following values will result in lookup failures and {@code null} will be returned:
+ *
+ *
+ *
+ * @see #getClassFor(MediaType)
+ * @param contentType
+ * content-type as described above
+ * @return {@link Class} for the corresponding generated Java type.
+ */
+ public final Class> getClassFor(final String contentType) {
+ final String baseContentType = contentType.replaceAll("\\+((xml)|(json))$", "");
+ return CONTENT_TYPE_CLASS_MAP.get(baseContentType.toLowerCase());
+ }
+
+ /**
+ * Returns the {@link Class} object for the generated type identified by the specified
+ * {@link MediaType}
+ * {type}/{subtype} portion of the specified
+ * argument will used for lookup. This value must match the {@code
+ * e.g. following are legal values when used to construct a {@link MediaType} object:
+ *
+ *
+ *
+ *
+ *
+ * @see #getClassFor(String)
+ * @see MediaType#valueOf(String)
+ *
+ * @param contentType
+ * {@link MediaType} representing the content-type whose Java {@link Class} must be
+ * looked up
+ * @return {@link Class} for the corresponding generated Java type.
+ */
+ public final Class> getClassFor(final MediaType mediaType) {
+ return getClassFor(String.format("%s/%s", mediaType.getType(), mediaType.getSubtype()));
+ }
+
+ /**
+ * Returns media type (type/subtype) as a {@link String} for the specified
+ * {@link Class}
+ * null or not one of the generated
+ * types
+ */
+ public final String getXmlMediaTypeFor(final Class> clazz) throws IllegalArgumentException {
+ return getSuffixedMediaTypeFor(clazz, XML_FORMAT_SUFFIX);
+ }
+
+ /**
+ * Returns media type (type/subtype) as a {@link String} for the specified
+ * {@link Class}
+ * null or not one of the generated
+ * types
+ */
+ public final String getJsonMediaTypeFor(final Class> clazz) throws IllegalArgumentException {
+ return getSuffixedMediaTypeFor(clazz, JSON_FORMAT_SUFFIX);
+ }
+
+ private String getSuffixedMediaTypeFor(final Class> clazz, final String suffix) throws IllegalArgumentException {
+ return Optional.of(clazz).map(CLASS_CONTENT_TYPE_MAP::get).map(s -> s + suffix)
+ .orElseThrow(() -> new IllegalArgumentException(
+ String.format("Class: %s is null or not a type generated from vcd .xsd schema", clazz)));
+ }
+}
+
diff --git a/bindings/java/api-bindings/src/main/java/com/vmware/vcloud/api/rest/constants/XmlJsonTypeMatcher.java b/bindings/java/api-bindings/src/main/java/com/vmware/vcloud/api/rest/constants/XmlJsonTypeMatcher.java
new file mode 100644
index 00000000..8a2b0cbc
--- /dev/null
+++ b/bindings/java/api-bindings/src/main/java/com/vmware/vcloud/api/rest/constants/XmlJsonTypeMatcher.java
@@ -0,0 +1,123 @@
+
+package com.vmware.vcloud.api.rest.constants;
+
+/*-
+ * #%L
+ * vcd-api-bindings-java :: vCloud Director REST API bindings
+ * %%
+ * Copyright (C) 2013 - 2021 VMware
+ * %%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * #L%
+ */
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Maintains mapping of types for xml <-> json lookups
+ *
+ */
+public class XmlJsonTypeMatcher {
+
+ private static final Map
(_context==vdcGroupId) - |
+ Returns all the application port profiles which are available to a specific vDC Group.
+ operationId: getApplicationPortProfiles
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/ApplicationPortProfiles'
+ post:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - applicationPortProfiles
+ summary: Create a user-defined application port profile.
+ operationId: createApplicationPortProfile
+ consumes:
+ - application/json
+ parameters:
+ - name: applicationPortProfile
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/ApplicationPortProfile'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ applicationPortProfile:
+ parameters:
+ - name: applicationPortProfileId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: applicationPortProfile
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - applicationPortProfile
+ summary: Retrieves a specific user-defined Application Port Profile
+ operationId: getApplicationPortProfile
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/ApplicationPortProfile'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - applicationPortProfile
+ summary: Updates a specific user-defined Application Port Profile
+ operationId: updateApplicationPortProfile
+ consumes:
+ - application/json
+ parameters:
+ - name: applicationPortProfile
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/ApplicationPortProfile'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - applicationPortProfile
+ summary: Deletes a specific user-defined Application Port Profile
+ operationId: deleteApplicationPortProfile
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+ sync:
+ post:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - applicationPortProfiles
+ summary: Sync the application port profiles from the network provider to VCD.
+ description: |
+ Sync the application port profiles from the network provider to VCD. The network provider is required to be specified in the filter context.
+ Context example: (_context==networkProviderId).
+ operationId: syncApplicationPortProfiles
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+definitions:
+ ApplicationPortProfiles:
+ x-vcloud-added-in: "33.0"
+ description: |
+ List of Application Port Profiles.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/ApplicationPortProfile'
+
+ ApplicationPortProfile:
+ x-vcloud-added-in: "33.0"
+ description: |
+ An Application Port Profile object. The application port profile represents a set of ports and protocols that can be used when defining network service rules.
+ type: object
+ allOf:
+ - $ref: "./networking/applicationPortProfiles.yaml#/definitions/NetworkProviderContext"
+ - $ref: './networking/commonObject.yaml#/definitions/NetworkingObjectStatus'
+ - properties:
+ id:
+ type: string
+ description: The id of the Application Port Profile in URN format.
+ name:
+ type: string
+ description: The name of the Application Port Profile.
+ description:
+ type: string
+ scope:
+ $ref: './networking/applicationPortProfiles.yaml#/definitions/ApplicationPortProfileScopeType'
+ description: The scope of the application port profile definition.
+ readOnly: true
+ applicationPorts:
+ description: A list of protocol and ports supported by this application port profile.
+ type: array
+ items:
+ $ref: './networking/applicationPortProfiles.yaml#/definitions/ApplicationPortList'
+ usableForNAT:
+ type: boolean
+ description: |
+ True means that the port profile can be used for NAT configuration. A port profile can be used for NAT if there is only 1 application port
+ with at most 1 destination port.
+ required:
+ - name
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: applicationPortProfile
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ scope:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ usableForNAT:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+
+
+ ApplicationPortList:
+ x-vcloud-added-in: "33.0"
+ description: |
+ A set of ports and the protocol supported by a application port profile.
+ type: object
+ properties:
+ name:
+ description: The display name.
+ type: string
+ protocol:
+ description: The protocol this services applies to.
+ $ref: '#/definitions/ApplicationPortsProtocolType'
+ destinationPorts:
+ description: The set of ports on the destination that the profile applies to. Valid values include single ports and a range of ports.
+ type: array
+ items:
+ type: string
+ x-vcloud-property-annotations:
+ name:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ protocol:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ destinationPorts:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+
+ ApplicationPortProfileScopeType:
+ x-vcloud-added-in: "33.0"
+ description: |
+ The definition scope of an Application Port Profile.
+ SYSTEM profiles are available to all tenants. They are default profiles from the backing networking provider.
+ PROVIDER profiles are available to all tenants. They are defined by the provider at a system level.
+ TENANT profiles are available only to the specific tenant organization. They are defined by the tenant or by a provider on behalf of a tenant.
+ type: string
+ enum:
+ - SYSTEM
+ - PROVIDER
+ - TENANT
+
+ ApplicationPortsProtocolType:
+ x-vcloud-added-in: "33.0"
+ description: |
+ The supported protocols for an application port profile.
+ type: string
+ enum:
+ - TCP
+ - UDP
+ - ICMPv4
+ - ICMPv6
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
+ NetworkProviderContext:
+ description:
+ Describes the network provider context of the network object.
+ type: object
+ properties:
+ orgRef:
+ $ref: "#/definitions/EntityReference"
+ description: |
+ The organization that this object belongs to. This property is required during creation and cannot be updated.
+ contextEntityId:
+ type: string
+ description: |
+ The context under which this object is created. The context can the id of the organization vDC, vDC Group, or network provider.
+ This field is required on object creation and is unset on object reads. This same context ID can be used in the context filter field
+ when querying for the list of objects.
+ networkProviderScope:
+ type: string
+ description: |
+ The network provider scope that this object belongs to. This is a read-only property and is determined by the input context entity ID during object creation.
+ x-vcloud-property-annotations:
+ orgRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ contextEntityId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProviderScope:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
diff --git a/schemas/openapi/src/main/resources/schemas/networking/commonObject.yaml b/schemas/openapi/src/main/resources/schemas/networking/commonObject.yaml
new file mode 100644
index 00000000..d1995183
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/commonObject.yaml
@@ -0,0 +1,239 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2017-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+
+info:
+ title: Common networking schema objects
+ description: Common networking schema objects that are used across different objects
+ version: "1.0"
+
+
+definitions:
+
+ Subnets:
+ description: |
+ List of Subnets of a network
+ type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/Subnet'
+
+ Subnet:
+ description: |
+ A network subnet defined by its gateway,
+ type: object
+ properties:
+ gateway:
+ type: string
+ description: The gateway for the subnet.
+ prefixLength:
+ type: integer
+ description: The prefix length of the subnet.
+ dnsSuffix:
+ type: string
+ description: The DNS suffix that VMs attached to this network will use.
+ dnsServer1:
+ type: string
+ description: The first DNS server that VMs attached to this network will use.
+ dnsServer2:
+ type: string
+ description: The second DNS server that VMs attached to this network will use.
+ ipRanges:
+ $ref: '#/definitions/IpRanges'
+ description: Range of IPs within the subnet that can be used in this network. A VM attached to this network is assigned one of these IPs.
+ enabled:
+ type: boolean
+ default: true
+ description: Indicates whether the external network subnet is currently enabled.
+ totalIpCount:
+ type: integer
+ description: The number of IP addresses defined by the static IP ranges.
+ usedIpCount:
+ type: integer
+ description: The number of IP address used from the static IP ranges.
+ required:
+ - gateway
+ - prefixLength
+ x-vcloud-property-annotations:
+ prefixLength:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ dnsSuffix:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ dnsServer1:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ dnsServer2:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ ipRanges:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ enabled:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ totalIpCount:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ usedIpCount:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ IpRanges:
+ description: |
+ List of IpRange
+ type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/IpRange'
+
+ IpRange:
+ description: |
+ An IpRange
+ type: object
+ properties:
+ startAddress:
+ type: string
+ description: Starting IP address in the range.
+ endAddress:
+ type: string
+ description: Ending IP address in the range.
+
+ Network:
+ description: |
+ A network Object.
+ type: object
+ properties:
+ id:
+ type: string
+ description: The unique ID for the network. This field is read-only.
+ name:
+ type: string
+ description: The name of the network.
+ description:
+ type: string
+ description: The description of the network.
+ subnets:
+ $ref: '#/definitions/Subnets'
+ description: List of subnets configured for the network.
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ BackingRef:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Backing Id for an entity not owned by VCD.
+ type: object
+ properties:
+ id:
+ type: string
+ description: The id/moref of the backing entity.
+ name:
+ type: string
+ description: The name of backing entity.
+
+ ObjectVersion:
+ x-vcloud-added-in: "33.0"
+ description: |
+ This property describes the current version of the entity. To prevent clients from overwriting each other's changes, update operations must include
+ the version which can be obtained by issuing a GET operation. If the version number on an update call is missing, the operation will be rejected. This is only needed
+ on update calls.
+ properties:
+ version:
+ type: integer
+ description: version number for the given entity.
+ required:
+ - version
+ x-vcloud-property-annotations:
+ version:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ NetworkingObjectStatusType:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Represents status type of a networking entity.
+ ALLOW permits traffic to go through the firewall.
+ DROP blocks the traffic at the firewall. No response is sent back to the source.
+ REJECT blocks the traffic at the firewall. A response is sent back to the source.
+ filter=(componentId==urn:vcloud:virtualservice:7d38ad7f-cd93-4501-8c40-6f61650ccda0;
+ metric==l4_server.avg_total_rtt;metric==l7_server.avg_application_response_time;step==500;limit==100)
+ Supported filters are:
+ filter=(metric==l4_server.avg_total_rtt;metric==l7_server.avg_application_response_time) -
+ This is required. Supported metrics can be found at the analytics/supportedMetrics endpoint.
+ 192.168.255.1/25. Default cidr can be configured. This field cannot be updated.
+ loadBalancerCloudRef:
+ $ref: '#/definitions/EntityReference'
+ description: Reference to the Load Balancer Cloud. This cloud is used by Edge Gateway's Load Balancer Virtual Services and Pools.
+ licenseType:
+ type: string
+ description: |
+ The license type of the backing Load Balancer Cloud.
+ Special values: 0 represents 'Immediate', -1 represents 'Infinite'.
+ type: integer
+ format: int32
+ minimum: -1
+ maximum: 7200
+ default: 1
+ algorithm:
+ type: string
+ description: |
+ The algorithm for choosing a member within the pool's list of available members for each new connection.
+ Default value is "LEAST_CONNECTIONS". Supported algorithms are:
+ SNAT - This translates an internal IP to an external IP and is used for outbound traffic.
+ DNAT - This translates the external IP to an internal IP and is used for inbound traffic.
+ NO_SNAT - No internal IP translation takes place.
+ NO_DNAT - No external IP translation takes place.
+ REFLEXIVE - Also known as Stateless NAT. This translates an internal IP to an external IP and vice versa.
+ The number of internal addresses should be exactly the same as that of external addresses.
+ MATCH_INTERNAL_ADDRESS indicates the firewall will be applied to internal address of a NAT rule. For SNAT, the internal address is
+ the original source address before NAT is done. For DNAT, the internal address is the translated destination address after NAT is done.
+ For REFLEXIVE, to egress traffic, the internal address is the original source address before NAT is done; to ingress traffic, the internal address is
+ the translated destination address after NAT is done.
+ MATCH_EXTERNAL_ADDRESS indicates the firewall will be applied to external address of a NAT rule. For SNAT, the external address is
+ the translated source address after NAT is done. For DNAT, the external address is the original destination address before NAT is done.
+ For REFLEXIVE, to egress traffic, the external address is the translated internal address after NAT is done; to ingress traffic, the external address is
+ the original destination address before NAT is done.
+ BYPASS firewall stage will be skipped.
+ (_context==includeAccessible)
+ can be used to get all the edge gateways which are available to an Org vDC including the gateways which are owned by
+ datacenter groups but available to Org vDC.
+ operationId: getAllEdgeGateways
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EdgeGateways'
+
+ edgeGateway:
+
+ parameters:
+ - name: gatewayId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: gateway
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - edgeGateway
+ summary: Retrieves a specific Edge Gateway
+ operationId: getEdgeGateway
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EdgeGateway'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - edgeGateway
+ summary: Updates a specific Edge Gateway
+ description: |
+ Update a specific Edge Gateway. Only NSX-T Edge Gateways can be created with this endpoint.
+ operationId: updateEdgeGateway
+ consumes:
+ - application/json
+ parameters:
+ - name: gateway
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/EdgeGateway'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - edgeGateway
+ summary: Deletes a specific Edge Gateway
+ description: |
+ Deletes a specific Edge Gateway. Only NSX-T Edge Gateways can be deleted with this endpoint.
+ operationId: deleteEdgeGateway
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ usedIpAddresses:
+ parameters:
+ - name: gatewayId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: gateway
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - edgeGateway
+ summary: Retrieve the list of IP addresses which are being used by the edge gateway.
+ description: |
+ Get all the IP Addresses which are being used by the Edge Gateway such as the primary IP or an IP used by a given
+ Edge Service, such as NAT. These IP addresses are a subset of the IPs allocated from the connected external networks.
+ If the IP is being consumed by any of the configured services on the edge gateway then name of service will be returned.
+ operationId: getUsedIpAddresses
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/GatewayUsedIpAddresses'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ EdgeGateways:
+ x-vcloud-added-in: "32.0"
+ description: |
+ List of edge gateways
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ description: A list of EdgeGateways.
+ items:
+ $ref: '#/definitions/EdgeGateway'
+
+ EdgeGateway:
+ x-vcloud-added-in: "32.0"
+ description: |
+ An edge gateway object
+ allOf:
+ - $ref: './networking/commonObject.yaml#/definitions/NetworkingObjectStatus'
+ - type: object
+ properties:
+ id:
+ type: string
+ description: The unique identifier of the edge gateway.
+ name:
+ type: string
+ description: The name of the edge gateway.
+ description:
+ type: string
+ description: The description of the edge gateway(optional).
+ edgeGatewayUplinks:
+ description: The uplink connections for the edge gateway.
+ type: array
+ items:
+ $ref: './networking/edgeGateways.yaml#/definitions/EdgeGatewayUplink'
+ distributedRoutingEnabled:
+ type: boolean
+ default: false
+ description: A flag indicating whether distributed routing is enabled or not. The default is false.
+ orgVdcNetworkCount:
+ type: integer
+ description: The number of Org vDC networks connected to the gateway.
+ gatewayBacking:
+ $ref: './networking/edgeGateways.yaml#/definitions/EdgeGatewayBacking'
+ description: The backing details of the edge gateway; only required if importing an NSX-T router.
+ orgVdc:
+ $ref: '#/definitions/EntityReference'
+ description: |
+ The organization vDC which the gateway belongs to. Property is deprecated. Please use ownerRef.
+ ownerRef:
+ $ref: '#/definitions/EntityReference'
+ description: |
+ The organization vDC or vDC Group that this edge gateway belongs to. If the ownerRef is set to a vDC Group, this gateway
+ will be available across all the participating Organization vDCs in the vDC Group.
+ orgRef:
+ $ref: '#/definitions/EntityReference'
+ description: The organization to which the gateway belongs.
+ serviceNetworkDefinition:
+ type: string
+ description: |
+ The network definition in CDIR form that DNS and DHCP service on an NSX-T edge will run on. The subnet prefix length must be 27.
+ This property applies to creating or importing an NSX-T Edge. This is not supported for VMC.
+ If nothing is set, the default is 192.168.255.225/27. The DHCP listener IP network is on 192.168.255.225/30.
+ The DNS listener IP network is on 192.168.255.228/32. This field cannot be updated.
+ edgeClusterConfig:
+ $ref: './networking/edgeGateways.yaml#/definitions/GatewayEdgeClusterConfig'
+ description: |
+ Edge Cluster Configuration for the Edge Gateway. Can be specified if a gateway needs to be placed on a specific set of Edge Clusters.
+ For NSX-T Edges, user should specify the ID of the NSX-T edge cluster as the value of primaryEdgeCluster's backingId. The gateway
+ defaults to the Edge Cluster of the connected External Network's backing Tier-0 router, if nothing is specified. The value of secondaryEdgeCluster
+ will be set to NULL for NSX-T edge gateways.
+ For NSX-V Edges, this is read-only and the legacy API must be used for edge specific placement.
+ required:
+ - name
+ - edgeGatewayUplinks
+ - orgVdc
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: gateway
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ edgeGatewayUplinks:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ gatewayBacking:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgVdc:
+ x-vcloud-deprecated-in: "35.0"
+ x-vcloud-deprecated-alternative: ownerRef
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ ownerRef:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ distributedRoutingEnabled:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgRef:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgVdcNetworkCount:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ serviceNetworkDefinition:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ edgeClusterConfig:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EdgeGatewayUplink:
+ x-vcloud-added-in: "32.0"
+ description: |
+ The uplink (i.e. external network) that the edge gateway is connected to. This also contains the external network IPs that are allocated to the edge.
+ type: object
+ properties:
+ uplinkId:
+ type: string
+ description: The identifier of the external network this edge gateway is connected to.
+ uplinkName:
+ type: string
+ description: The name of the external network this edge gateway is connected to.
+ subnets:
+ $ref: "#/definitions/EdgeGatewaySubnets"
+ description: |
+ Set of subnets this edge will have access to.
+ connected:
+ type: boolean
+ description: Whether or not the gateway is connected to this uplink. This value defaults to true if it is not set. When filtering by this field,
+ if the filter is false, all gateways that have 0 connected uplinks will be returned, while if it is true, all gateways with at least one connected
+ uplink will be returned.
+ default: true
+ quickAddAllocatedIpCount:
+ type: integer
+ description: If set on create or update api calls, the specified number of IP addresses will be additionally allocated for this uplink.
+ IPs will be allocated from multiple subnets if needed.
+ dedicated:
+ type: boolean
+ description: If set to true, then the associated external network is exclusively used by this edge gateway.
+ default: false
+ vrfLiteBacked:
+ type: boolean
+ description: Whether the associated external network is backed by a NSX-T VRF-Lite Tier-0.
+ x-vcloud-property-annotations:
+ uplinkId:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ uplinkName:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ subnets:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ connected:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ quickAddAllocatedIpCount:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ dedicated:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ vrfLiteBacked:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EdgeGatewayType:
+ x-vcloud-added-in: "32.0"
+ description: |
+ The type of the edge gateway.
+ type: object
+ enum:
+ - NSXV_BACKED
+ - NSXT_BACKED
+ - NSXT_IMPORTED
+
+ EdgeGatewayBacking:
+ x-vcloud-added-in: "32.0"
+ description: |
+ The backing details of the edge gateway
+ type: object
+ properties:
+ backingId:
+ type: string
+ description: The identifier of the edge gateways backing router.
+ gatewayType:
+ $ref: '#/definitions/EdgeGatewayType'
+ description: The type of the gateway. Describes if this is an NSX-T edge gateway or an NSX-V edge gateway.
+ networkProvider:
+ $ref: '#/definitions/EntityReference'
+ description: The backing network provider, either NSX-T or NSX-V.
+ x-vcloud-property-annotations:
+ backingId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-restricted: Visible to provider users only
+ gatewayType:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProvider:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-restricted: Visible to provider users only
+
+ GatewayEdgeClusterConfig:
+ x-vcloud-added-in: "34.0"
+ description: |
+ Represents the Edge Cluster Configuration for a given Edge Gateway.
+ type: object
+ properties:
+ primaryEdgeCluster:
+ $ref: '#/definitions/GatewayEdgeClusterReference'
+ description: |
+ This represents the Primary Edge Cluster used for the gateway.
+ For NSX-T Edges, this means the Edge Cluster the Tier 1 SR resides on. The user should
+ specify the ID of the NSX-T edge cluster as the value of primaryEdgeCluster's backingId.
+ For NSX-V Edges, this means the primary appliance for the gateway.
+ secondaryEdgeCluster:
+ $ref: '#/definitions/GatewayEdgeClusterReference'
+ description: |
+ This represents the Secondary Edge Cluster used for the gateway.
+ It is only applicable for NSX-V Edges when High Availability is enabled. If HA
+ is enabled and no secondary edge cluster is specified, both appliances will be
+ deployed on the primary edge cluster. If there is a specific secondary edge cluster,
+ the standby/secondary appliance will be deployed on the secondary edge cluster.
+ For NSX-T Edges, the value of secondaryEdgeCluster should be set to NULL.
+ required:
+ - primaryEdgeCluster
+ x-vcloud-property-annotations:
+ primaryEdgeCluster:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ secondaryEdgeCluster:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ GatewayEdgeClusterReference:
+ x-vcloud-added-in: "34.0"
+ description: |
+ This represents the reference to an Edge Cluster used for the gateway.
+ type: object
+ properties:
+ edgeClusterRef:
+ $ref: '#/definitions/EntityReference'
+ description: The reference to VCD Edge Cluster.
+ backingId:
+ type: string
+ description: |
+ The Id of the edge cluster in NSX-T manager. The user should
+ specify the id of NSX-T edge cluster during edge gateway create/update.
+ VCD will automatically create a corresponding VCD Edge cluster object
+ referencing the specified NSX-T edge cluster.
+ For NSX-V Edges, this is set to NULL.
+ x-vcloud-property-annotations:
+ edgeClusterRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ backingId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EdgeGatewaySubnets:
+ x-vcloud-added-in: "32.0"
+ description: |
+ List of Subnets of an edge gateway
+ type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/EdgeGatewaySubnet'
+
+ EdgeGatewaySubnet:
+ x-vcloud-added-in: "32.0"
+ description: |
+ Subnet for edge gateway that contains the IPs from the external network that are allocated to the edge.
+ allOf:
+ - $ref: './networking/commonObject.yaml#/definitions/Subnet'
+ - type: object
+ properties:
+ primaryIp:
+ type: string
+ description: |
+ The primary IP address allocated for this subnet. If not specified, this IP is auto-allocated. This IP belongs to the external network
+ and can be used for system-configured NAT rules such as DNS forwarder configuration.
+ autoAllocateIpRanges:
+ type: boolean
+ default: false
+ description: Used for create and update api calls. If set to true, IP Ranges are automatically generated based on totalIpCount.
+ x-vcloud-property-annotations:
+ primaryIp:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ autoAllocateIpRanges:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ GatewayUsedIpAddresses:
+ x-vcloud-added-in: "33.0"
+ description: |
+ List of IP addresses used by an edge gateway.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/edgeGateways.yaml#/definitions/GatewayUsedIpAddress'
+
+ GatewayUsedIpAddress:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Describes an IP address currently be used by the edge gateway. The IP belongs to the IPs allocated to the edge.
+ type: object
+ properties:
+ networkRef:
+ $ref: '#/definitions/EntityReference'
+ description: The external network that this IP Address belongs to.
+ ipAddress:
+ type: string
+ description: The IP address in used.
+ category:
+ type: string
+ description: The catagory that an IP can be used for.
+ $ref: '#/definitions/GatewayUsedIpAddressCategory'
+ x-vcloud-property-annotations:
+ networkRef:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ ipAddress:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ category:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+
+ GatewayUsedIpAddressCategory:
+ x-vcloud-added-in: "33.0"
+ description: |
+ The categories that an IP can be used for.
+ type: object
+ enum:
+ - SNAT
+ - DNAT
+ - Load_Balancer
+ - IPsec_VPN
+ - SSL_VPN
+ - L2_VPN
+ - PRIMARY_IP
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
diff --git a/schemas/openapi/src/main/resources/schemas/networking/externalNetworks.yaml b/schemas/openapi/src/main/resources/schemas/networking/externalNetworks.yaml
new file mode 100644
index 00000000..83421af6
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/externalNetworks.yaml
@@ -0,0 +1,486 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2018-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ API for management of external networks. An external network provides the
+ interface to the Internet for virtual machines connected to external
+ organization vDC networks.
+ version: "1.0"
+ title: External Networks API
+
+paths:
+
+ externalNetworks:
+ get:
+ x-vcloud-added-in: "32.0"
+ x-vcloud-multisite: true
+ tags:
+ - externalNetworks
+ summary: Get all external networks.
+ description: |
+ Get all external networks. Results can be filtered by id, name,
+ backing type (networkBackings.values.backingType) and context (_context).
+ Supported contexts are:
+ Provider vDC ID (_context==providerVdcId) - |
+ Returns all the external networks which are available to a specific Provider vDC.
+ Org vDC ID (_context==orgVdcId) - |
+ Returns all the external networks which are available to a specific Org vDC.
+ vCenter ID And Resource Pool Moref (_context==vCenterId;_context==rpMoref) - |
+ Returns all the external networks accessible to a given vCenter resource pool.
+ Org vDC ID And Edge Deployment Mode (_context==orgVdcId;_context==anEdgeDeploymentMode) - |
+ Returns all the external networks to which an edge gateway can connect. Edge Deployment Mode can be
+ 'standaloneEdgeDeployment' or 'haEdgeDeployment'. Deployment mode specifies whether to use both primary
+ edge cluster and secondary edge cluster or just primary edge cluster to determine external network accessibility.
+ Edge clusters are determined via vDC Network Profile for input Org vDC.
+ Org vDC ID And Dedicatable External Networks (_context==orgVdcId;_context==dedicatable) - |
+ Dedicatable only shows external networks that have no connected Edge Gateways.
+ operationId: getAllExternalNetworks
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/ExternalNetworks'
+
+ post:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - externalNetwork
+ summary: Create an external network
+ operationId: createExternalNetwork
+ consumes:
+ - application/json
+ parameters:
+ - name: externalNetwork
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/ExternalNetwork'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ externalNetwork:
+ parameters:
+ - name: externalNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - externalNetwork
+ summary: Retrieves a specific external network.
+ operationId: getExternalNetwork
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/ExternalNetwork'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - externalNetwork
+ summary: Updates a specific external network.
+ operationId: updateExternalNetwork
+ consumes:
+ - application/json
+ parameters:
+ - name: externalNetwork
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/ExternalNetwork'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - externalNetwork
+ summary: Deletes a specific external network.
+ operationId: deleteExternalNetwork
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ usedIpAddresses:
+ parameters:
+ - name: externalNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - externalNetwork
+ summary: Retrieve the list of IP addresses which are being used from the network.
+ description: |
+ Get all the used IPs for a given external network. This returns all the IP addresses of network
+ which are being used by a vApp VM or by an edge gateway connected to this external network.
+ Results can be filtered by IP address.
+ operationId: getUsedIpAddresses
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UsedIpAddresses'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ availableIpAddresses:
+ parameters:
+ - name: externalNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - externalNetwork
+ summary: Retrieve the list of IP addresses available for use on the network.
+ description: |
+ Get all the available IPs for a given external network.
+ operationId: getAvailableIpAddresses
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/AvailableIpPoolSubnets'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ ExternalNetworks:
+ x-vcloud-added-in: "32.0"
+ description: |
+ List of External Networks
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/ExternalNetwork'
+
+ ExternalNetwork:
+ x-vcloud-added-in: "32.0"
+ description: |
+ An external network.
+ allOf:
+ - $ref: './networking/commonObject.yaml#/definitions/Network'
+ - $ref: './networking/commonObject.yaml#/definitions/NetworkingObjectStatus'
+ - type: object
+ properties:
+ networkBackings:
+ $ref: './networking/externalNetworks.yaml#/definitions/ExternalNetworkBackings'
+ description: |
+ Backings for this external network. Describes if this external network
+ is backed by port groups, vCenter standard switch or an NSX-T Tier-0 router.
+ totalIpCount:
+ type: integer
+ description: The number of IP addresses defined by the static ip pools. If the network contains any IpV6 subnets, the total ip count will be null.
+ usedIpCount:
+ type: integer
+ description: The number of IP address used from the static ip pools.
+ dedicatedOrg:
+ $ref: '#/definitions/EntityReference'
+ description: The Organization that this external network is dedicated to. This is null if this is not a dedicated external network.
+ dedicatedEdgeGateway:
+ $ref: '#/definitions/EntityReference'
+ description: The Edge Gateway that this external network is dedicated to. This is null if this is not a dedicated external network.
+ x-vcloud-property-annotations:
+ networkBackings:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ totalIpCount:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ usedIpCount:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ dedicatedOrg:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ dedicatedEdgeGateway:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+
+ ExternalNetworkBackingType:
+ x-vcloud-added-in: "32.0"
+ x-vcloud-deprecated-in: "34.0"
+ description: |
+ The type of the external network backing.
+ type: object
+ enum:
+ - PORTGROUP
+ - DV_PORTGROUP
+ - NSXT_TIER0
+ - UNKNOWN
+
+ ExternalNetworkBackings:
+ x-vcloud-added-in: "32.0"
+ description: |
+ List of External Network backings.
+ type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/ExternalNetworkBacking'
+
+ ExternalNetworkBacking:
+ x-vcloud-added-in: "32.0"
+ description: |
+ Information about an external network backing.
+ type: object
+ properties:
+ backingId:
+ type: string
+ description: Unique identifier for the network backing in NSX/vCenter.
+ backingType:
+ $ref: '#/definitions/ExternalNetworkBackingType'
+ description:
+ Type of network backing. This is deprecated in favor of string based enums going forward.
+ backingTypeValue:
+ type: string
+ description: |
+ Backing type for the network.
+ (_context==networkId) -
+ Returns all the firewall groups which the specified network is a member of.
+ (_context==edgeGatewayId) -
+ Returns all the firewall groups which are available to the specific edge gateway.
+ (_context==networkProviderId) -
+ Returns all the firewall groups which are available under a specific network provider. This context requires system admin privilege.
+ IP_SET should be used when using particular IP Addresses of VMs, Networks, etc.
+ STATIC_MEMBERS should be used when specifying exact members such as a particular Org vDC Network.
+ VM_CRITERIA should be used when specifying some dynamic criteria that matches a VM member such as VM name or Operating System name.
+ This type is valid only if the firewall group is scoped to a vDC Group.
+ IP_SET should be used when using particular IP Addresses of VMs, Networks, etc.
+ SECURITY_GROUP should be used when specifying exact members such as a particular Org vDC Network.
+ (_context==gatewayId) - |
+ Returns all Load Balancer Service Engine Groups that are accessible to the gateway.
+ Assignable Gateway ID (_context=gatewayId;_context==assignable) - |
+ Returns all Load Balancer Service Engine Groups that are assignable to the gateway.
+ This filters out any Load Balancer Service Engine groups that are already assigned to the gateway or
+ assigned to another gateway if the reservation type is 'DEDICATED'.
+ operationId: getServiceEngineGroups
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/LoadBalancerServiceEngineGroups'
+
+
+ loadBalancerServiceEngineGroup:
+ parameters:
+ - name: loadBalancerServiceEngineGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: serviceEngineGroup
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroup
+ summary: Get Load Balancer Service Engine Group.
+ description: |
+ Retrieves a specific Load Balancer Service Engine Group.
+ operationId: getServiceEngineGroup
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/LoadBalancerServiceEngineGroup"
+
+ put:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroup
+ summary: Update specified Load Balancer Service Engine Group.
+ description: |
+ Update a Load Balancer Service Engine Group.
+ operationId: updateServiceEngineGroup
+ consumes:
+ - application/json
+ parameters:
+ - name: loadBalancerServiceEngineGroup
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/LoadBalancerServiceEngineGroup"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ delete:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroup
+ summary: Delete the specified Load Balancer Service Engine Group.
+ description: |
+ Delete a Load Balancer Service Engine Group.
+ operationId: deleteServiceEngineGroup
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ loadBalancerServiceEngineGroupSync:
+ parameters:
+ - name: loadBalancerServiceEngineGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: serviceEngineGroup
+
+ post:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroup
+ summary: Sync Load Balancer Service Engine Group.
+ description: |
+ Syncs a specified Load Balancer Service Engine Group. Requests the HA mode and the maximum number of supported
+ Virtual Services for this Service Engine Group from the Load Balancer, and updates vCD's local record of these
+ properties.
+ operationId: syncServiceEngineGroup
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ assignments:
+ post:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroupAssignments
+ summary: Create a new Load Balancer Service Engine Group Assignment.
+ description: |
+ Create a new Load Balancer Service Engine Group Assignment. The assignment links a Load Balancer Service Engine Group
+ with an Edge Gateway to provide load balancing resources to the Edge Gateway.
+ operationId: createServiceEngineGroupAssignment
+ consumes:
+ - application/json
+ parameters:
+ - name: assignment
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/LoadBalancerServiceEngineGroupAssignment'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroupAssignments
+ summary: Get the assignments for a Load Balancer Service Engine Group.
+ description: |
+ Retrieves the service engine group assignments for the Load Balancer Service Engine Group.
+ operationId: getServiceEngineGroupAssignments
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/LoadBalancerServiceEngineGroupAssignments"
+
+ assignment:
+ parameters:
+ - name: assignmentId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: serviceEngineGroupAssignment
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroupAssignment
+ summary: Get a Load Balancer Service Engine Group Assignment.
+ description: |
+ Retrieves a specific Load Balancer Service Engine Group Assignment.
+ operationId: getServiceEngineGroupAssignment
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/LoadBalancerServiceEngineGroupAssignment"
+
+ put:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroupAssignment
+ summary: Update a Load Balancer Service Engine Group Assignment.
+ description: |
+ Update a Load Balancer Service Engine Group Assignment.
+ Updates are not allowed if the associated Load Balancer Service Engine Group has reservation type 'DEDICATED'.
+ operationId: updateServiceEngineGroupAssignment
+ consumes:
+ - application/json
+ parameters:
+ - name: assignment
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/LoadBalancerServiceEngineGroupAssignment"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ delete:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - loadBalancerServiceEngineGroupAssignment
+ summary: Delete the specified Load Balancer Service Engine Group Assignment.
+ description: |
+ Delete a Load Balancer Service Engine Group Assignment. The Edge Gateway will no longer be able to use
+ the Load Balancer Service Engine Group for load balancing resources.
+ operationId: deleteServiceEngineGroupAssignment
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+
+definitions:
+ LoadBalancerServiceEngineGroups:
+ x-vcloud-added-in: "35.0"
+ description: |
+ List of Load Balancer Service Engine Groups.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/LoadBalancerServiceEngineGroup'
+
+ LoadBalancerServiceEngineGroup:
+ x-vcloud-added-in: "35.0"
+ description: |
+ A Load Balancer Service Engine Group.
+ allOf:
+ - $ref: './networking/commonObject.yaml#/definitions/NetworkingObjectStatus'
+ - type: object
+ properties:
+ id:
+ type: string
+ description: The identifier of the Load Balancer Service Engine Groups in URN format
+ example: urn:vcloud:serviceEngineGroup:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ name:
+ type: string
+ description: |
+ The name of the Load Balancer Service Engine Group.
+ description:
+ type: string
+ description: Description of the Load Balancer Service Engine Group.
+ serviceEngineGroupBacking:
+ $ref: './networking/loadBalancerServiceEngineGroups.yaml#/definitions/LoadBalancerServiceEngineGroupBacking'
+ description: |
+ The backing that uniquely identifies a Load Balancer Service Engine Group configured within a Load Balancer Cloud.
+ haMode:
+ type: string
+ description: |
+ The service engine group's High Availability Mode.
+ (_context==orgVdcId) -
+ Returns all the network context profiles which are available to a specific Org vDC.
+ (_context==vdcGroupId) - |
+ Returns all the network context profiles which are available to a specific vDC Group.
+ SYSTEM profiles are available to all tenants. They are default profiles from the backing networking provider.
+ PROVIDER profiles are available to all tenants. They are defined by the provider at a system level.
+ TENANT profiles are available only to the specific tenant organization. They are defined by the tenant or by a provider on behalf of a tenant.
+ (_context==providerVdcId) -
+ Returns all the network pools which are available to a specific Provider vDC.
+ (_context==orgVdcId) -
+ Returns all the network pools which are available to a specific Org vDC.
+ (managingOwnerRef.id==vcId) + Resource Pool Moref (_context==moref) -
+ Returns all the network pools which are related to a specific Resoure Pool.
+ (_context==includeAccessible)
+ can be used to get all the networks which are available to an Org vDC. In order to return only those networks which
+ are eligible as an uplink to a vApp network, add an additional filter, (vAppUplinkEligible==true). This
+ filter must be used in conjunction with either the "orgVdc.id" filter, or the "ownerRef.id" filter with a value
+ corresponding to an Org vDC.
+ operationId: getAllVdcNetworks
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./networking/orgVdcNetworks.yaml#/definitions/QueryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/VdcNetworks'
+
+ post:
+ x-vcloud-added-in: "31.0"
+ tags:
+ - orgVdcNetworks
+ summary: Create an organization vDC network.
+ operationId: createNetwork
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcNetwork
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcNetwork'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ orgVdcNetwork:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "31.0"
+ tags:
+ - orgVdcNetwork
+ summary: Retrieves a specific Org vDC network.
+ operationId: getOrgVdcNetwork
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/VdcNetwork'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetwork
+ summary: Updates a specific Org vDC network.
+ operationId: updateNetwork
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcNetwork
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcNetwork'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetwork
+ summary: Deletes a specific Org vDC network.
+ operationId: deleteNetwork
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ reset:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ post:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetwork
+ summary: Reset a specific isolated Org vDC network.
+ description: |
+ Reset a specific isolated Org vDC network. Reset involves redeploying the internal edge gateway of the isolated Org vDC Network if present.
+ An error is returned if the network is not isolated.
+ operationId: resetNetwork
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ syncSyslog:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ post:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetwork
+ summary: Synchronize syslog server settings for a Org vDC network.
+ description: |
+ When the IP addresses of the primary or secondary syslog server are updated, this api can synchronize syslog server settings
+ of an Isolated Org VDC Network against the vCD Syslog Settings. An error is returned if network is a direct network.
+ operationId: syncSyslogSettingsOfNetwork
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ sync:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ post:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - orgVdcNetwork
+ summary: Sync/repair a specific Org vDC network.
+ description: |
+ Sync/repair the vDC Group Cross vDC network.
+ An example usage is to realize a network in the participating vDC which was unreachable
+ when the network was created. This operation is only allowed for VIRTUAL_WIRE
+ backed cross vDC networks.
+ operationId: syncOrgVdcNetwork
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ allocatedIpAddresses:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetwork
+ summary: Retrieve the list of IP addresses allocated to the network.
+ description: |
+ Get all the allocated IPs for a given Org vDC network. This returns all the
+ IP addresses of network which are allocated to a vApp VM, an edge gateway interface and the
+ addresses being used in a NAT routed environment.
+ Results can be filtered by IP address.
+ operationId: getAllocatedIpAddresses
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/AllocatedIpAddresses'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ secondaryAllocatedIpAddresses:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "36.0"
+ tags:
+ - orgVdcNetwork
+ summary: Retrieve the list of secondary IP addresses allocated to the network, if the network is a dual stack network.
+ description: |
+ Get all the secondary allocated IPs for a given Org vDC network. This returns all the
+ IP addresses of network which are allocated to a vApp VM, an edge gateway interface, from
+ the IPv6 subnet of the Org vDC network.
+ Results can be filtered by IP address.
+ operationId: getSecondaryAllocatedIpAddresses
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/AllocatedIpAddresses'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ dhcp:
+ parameters:
+ - name: vdcNetworkId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetworkDhcp
+ summary: Retrieves Dhcp configuration of a specific Org vDC network.
+ operationId: getNetworkDhcpConfig
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/VdcNetworkDhcpConfig'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetworkDhcp
+ summary: Updates Dhcp configuration of a specific Org vDC network.
+ operationId: updateNetworkDhcpConfig
+ consumes:
+ - application/json
+ parameters:
+ - name: dhcpConfig
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcNetworkDhcpConfig'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - orgVdcNetworkDhcp
+ summary: Removes Dhcp configuration on a specific Org vDC network.
+ operationId: deleteNetworkDhcpConfig
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ OrgVdcNetworkAdditionalProperties:
+ x-vcloud-added-in: "36.0"
+ description: |
+ Addition information about an Org VDC Network
+ type: object
+ properties:
+ overlayId:
+ type: integer
+ format: int32
+ description: Overlay Id of the virtual wire backing this network.
+ vAppUplinkEligible:
+ type: boolean
+ description: Whether or not this network is eligible as an uplink to a vApp network
+ x-vcloud-property-annotations:
+ overlayId:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ vAppUplinkEligible:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ - constraint: NonSearchable
+
+ VdcNetworks:
+ x-vcloud-added-in: "31.0"
+ description: |
+ List of Org vDC networks
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/VdcNetwork'
+
+ VdcNetwork:
+ x-vcloud-added-in: "31.0"
+ description: |
+ An organization vDC network.
+ allOf:
+ - $ref: './networking/commonObject.yaml#/definitions/Network'
+ - type: object
+ properties:
+ backingNetworkId:
+ type: string
+ description: The NSX id of the backing network.
+ backingNetworkType:
+ $ref: './networking/orgVdcNetworks.yaml#/definitions/BackingNetworkType'
+ description: The object type of the backing network.
+ parentNetworkId:
+ $ref: '#/definitions/EntityReference'
+ description: The parent network if the network is a direct network, otherwise it will be null.
+ networkType:
+ $ref: './networking/orgVdcNetworks.yaml#/definitions/VdcNetworkFenceType'
+ description: |
+ The type of network. Changing the network type allows converting between an isolated and routed network.
+ Note that the "connection" field must also be set if converting from isolated to routed network.
+ orgVdc:
+ $ref: '#/definitions/EntityReference'
+ description: |
+ The organization vDC the network belongs to. This should be unset if the network is owned by a vDC Group.
+ For API version 35.0 and above, this field will be treated as read only. Please use ownerRef for new network creation.
+ ownerRef:
+ $ref: '#/definitions/EntityReference'
+ description: |
+ The org vDC or vDC Group that this network belongs to. If the ownerRef is set to a vDC Group, this network
+ will be available across all the vDCs in the vDC Group. If the vDC Group is backed by a NSX-V network provider,
+ the org vDC network is automatically connected to the distributed router associated with the vDC Group and
+ the "connection" field does not need to be set. For API version 35.0 and above, this field should be set for
+ network creation.
+ orgVdcIsNsxTBacked:
+ description: For an Org vDC network, whether the vDC is backed by NSX-T.
+ type: boolean
+ default: false
+ orgRef:
+ $ref: '#/definitions/EntityReference'
+ description: The organization to which the network belongs.
+ connection:
+ $ref: './networking/orgVdcNetworks.yaml#/definitions/RouterConnection'
+ description: |
+ The edge gateway that the network is attached to.
+ isDefaultNetwork:
+ type: boolean
+ description: |
+ Deprecated unused field, this property will be removed in future release.
+ shared:
+ type: boolean
+ description: Whether this network is shared with other organization vDCs.
+ enableDualSubnetNetwork:
+ description: Whether or not this network will support two subnets
+ type: boolean
+ default: false
+ status:
+ $ref: './networking/orgVdcNetworks.yaml#/definitions/OrgVdcNetworkStatus'
+ description: |
+ Description of the network's status.
+ readOnly: true
+ lastTaskFailureMessage:
+ type: string
+ description: |
+ Brief failure message if the last configuration task failed.
+ Deprecated in Api 33.0, this property will be removed in next release.
+ readOnly: true
+ guestVlanTaggingAllowed:
+ type: boolean
+ description: Whether guest VLAN tagging is allowed.
+ retainNicResources:
+ type: boolean
+ description: Whether network resources such as IP/MAC Addresses are to be retained.
+ crossVdcNetworkId:
+ type: string
+ description: The id of the cross vdc network if this is a stretched network, otherwise it will be null.
+ readOnly: true
+ crossVdcNetworkLocationId:
+ type: string
+ description: The id of the org from which this network can be managed if this is a stretched network, otherwise it will be null.
+ readOnly: true
+ overlayId:
+ type: integer
+ description: |
+ Overlay connectivity ID for this Network. This field is used on creation during POST only and will not be displayed on an object returned through GET or PUT.
+ format: int32
+ totalIpCount:
+ type: integer
+ description: The number of IP addresses defined by the static ip pools. If the network contains any IpV6 subnets, the total ip count will be null.
+ readOnly: true
+ usedIpCount:
+ type: integer
+ description: The number of IP address used from the static ip pools.
+ readOnly: true
+ routeAdvertised:
+ type: boolean
+ description: |
+ Whether this network is advertised so that it can be routed out to the external networks. This applies only to
+ network backed by NSX-T. Value will be unset if route advertisement is not applicable.
+ readOnly: true
+ securityGroups:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+ description: |
+ The list of firewall groups of type SECURITY_GROUP/STATIC_MEMBERS that are assigned to the Org VDC Network. These groups can then be used
+ in firewall rules to protect the Org VDC Network and allow/deny traffic.
+ x-vcloud-property-annotations:
+ backingNetworkId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-restricted: Visible to provider users only
+ backingNetworkType:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkType:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgVdc:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ orgVdcIsNsxTBacked:
+ x-vcloud-added-in: "36.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-restricted: Visible to provider users only
+ orgRef:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ ownerRef:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ connection:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ isDefaultNetwork:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ lastTaskFailureMessage:
+ x-vcloud-deprecated-in: "33.0"
+ x-vcloud-deprecated-alternative: |
+ Please use VCD Task API to monitor status of last task.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ guestVlanTaggingAllowed:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ retainNicResources:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ crossVdcNetworkId:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ crossVdcNetworkLocationId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ overlayId:
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: Visible to provider users only
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ totalIpCount:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ usedIpCount:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ routeAdvertised:
+ x-vcloud-added-in: "34.0"
+ securityGroups:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ enableDualSubnetNetwork:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-cross-references:
+ - cross-reference:
+ referenced-type: './networking/orgVdcNetworks.yaml#/definitions/OrgVdcNetworkAdditionalProperties'
+ referenced-property: vAppUplinkEligible
+ alias: vAppUplinkEligible
+ description: |
+ A filter to look up a list of networks that are eligible as an uplink to a vApp
+ Example usage:
+ filter?vAppUplinkEligible==true
+
+ RouterConnection:
+ x-vcloud-added-in: "31.0"
+ description: |
+ Describes the connection between a routed network and an edge gateway. This must be set if converting from an isolated to a routed network.
+ type: object
+ properties:
+ routerRef:
+ $ref: '#/definitions/EntityReference'
+ description: The edge gateway that this network is attached to.
+ connectionType:
+ $ref: '#/definitions/VdcNetworkConnectionType'
+ description: |
+ How the network is connected to the edge gateway. This field is updatable to allow conversions between different types.
+ If owner is a VDC group that is backed by a NSX-V network provider, this field does not need to be set. The organization
+ VDC network will be automatically connected to the distributed router associated with the VDC group.
+ connected:
+ type: boolean
+ default: true
+ description: Whether network is marked as connected in NSX.
+ x-vcloud-property-annotations:
+ connected:
+ x-vcloud-added-in: "33.0"
+
+ VdcNetworkDhcpConfig:
+ x-vcloud-added-in: "32.0"
+ description: |
+ Configuration for the DHCP service that runs for the network. In order to use DHCPv6 in NSX-T, the network must be configured in EDGE mode, the network must be
+ attached to a router, and the router must have a SLAAC profile configured with DHCPv6 mode.
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ description: Whether the DHCP service is currently enabled on network.
+ default: true
+ leaseTime:
+ type: integer
+ description: |
+ The amount of time in milliseconds of how long a DHCP IP will be leased out for. The minimum is 60ms while the maximum is 4294967295ms, which is
+ roughly 49 days.
+ default: 86400
+ format: int64
+ dhcpPools:
+ type: array
+ items:
+ $ref: '#/definitions/VdcNetworkDhcpPool'
+ description: Range of DHCP IP addresses
+ mode:
+ type: string
+ description: |
+ This value describes how the DHCP service is configured for this network. Once a DHCP service has been created, the mode attribute cannot be changed.
+ The mode field will default to 'EDGE' if it is not provided. This field only applies to networks backed by an NSX-T network provider.
+ filter=(tag==Web;entityType==vm)
+ operationId: getSecurityTaggedEntities
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/SecurityTaggedEntities'
+
+ security-tag:
+ put:
+ x-vcloud-added-in: "36.0"
+ tags:
+ - securityTags
+ summary: Updates a specific tag
+ description: |
+ Only the list of tagged entities can be updated. The name cannot be updated.
+ Any other existing entities not in the list will be untagged.
+ operationId: updateSecurityTag
+ consumes:
+ - application/json
+ parameters:
+ - name: securityTag
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/SecurityTag'
+ responses:
+ 204:
+ description: security tag updated
+
+ vm-tags:
+ parameters:
+ - name: id
+ description: the URN of the VM to manage tags for.
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "36.0"
+ tags:
+ - securityTags
+ summary: Retrieves the list of tags for a specific VM.
+ description: |
+ Retrieves the list of tags for a specific VM. If user has view right to the VM, user can view its tags.
+ operationId: getVmTags
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EntitySecurityTags'
+
+ put:
+ x-vcloud-added-in: "36.0"
+ tags:
+ - securityTags
+ summary: Update the list of tags for a specific VM.
+ description: |
+ Update the list of tags for a specific VM. An empty list of tags means to delete all dags for the VM.
+ If user has edit permission on the VM, user can edit its tags.
+ operationId: updateVmTags
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: entityTags
+ in: body
+ description: the list of tags to update.
+ required: true
+ schema:
+ $ref: '#/definitions/EntitySecurityTags'
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/EntitySecurityTags"
+
+definitions:
+
+ SecurityTagValue:
+ x-vcloud-added-in: "36.0"
+ description: |
+ Describes the most basic tag structure: its value.
+ type: object
+ properties:
+ tag:
+ type: string
+ description: The value of the tag. The value is case-agnostic and will be converted to lower-case.
+ maxLength: 128
+ x-vcloud-case-agnostic: true
+ required:
+ - value
+ x-vcloud-property-annotations:
+ value:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+ SecurityTagValues:
+ x-vcloud-added-in: "36.0"
+ description: |
+ List of a tags that users can use to assign to entities.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/securityTags.yaml#/definitions/SecurityTagValue'
+
+ SecurityTaggedEntities:
+ x-vcloud-added-in: "36.0"
+ description: |
+ List of entities that are tagged.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/securityTags.yaml#/definitions/SecurityTaggedEntity'
+
+ SecurityTaggedEntity:
+ x-vcloud-added-in: "36.0"
+ description: |
+ An entity that has a tag.
+ type: object
+ properties:
+ id:
+ type: string
+ description: |
+ The unique identifier of the entity in URN format.
+ name:
+ type: string
+ description: The name of the entity.
+ readOnly: true
+ parentRef:
+ $ref: '#/definitions/EntityReference'
+ description: The parent of the entity such as vApp if the entity is a VM. If not applicable, field is not set.
+ ownerRef:
+ $ref: '#/definitions/EntityReference'
+ description: The owner of the specified entity such as vDC or vDC Group. If not applicable, field is not set.
+ entityType:
+ type: string
+ description: The type of entity. Currently only "vm" is supported.
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vm
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ name:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ parentRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ ownerRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ entityType:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ x-vcloud-cross-references:
+ - cross-reference:
+ alias: tag
+
+ EntitySecurityTags:
+ x-vcloud-added-in: "36.0"
+ description: |
+ List of a tags assigned to a specific entity
+ type: object
+ properties:
+ tags:
+ type: array
+ description: The list of tags. The value is case-agnostic and will be converted to lower-case.
+ items:
+ type: string
+ maxItems: 256
+ x-vcloud-property-annotations:
+ tags:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+ SecurityTag:
+ x-vcloud-added-in: "36.0"
+ description: |
+ An individual security tag
+ type: object
+ properties:
+ tag:
+ type: string
+ description: The tag to use.
+ maxLength: 128
+ x-vcloud-case-agnostic: true
+ entities:
+ type: array
+ description: List of entities to tag in urn format.
+ items:
+ type: string
+ required:
+ - tag
+ - entities
+ x-vcloud-property-annotations:
+ tag:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
diff --git a/schemas/openapi/src/main/resources/schemas/networking/universalEgressPoints.yaml b/schemas/openapi/src/main/resources/schemas/networking/universalEgressPoints.yaml
new file mode 100644
index 00000000..0bd4c44d
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/universalEgressPoints.yaml
@@ -0,0 +1,244 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director Universal Egress Points API allows for management of egress points that belong to a universal router.
+ The egress points can be used for routing in a vDC Group.
+ version: "1.0"
+ title: Egress Points API
+
+paths:
+
+ egressPoints:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - egressPoints
+ summary: Get a list of Universal Egress Points for a Universal Router.
+ operationId: getEgressPoints
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EgressPoints'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ post:
+ tags:
+ - egressPoints
+ summary: Creates a new Universal Egress Point from a specified Edge Gateway and Org vDC.
+ operationId: createEgressPoint
+ consumes:
+ - application/json
+ parameters:
+ - name: egressPoint
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/EgressPoint'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ egressPoint:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+ - name: egressPointId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalEgressPoint
+
+ get:
+ tags:
+ - egressPoint
+ summary: Retrieves a specific Universal Egress Point.
+ operationId: getEgressPoint
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EgressPoint'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ tags:
+ - egressPoint
+ summary: Deletes a specific Universal Egress Point.
+ operationId: deleteEgressPoint
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ sync:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+ - name: egressPointId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalEgressPoint
+
+ post:
+ tags:
+ - egressPoint
+ summary: Sync/repair the egress point.
+ operationId: syncEgressPoint
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ EgressPoints:
+ description: |
+ List of Egress Points.
+ type: object
+ properties:
+ values:
+ type: array
+ description: The list of Universal Egress Points.
+ items:
+ $ref: '#/definitions/EgressPoint'
+
+ EgressPoint:
+ description: |
+ An Egress Point.
+ type: object
+ properties:
+ id:
+ type: string
+ description: The unique ID for the Universal Egress Point (read-only).
+ vdcRef:
+ $ref: '#/definitions/EntityReference'
+ description: The Org vDC the Universal Egress Point belongs to.
+ gatewayRef:
+ $ref: '#/definitions/EntityReference'
+ description: The Edge Gateway the Egress Point is referring to.
+ networkProviderScope:
+ type: string
+ description: Read-only field that specifies the network provider scope of the Universal Egress Point (inherited from the Org vDC).
+ isUsedForRouting:
+ type: boolean
+ description: Specifies whether the egress point is being used for Universal Routing. This is a read-only field.
+ status:
+ $ref: '#/definitions/VdcGroupEntityStatus'
+ description: The status of the Universal Egress Point.
+ errorMessage:
+ type: string
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalEgressPoint
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ vdcRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ gatewayRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProviderScope:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ isUsedForRouting:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ status:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ errorMessage:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EgressPointReference:
+ description: |
+ An EgressPoint reference object for use in universal routing.
+ type: object
+ properties:
+ egressPointId:
+ type: string
+ description: The id of the Universal Egress Point reference.
+ vdcRef:
+ $ref: '#/definitions/EntityReference'
+ description: The Org vDC of the Universal Egress Point reference.
+ gatewayRef:
+ $ref: '#/definitions/EntityReference'
+ description: The Edge Gateway of the Universal Egress Point reference.
+ x-vcloud-property-annotations:
+ vdcRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ gatewayRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ egressPointId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
+ VdcGroupEntityStatus:
+ $ref: "./vdcGroups/vdcGroups.yaml#/definitions/VdcGroupEntityStatus"
diff --git a/schemas/openapi/src/main/resources/schemas/networking/universalRouters.yaml b/schemas/openapi/src/main/resources/schemas/networking/universalRouters.yaml
new file mode 100644
index 00000000..633309d2
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/universalRouters.yaml
@@ -0,0 +1,488 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ API for Universal Routers
+ version: "1.0"
+ title: Universal Routers API
+
+paths:
+
+ universalRouters:
+
+ post:
+ tags:
+ - universalRouters
+ summary: Create a new universal router
+ description: |
+ Create a new universal router for a vDC group
+ operationId: createUniversalRouter
+ consumes:
+ - application/json
+ parameters:
+ - name: universalRouter
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/UniversalRouter'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ universalRoutersForVdcGroup:
+ parameters:
+ - name: vdcGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdcGroup
+
+ get:
+ tags:
+ - universalRouters
+ summary: Get all the universal routers defined for a vDC group
+ description: |
+ Get all the universal routers defined for a vDC group in the system.
+ operationId: getAllUniversalRoutersForVdcGroup
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UniversalRouters'
+
+ universalRouter:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - universalRouter
+ summary: Retrieves a specific Universal Router
+ operationId: getUniversalRouter
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UniversalRouter'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - universalRouter
+ summary: Updates a specific Universal Router
+ operationId: updateUniversalRouter
+ consumes:
+ - application/json
+ parameters:
+ - name: router
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/UniversalRouter'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ tags:
+ - universalRouter
+ summary: Deletes a specific Universal Router
+ operationId: deleteUniversalRouter
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ sync:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ post:
+ tags:
+ - universalRouter
+ summary: Sync/repair the Universal Router
+ description: |
+ Sync/repair the Universal Router
+ operationId: syncUniversalRouter
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ dns:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+
+ get:
+ tags:
+ - universalRouterDns
+ summary: Retrieves dns configuration of a universal router
+ operationId: getDnsConfigForRouter
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/RouterDnsConfig'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - universalRouterDns
+ summary: Updates dns configuration of a universal Router
+ operationId: updateDnsConfigForRouter
+ consumes:
+ - application/json
+ parameters:
+ - name: dnsConfig
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/RouterDnsConfig'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ tags:
+ - universalRouterDns
+ summary: Deletes dns configuration of a universal router
+ operationId: deleteDnsConfigForRouter
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ dhcp:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - universalRouterDhcp
+ summary: Retrieves Dhcp configuration of a specific Universal Router
+ operationId: getDhcpConfigForUniversalRouter
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UniversalRouterDhcpConfig'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - universalRouterDhcp
+ summary: Updates Dhcp configuration for a specific Universal Router
+ operationId: updateDhcpConfigForUniversalRouter
+ consumes:
+ - application/json
+ parameters:
+ - name: dhcpConfig
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/UniversalRouterDhcpConfig'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ tags:
+ - universalRouterDhcp
+ summary: Deletes Dhcp configuration of a specific Universal Router
+ operationId: deleteDhcpConfigForUniversalRouter
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ health:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - universalRouterHealth
+ summary: Get Health information of a universal router
+ description: |
+ Get Health information of a universal router and its associated entities such as egress points
+ and routing. It includes information about reachability status of all the participating vDC's of
+ referenced vDC group and it also includes information about all the nsx managers covered by this universal router
+ along with associated nsx controller cluster.
+ operationId: getUniversalRouterHealth
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/RouterHealthReport'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ UniversalRouters:
+ description: |
+ List of Universal Routers
+ type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/UniversalRouter'
+
+ UniversalRouter:
+ description: |
+ A UniversalRouter object
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ description:
+ type: string
+ vdcGroupRef:
+ $ref: '#/definitions/EntityReference'
+ localEgress:
+ type: boolean
+ status:
+ $ref: '#/definitions/VdcGroupEntityStatus'
+ errorMessage:
+ type: string
+ required:
+ - vdcGroupRef
+ - name
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ name:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ vdcGroupRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ localEgress:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ status:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ errorMessage:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ RouterDnsConfig:
+ description: |
+ A RouterDnsConfig object
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ nameServers:
+ type: array
+ items:
+ type: string
+ x-vcloud-property-annotations:
+ enabled:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ nameServers:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ UniversalRouterDhcpConfig:
+ description: |
+ A UniversalRouterDhcpConfig object.
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ servers:
+ type: array
+ items:
+ $ref: '#/definitions/UniversalRouterDhcpServer'
+ x-vcloud-property-annotations:
+ enabled:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ servers:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ UniversalRouterDhcpServer:
+ description: |
+ List of Dhcp servers for universal router.
+ Either egressRef or serverAddress is required to identify Dhcp server.
+ type: object
+ properties:
+ egressRef:
+ $ref: '#/definitions/EntityReference'
+ serverAddress:
+ type: string
+
+ RouterHealthReport:
+ description: |
+ Health Report of a Router
+ type: object
+ properties:
+ nsxManagersHealth:
+ description: |
+ Status of all the nsx managers spanned by the universal router.
+ type: array
+ items:
+ $ref: '#/definitions/RouterComponentHealth'
+ controlVmHealth:
+ description: |
+ Status of all the universal router control VMs within each network provider scope.
+ This also includes status of egress points and routes configured for the universal router.
+ type: array
+ items:
+ $ref: '#/definitions/RouterComponentHealth'
+ controlPlaneHealth:
+ description: |
+ Status of the nsx controller cluster associated with the nsx managers.
+ $ref: '#/definitions/RouterComponentHealth'
+ vdcReachabilityStatus:
+ description: |
+ Reachability status for local and remote participating vDC's of referenced vDC group.
+ States whether a vDC is reachable from this local site.
+ type: array
+ items:
+ $ref: '#/definitions/RouterComponentHealth'
+ x-vcloud-property-annotations:
+ nsxManagersHealth:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ controlVmHealth:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ controlPlaneHealth:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ vdcReachabilityStatus:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ RouterComponentHealth:
+ description: |
+ A ComponentHealth object
+ type: object
+ properties:
+ component:
+ type: string
+ status:
+ $ref: '#/definitions/RouterComponentStatus'
+ message:
+ type: string
+ action:
+ type: string
+ code:
+ type: integer
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
+ VdcGroupEntityStatus:
+ $ref: "./vdcGroups/vdcGroups.yaml#/definitions/VdcGroupEntityStatus"
+
+ RouterComponentStatus:
+ description: |
+ Status of a router component.
+ type: object
+ enum:
+ - UP
+ - DOWN
+
diff --git a/schemas/openapi/src/main/resources/schemas/networking/universalRouting.yaml b/schemas/openapi/src/main/resources/schemas/networking/universalRouting.yaml
new file mode 100644
index 00000000..628f9b25
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/universalRouting.yaml
@@ -0,0 +1,258 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director Universal Routing API allows for routing configuration/management for a Universal Router and its associated Egress Points.
+ version: "1.0"
+ title: Universal Routing API
+
+paths:
+
+ universalEgressRouting:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - universalRouting
+ summary: Retrieves Universal Egress Points and routing configuration for a Universal Router.
+ operationId: getUniversalEgressRouting
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UniversalEgressRoutes'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - universalRouting
+ summary: |
+ Updates the routing configuration using the specified egress points in the universal routes. Any egress point that does not exist will be
+ created before updating routing. Any egress point that currently exists and is not in use by any of the specified routes will be deleted. If the new
+ egress points for routing fail to create, routing will not be updated.
+ operationId: updateUniversalEgressRouting
+ consumes:
+ - application/json
+ parameters:
+ - name: universalEgressRoutes
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/UniversalEgressRoutes'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ universalRouting:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ get:
+ tags:
+ - universalRouting
+ summary: Retrieves routing configuration for a Universal Router.
+ operationId: getUniversalRoutes
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/UniversalRoutes'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - universalRouting
+ summary: Updates routing configuration for a Universal Router.
+ operationId: updateUniversalRoutes
+ consumes:
+ - application/json
+ parameters:
+ - name: routes
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/UniversalRoutes'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ universalRoutingSync:
+ parameters:
+ - name: universalRouterId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: universalRouter
+
+ post:
+ tags:
+ - universalRouting
+ summary: Sync/repair the routing configuration for a Universal Router.
+ description: |
+ Sync/repair the universal routes
+ operationId: syncUniversalRoutes
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+definitions:
+
+ UniversalRoutes:
+ description: |
+ List of routes associated with a Universal Router.
+ type: object
+ properties:
+ keepAliveTimer:
+ type: integer
+ description: The Keep Alive Timer is the frequency (in seconds) at which the Universal Router seeds Keep Alive messages to its egress peers.
+ values:
+ type: array
+ description: The list of Universal Routes.
+ items:
+ $ref: '#/definitions/UniversalRoute'
+ providerScopesToForceUnconfigure:
+ type: array
+ description: |
+ The list network provider scopes whose route will be unconfigure forcefully. This means that a route that is in state that normally shouldn't be
+ unconfigurable (i.e. NSX or remote vCD site is down) will still be unconfigured. Errors may be ignored. Note that this force option also affects any route
+ update where a network provider's egress point is modified/changed. vCD will first unconfigure any existing egress point before configuring the new egress
+ point.
+ items:
+ type: string
+ x-vcloud-property-annotations:
+ keepAliveTimer:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ providerScopesToForceUnconfigure:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ UniversalRoute:
+ description: |
+ A Route for a Universal Router.
+ type: object
+ properties:
+ defaultEgress:
+ $ref: '#/definitions/EgressPointReference'
+ description: For a given route, routing by default will go through the default egress point. Every valid/configured route will have a default egress point.
+ standbyEgress:
+ $ref: '#/definitions/EgressPointReference'
+ description: A standby egress point can be configured for failover of routes in case there is an issue routign to the default egress point.
+ networkProviderScope:
+ type: string
+ description: The network provider scope for the given route. There can only be one route per fault domain for a Universal Route.
+ status:
+ $ref: '#/definitions/UniversalRoutingStatus'
+ description: The status of the route (whether it's realized, failed, etc.).
+ errorMessage:
+ type: string
+ required:
+ - networkProviderScope
+ x-vcloud-property-annotations:
+ defaultEgress:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ standbyEgress:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProviderScope:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ status:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ errorMessage:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ UniversalEgressRoutes:
+ description: |
+ Object consisting of Egress Points and Universal Routes for a Universal Router.
+ type: object
+ properties:
+ egressPoints:
+ $ref: '#/definitions/EgressPoints'
+ description: The list of Egress Points for routing configuration. This is read-only.
+ universalRoutes:
+ $ref: '#/definitions/UniversalRoutes'
+ description: |
+ The list of Universal Routes for routing configuration.
+ x-vcloud-property-annotations:
+ egressPoints:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ universalRoutes:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ UniversalRoutingStatus:
+ description: |
+ Represents status of given routing configuration, such as realized, universal router routing configuration failed, egress routing configuration failed, etc.
+ type: object
+ enum:
+ - SAVING
+ - SAVED
+ - CONFIGURING
+ - REALIZED
+ - REALIZATION_FAILED
+ - CONFIGURATION_FAILED_UNIVERSAL_ROUTER
+ - CONFIGURATION_FAILED_UNIVERSAL_EGRESS_POINT
+ - UNCONFIGURED
+ - DELETING
+ - DELETION_FAILED_UNIVERSAL_ROUTER
+ - DELETION_FAILED_UNIVERSAL_EGRESS_POINT
+
+ EgressPoints:
+ $ref: "./networking/universalEgressPoints.yaml#/definitions/EgressPoints"
+
+ EgressPointReference:
+ $ref: "./networking/universalEgressPoints.yaml#/definitions/EgressPointReference"
diff --git a/schemas/openapi/src/main/resources/schemas/networking/vCenterResources.yaml b/schemas/openapi/src/main/resources/schemas/networking/vCenterResources.yaml
new file mode 100644
index 00000000..fb247bf2
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/vCenterResources.yaml
@@ -0,0 +1,181 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ List of existing vCenter resources.
+ version: "1.0"
+ title: vCenter resources
+
+paths:
+
+ importableDistributedPortgroups:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vCenterResources
+ summary: Get all DVPG network backings that are available.
+ description: |
+ Get all DVPG network backings that are available. The "_context" filter key is optional and can be set
+ with the id of the vCenter from which to obtain the DVPG network backings.
+ "orgVdcId==[vdcUrn]" can be set as a filter to show importable DVPGs for an Org vDC.
+ operationId: getImportableDvpgs
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/DistributedPortGroups'
+
+ importablePortgroups:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vCenterResources
+ summary: Get all standard porgroups available as backings.
+ description: |
+ Get all standard portgroups that are available as backings. The "_context" filter key is optional and can be set
+ with the id of the vCenter from which to obtain the standard porgroup backings.
+ operationId: getImportablePortgroups
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/PortGroups'
+
+ dvSwitches:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vCenterResources
+ summary: Retrieves all distributed virtual switches.
+ operationId: getDvSwitches
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/DvSwitches'
+
+definitions:
+
+ DistributedPortGroups:
+ x-vcloud-added-in: "33.0"
+ description: |
+ List of distributed portgroups.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/vCenterResources.yaml#/definitions/DistributedPortGroup'
+
+ DistributedPortGroup:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Distributed portgroup.
+ type: object
+ properties:
+ backingRef:
+ $ref: '#/definitions/BackingRef'
+ description: Contains the backing id and name of the distributed portgroup.
+ virtualCenter:
+ $ref: '#/definitions/EntityReference'
+ description: The entity reference for the vCenter that contains this distributed portgroup.
+ vlan:
+ type: string
+ description: The VLAN associated with this distributed portgroup. This can be a single number or a numerical range(1-10).
+ dvSwitch:
+ $ref: '#/definitions/DvSwitch'
+ description: The distributed virtual switch on which this distributed virtual portgroup was created.
+ x-vcloud-cross-references:
+ - cross-reference:
+ referenced-type: "./networking/vdcs.yaml#/definitions/OrgVdc"
+ referenced-property: id
+ alias: orgVdcId
+
+ DvSwitches:
+ x-vcloud-added-in: "33.0"
+ description: |
+ List of distributed virtual switches.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/vCenterResources.yaml#/definitions/DvSwitch'
+
+ DvSwitch:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Distributed virtual switch.
+ type: object
+ properties:
+ backingRef:
+ $ref: '#/definitions/BackingRef'
+ description: Contains the backing id and name of the distributed virtual switch.
+ virtualCenter:
+ $ref: '#/definitions/EntityReference'
+ description: The entity reference for the vCenter that contains this distributed virtual switch.
+
+ PortGroup:
+ x-vcloud-added-in: "33.0"
+ description: |
+ Standard portgroup.
+ type: object
+ properties:
+ backingRef:
+ $ref: '#/definitions/BackingRef'
+ description: Contains the backing id and name of the standard portgroup.
+ virtualCenter:
+ $ref: '#/definitions/EntityReference'
+ description: The entity reference for the vCenter that contains this portgroup.
+
+ PortGroups:
+ x-vcloud-added-in: "33.0"
+ description: |
+ List of standard portgroups.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './networking/vCenterResources.yaml#/definitions/PortGroup'
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
+ BackingRef:
+ $ref: "./networking/commonObject.yaml#/definitions/BackingRef"
diff --git a/schemas/openapi/src/main/resources/schemas/networking/vdcNetworkProfiles.yaml b/schemas/openapi/src/main/resources/schemas/networking/vdcNetworkProfiles.yaml
new file mode 100644
index 00000000..83f1f4f4
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/networking/vdcNetworkProfiles.yaml
@@ -0,0 +1,134 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vDC Network Profile API allows for management of of an Org vDC's Network Profile.
+ A Given vDC Network Profile definition can contain things such as Primary/Secondary Edge Clusters, etc.
+ An Org VDC, which will deploy networks/edges based on the profile.
+ version: "1.0"
+ title: vDC Network Profile API
+
+paths:
+
+ vdcNetworkProfile:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - vdcNetworkProfile
+ summary: Retrieves the vDC Network Profile.
+ operationId: getVdcNetworkProfile
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/VdcNetworkProfile'
+
+ put:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - vdcNetworkProfile
+ summary: Updates the vDC Network Profile.
+ operationId: updateVdcNetworkProfile
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcNetworkProfile
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcNetworkProfile'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ delete:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - vdcNetworkProfile
+ summary: Deletes/Reset a vDC Network Profile.
+ operationId: deleteVdcNetworkProfile
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+definitions:
+
+ VdcNetworkProfile:
+ x-vcloud-added-in: "32.0"
+ description: |
+ A vDC Network Profile object.
+ type: object
+ properties:
+ primaryEdgeCluster:
+ $ref: '#/definitions/EntityReference'
+ description: The Edge Cluster where the primary appliance for an NSX-V Edge Gateway will be deployed.
+ secondaryEdgeCluster:
+ $ref: '#/definitions/EntityReference'
+ description: The Edge Cluster where the secondary appliance for an NSX-V Edge Gateway will be deployed if HA is enabled on the Edge.
+ servicesEdgeCluster:
+ $ref: '#/definitions/ServicesEdgeCluster'
+ description: The Edge Cluster where the DHCP server profile will be stored for NSX-T networks using NETWORK mode DHCP.
+ x-vcloud-added-in: "35.0"
+ x-vcloud-property-annotations:
+ primaryEdgeCluster:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ secondaryEdgeCluster:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ servicesEdgeCluster:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ ServicesEdgeCluster:
+ x-vcloud-added-in: "35.0"
+ description: |
+ This represents the Edge Cluster to be used for network services.
+ This can only be used to represent Edge Clusters managed by NSX-T.
+ type: object
+ properties:
+ edgeClusterRef:
+ $ref: '#/definitions/EntityReference'
+ description: The reference to VCD Edge Cluster, if it exists.
+ backingId:
+ type: string
+ description: |
+ The Id of the Edge Cluster in the NSX-T manager. If the user
+ provides the id of NSX-T edge cluster during update, VCD will
+ automatically create a corresponding VCD Edge cluster object
+ referencing the specified NSX-T edge cluster. For NSX-V Edges,
+ this is set to NULL.
+ x-vcloud-property-annotations:
+ edgeClusterRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ backingId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
diff --git a/schemas/openapi/src/main/resources/schemas/org/org.yaml b/schemas/openapi/src/main/resources/schemas/org/org.yaml
new file mode 100644
index 00000000..5e9b5aca
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/org/org.yaml
@@ -0,0 +1,223 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director Org API.
+ version: "1.0"
+ title: vCloud Director Org API
+
+paths:
+
+ orgs:
+ get:
+ tags:
+ - Org
+ summary: Get list of all orgs accessible to the user.
+ x-vcloud-added-in: "35.0"
+ x-vcloud-multisite: true
+ x-vcloud-default-sort:
+ default-sort-field: name
+ sort-ascending: true
+ description: |
+ Get list of all orgs accessible to the user.
+ operationId: queryOrgs
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/Orgs'
+
+ post:
+ tags:
+ - Org
+ summary: Create a new organization
+ x-vcloud-added-in: "36.0"
+ operationId: createOrg
+ consumes:
+ - application/json
+ parameters:
+ - name: newOrg
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/Org"
+ produces:
+ - application/json
+ responses:
+ 201:
+ description: Created
+ schema:
+ $ref: "#/definitions/Org"
+
+ org:
+ parameters:
+ - name: orgUrn
+ in: path
+ description: orgUrn
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: org
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - Org
+ summary: Get specified organization.
+ operationId: getOrg
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/Org"
+ delete:
+ tags:
+ - Org
+ summary: Delete the specified org.
+ operationId: deleteOrg
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ description: "Pass force=true as query parameter to remove an organization regardless of its state."
+ - $ref: "./common/delete.yaml#/parameters/recursiveDelete"
+ description: "Pass recursive=true as query parameter to remove an organization and any objects it contains."
+ x-vcloud-added-in: "36.0"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ put:
+ tags:
+ - Org
+ summary: Updates an organization.
+ x-vcloud-added-in: "36.0"
+ description: |
+ Updates an organization.
+ operationId: updateOrg
+ consumes:
+ - application/json
+ parameters:
+ - name: modifiedOrg
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/Org"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/Org"
+
+definitions:
+
+ Org:
+ x-vcloud-added-in: "35.0"
+ description: |
+ An Organization.
+ type: object
+ properties:
+ id:
+ type: string
+ description: A unique identifier for the organization.
+ name:
+ type: string
+ description: Name of the organization.
+ pattern: "^[a-zA-Z0-9_\\-\\.\\!\\'\\(\\),\\$]+$"
+ maxLength: 128
+ displayName:
+ type: string
+ description: Full display name of the organization.
+ pattern: "(?=.*\\S.*)^[^\\p{Zl}\\p{Zp}\\p{C}]*$"
+ maxLength: 128
+ description:
+ type: string
+ default: ""
+ description: Description of the organization.
+ maxLength: 256
+ isEnabled:
+ type: boolean
+ default: false
+ description: Whether the organization is enabled or not.
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ orgVdcCount:
+ type: integer
+ description: The number of VDCs in the org.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ catalogCount:
+ type: integer
+ description: The number of catalogs in the org.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ vappCount:
+ type: integer
+ description: The number of vApps in the org.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ runningVMCount:
+ type: integer
+ description: The number of running VMs in the org.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ userCount:
+ type: integer
+ description: The number of users in the org.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ canPublish:
+ type: boolean
+ description: Whether the organization can publish catalogs externally.
+ x-vcloud-added-in: "36.0"
+ x-vcloud-restricted: restricted field, requires "Organization Administrator View" right to access this field.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ required:
+ - name
+ - displayName
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: Urn
+ - constraint: ReadOnly
+ args:
+ - arg: org
+ Orgs:
+ x-vcloud-added-in: "35.0"
+ description: |
+ A list of Organizations.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of organizations.
+ items:
+ $ref: '#/definitions/Org'
diff --git a/schemas/openapi/src/main/resources/schemas/preferences/user-preferences.yaml b/schemas/openapi/src/main/resources/schemas/preferences/user-preferences.yaml
new file mode 100644
index 00000000..e0441814
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/preferences/user-preferences.yaml
@@ -0,0 +1,230 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2018-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director user preferences API allows to create and view user preferences.
+ version: "1.0"
+ title: vCloud Director user preferences API
+
+paths:
+ preference-definitions:
+ get:
+ tags:
+ - preferences
+ summary: Get list of preference definitions.
+ x-vcloud-added-in: "32.0"
+ description: |
+ Get list of preference definitions
+ operationId: queryPreferenceDefinitions
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/PreferenceDefinitions"
+
+ preference-definition:
+ parameters:
+ - name: preferenceDefinitionId
+ in: path
+ required: true
+ type: string
+ get:
+ tags:
+ - preferences
+ summary: Get specified preference definition.
+ x-vcloud-added-in: "32.0"
+ operationId: getPreferenceDefinition
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/PreferenceDefinition"
+ 404:
+ description: Not Found
+
+ preferences:
+ get:
+ tags:
+ - preferences
+ summary: Query user preferences.
+ x-vcloud-added-in: "32.0"
+ description: |
+ Query user preferences
+ operationId: queryPreferences
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/Preferences"
+
+ preference:
+ parameters:
+ - name: classifier
+ in: path
+ required: true
+ type: string
+ get:
+ tags:
+ - preferences
+ summary: Get specified user preference.
+ x-vcloud-added-in: "32.0"
+ operationId: getPreference
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/Preference"
+ 404:
+ description: Not Found
+ put:
+ tags:
+ - preferences
+ summary: Update specified user preference
+ x-vcloud-added-in: "32.0"
+ operationId: updatePreference
+ consumes:
+ - application/json
+ parameters:
+ - name: updatePreferenceParams
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/Preference"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/Preference"
+
+definitions:
+
+ PreferenceDefinition:
+ description: |
+ The Preference Definition is immutable.
+ type: object
+ x-vcloud-added-in: "32.0"
+ properties:
+ id:
+ type: string
+ description: |
+ UUID for preference definition. This is immutable.
+ name:
+ type: string
+ description: |
+ Display name.
+ description:
+ type: string
+ default: ""
+ description: |
+ Description for user preference
+ classifier:
+ type: string
+ description: |
+ unique indetifier for this preference definition. It should be of type + Upon retrieving the certificate chain presented during the handshake, if signing CA certificates were not included, + but a location is specified for the 'caIssuers' access method of the 'Authority Info Access' extension + (as described in RFC 5280 Section 4.2.2.1) + of those certificates and that location is one of these supplied URLs, then additional certificates will be retrieved + from those URLs in accordance with the protocol laid out in the RFC. +
+ Any failure to retrieve this certificate will NOT fail the test connection request, nor will the error associated with this failure be returned. +
+ In the unlikely event that the CA Issuers URL specifies `https` instead of `http`, the original certificate,
+ that included that URL, will be temporarily used to trust the server during ssl handshake
+ x-vcloud-added-in: "36.0"
+ proxyConnection:
+ $ref: '#/definitions/ProxyConnection'
+ required:
+ - host
+ - port
+
+ ProxyConnection:
+ description: |
+ Proxy connection to use for test. If none is specified, then no proxy is used to test the connection.
+ type: object
+ x-vcloud-added-in: "34.0"
+ properties:
+ proxyHost:
+ description: The host (or IP address) of the proxy.
+ type: string
+ maxLength: 256
+ proxyPort:
+ description: The port to use when connecting to the proxy.
+ type: integer
+ proxyUsername:
+ description: Username to authenticate to the proxy.
+ type: string
+ maxLength: 256
+ proxyPassword:
+ description: Password to authenticate to the proxy.
+ type: string
+ maxLength: 256
+ proxySecure:
+ description: If the connection to the proxy should use https.
+ default: true
+ type: boolean
+ required:
+ - proxyHost
+ - proxyPort
+
+ TestResult:
+ description: |
+ Results of a connection test.
+ type: object
+ x-vcloud-added-in: "34.0"
+ properties:
+ targetProbe:
+ $ref: '#/definitions/ProbeResult'
+ proxyProbe:
+ $ref: '#/definitions/ProbeResult'
+
+ ProbeResult:
+ description: |
+ Results of a connection test to a specific endpoint.
+ type: object
+ x-vcloud-added-in: "34.0"
+ properties:
+ result:
+ description: Localized message describing the connection result stating success or an error message with a brief summary.
+ type: string
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ resolvedIp:
+ description: The IP address the host was resolved to.
+ type: string
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ canConnect:
+ description: If vCD can establish a connection on the specified port.
+ type: boolean
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ sslHandshake:
+ description: If an SSL Handshake succeeded (secure requests only).
+ type: boolean
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ certificateChain:
+ description: The SSL certificate chain presented by the server if a secure connection was made.
+ type: string
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ additionalCAIssuers:
+ type: array
+ items:
+ type: string
+ description: |
+ URLs supplied by Certificate Authorities to retrieve signing certificates, when those certificates are not included in the chain.
+ These URLs are the locations for the 'caIssuers' access method in the 'Authority Info Access' extension
+ (as described in RFC 5280 Section 4.2.2.1)
+ of the certificates and gives the caller an indication where additional CA certificates may be retrieved from,
+ to complete the chain to the trust anchor.
+ x-vcloud-added-in: "36.0"
+
diff --git a/schemas/openapi/src/main/resources/schemas/ssl/trustedCertificates.yaml b/schemas/openapi/src/main/resources/schemas/ssl/trustedCertificates.yaml
new file mode 100644
index 00000000..812c0766
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/ssl/trustedCertificates.yaml
@@ -0,0 +1,170 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director Trusted Certificates (Truststore) API
+ version: "1.0"
+ title: vCloud Director Trusted Certificates (Truststore) API
+
+paths:
+ trustedCertificates:
+ get:
+ tags:
+ - trustedCertificates
+ summary: Get currently trusted certificates
+ x-vcloud-added-in: "34.0"
+ x-vcloud-multisite: true
+ description: |
+ Get currently trusted certificates
+ operationId: queryTrustedCertificates
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/Certificates'
+
+ post:
+ tags:
+ - trustedCertificates
+ summary: Add to list of currently trusted certificates
+ x-vcloud-added-in: "34.0"
+ description: |
+ Add to list of currently trusted certificates
+ operationId: trustCertificate
+ consumes:
+ - application/json
+ parameters:
+ - name: newCertificate
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/TrustedCertificate"
+ produces:
+ - application/json
+ responses:
+ 201:
+ description: Created
+ schema:
+ $ref: "#/definitions/TrustedCertificate"
+
+ certificate:
+ parameters:
+ - name: trustedCertificate
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: Urn
+ args:
+ - arg: trustedCertificate
+ get:
+ tags:
+ - trustedCertificates
+ summary: Get specified certificate
+ description: |
+ Get the PEM-encoded certificate with the requested URN
+ x-vcloud-added-in: "34.0"
+ operationId: getCertificate
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/TrustedCertificate"
+
+ put:
+ tags:
+ - trustedCertificates
+ summary: Updates an existing trusted certificate
+ x-vcloud-added-in: "34.0"
+ description: |
+ Updates an existing trusted certificate
+ operationId: updateCertificate
+ consumes:
+ - application/json
+ parameters:
+ - name: modifiedCertificate
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/TrustedCertificate"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/TrustedCertificate"
+
+ delete:
+ tags:
+ - trustedCertificates
+ summary: Revoke trusting specified certificate
+ description: |
+ Revoke trusting specified certificate
+ x-vcloud-added-in: "34.0"
+ operationId: deleteCertificate
+ responses:
+ 204:
+ description: No Content
+
+definitions:
+ Certificates:
+ description: |
+ A list of certificates.
+ x-vcloud-added-in: "34.0"
+ allOf:
+ - $ref: './common/query.yaml#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of certificates.
+ items:
+ $ref: '#/definitions/TrustedCertificate'
+
+ TrustedCertificate:
+ description: |
+ SSL certificate in PEM format.
+ type: object
+ x-vcloud-added-in: "34.0"
+ properties:
+ id:
+ type: string
+ maxLength: 128
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: trustedCertificate
+ - constraint: ReadOnly
+ alias:
+ type: string
+ maxLength: 255
+ certificate:
+ type: string
+ description: PEM encoded certificate
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: Certificate
+ example: -----BEGIN CERTIFICATE-----
+ /1.0.0/entity/{id}/tags.
+ Besides entityType, additional supported filters are:
+
+
+ Example: filter=(tag==Web;scope==Security;entityType==vm)
+ operationId: getEntityTagsSummaries
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EntityTagsSummaries'
+
+ entity-tags:
+ parameters:
+ - name: id
+ description: the URN of the entity to manage tag for.
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: 36.0
+ tags:
+ - entityTags
+ summary: Retrieves the tag information for a specific entity.
+ description: |
+ Retrieves the tag information for a specific entity. If user has view right to the entity, user can view its tags.
+ operationId: getEntityTags
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EntityTags'
+
+ put:
+ x-vcloud-added-in: 36.0
+# x-vcloud-event: com/vmware/vcloud/event/tag/entityTags/modify
+ tags:
+ - entityTags
+ summary: Update the tag information for a specific entity.
+ description: |
+ Update the tag information for a specific entity. An empty list of tags means to delete all dags for the entity.
+ If user has edit permission on the entity, user can edit its tags.
+ Only entities of specific types are supported.
+ Supported types which can be determined based on a VCD Entity's URN ID such as "vm" in "urn:vcloud:vm:
+
+ operationId: updateEntityTags
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: entityTags
+ in: body
+ description: the list of tags to update.
+ required: true
+ schema:
+ $ref: '#/definitions/EntityTags'
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/EntityTags"
+
+definitions:
+
+ Tag:
+ $ref: "./tags/tags.yaml#/definitions/Tag"
+
+ CommonEntityTags:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes a tag information for a specific entity.
+ type: object
+ properties:
+ id:
+ type: string
+ description: |
+ The unique identifier of the entity in URN format. The entity type must be supported, which is documented
+ in "/1.0.0/tags/entitySummaries" API.
+ name:
+ type: string
+ description: The name of the entity.
+ readOnly: true
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vm
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ name:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+
+ EntityTagsSummaries:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of entities that are tagged.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './tags/entityTags.yaml#/definitions/EntityTagsSummary'
+
+ EntityTagsSummary:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of entities that are tagged. The summary only contains a partial list of the tags.
+ allOf:
+ - $ref: "./tags/entityTags.yaml#/definitions/CommonEntityTags"
+ - type: object
+ properties:
+ entityType:
+ type: string
+ description: The type of entity. See endpoint documentation for /1.0.0/entity/{id}/tags for full list of supported type.
+ firstTenTags:
+ description: The list of first 10 tags found that are assigned to this entity.
+ type: array
+ items:
+ $ref: '#/definitions/Tag'
+ minItems: 0
+ maxItems: 10
+ x-vcloud-cross-references:
+ - cross-reference:
+ alias: tag
+ - cross-reference:
+ alias: scope
+ x-vcloud-property-annotations:
+ entityType:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+ EntityTags:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of entities that are tagged.
+ allOf:
+ - $ref: "./tags/entityTags.yaml#/definitions/CommonEntityTags"
+ - type: object
+ properties:
+ tags:
+ description: The list of all tags that are assigned to this entity.
+ type: array
+ items:
+ $ref: '#/definitions/Tag'
+ minItems: 0
+ maxItems: 64
diff --git a/schemas/openapi/src/main/resources/schemas/tags/tags.yaml b/schemas/openapi/src/main/resources/schemas/tags/tags.yaml
new file mode 100644
index 00000000..4fbb31b4
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/tags/tags.yaml
@@ -0,0 +1,464 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2021-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ API to browse tags and scopes in VCD and to manage system scopes and its predefined tags.
+ version: "1.0"
+ title: Tag API
+
+paths:
+
+ tags:
+ get:
+ x-vcloud-added-in: 36.0
+ x-vcloud-default-sort:
+ default-sort-field: value
+ sort-ascending: true
+ tags:
+ - tag
+ summary: Retrieves the list of tags.
+ description: |
+ Retrieves the list of tags that can be used to tag an entity. The tag/scope pair is considered a unique item in the list.
+ The list of tags include tags assigned to entities within the organization and also tags associated with system scopes
+ that may not be assigned to any entity yet.
+ Filter example:
+
+
+ operationId: getTags
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/Tags'
+
+ scopes:
+ get:
+ x-vcloud-added-in: 36.0
+ x-vcloud-default-sort:
+ default-sort-field: value
+ sort-ascending: true
+ tags:
+ - tag
+ summary: Retrieves the list of unique scopes associated with tags.
+ description: |
+ Retrieves the list of unique scopes associated with tags.
+ A tag can have multiple scopes, which are different contexts in which a tag is used.
+ An example is that a tag of "web" can be used in different scopes: security, compute.
+ Depending on the system scope filter, either system scopes are returned or
+ only non-system scopes within the organization are returned.
+ Non-system scopes are free-form scopes user created when tagging an entity.
+ Filter example:
+
+
+ operationId: getScopes
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/Scopes'
+
+ system-scope-summaries:
+ get:
+ x-vcloud-added-in: 36.0
+ x-vcloud-default-sort:
+ default-sort-field: value
+ sort-ascending: true
+ tags:
+ - systemScopes
+ summary: Retrieves the list of system scope summaries.
+ description: |
+ Retrieves the list of system scope summaries. Only the number of predefied tags are returned instead of all the tags.
+ operationId: getSystemScopeSummaries
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/SystemScopeSummaries'
+
+ system-scopes:
+ post:
+ x-vcloud-added-in: 36.0
+# x-vcloud-event: com/vmware/vcloud/event/tag/systemScope/create
+ tags:
+ - systemScopes
+ summary: Create a system scope.
+ description: |
+ Create a system scope, which is a collection of predefined tags and usage settings of these tags for organizations.
+ operationId: createSystemScope
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: systemScope
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/SystemScope'
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/SystemScope'
+ 400:
+ $ref: './common/response.yaml#/components/responses/BadRequest'
+
+ system-scope:
+ parameters:
+ - name: id
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: tagSystemScope
+
+ get:
+ x-vcloud-added-in: 36.0
+ tags:
+ - systemScope
+ summary: Get the specific system scope.
+ description: |
+ Retrieves the specific system scope.
+ operationId: getSystemScope
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/SystemScope"
+
+ put:
+ x-vcloud-added-in: 36.0
+# x-vcloud-event: com/vmware/vcloud/event/tag/systemScope/modify
+ tags:
+ - systemScope
+ summary: Update the system scope.
+ description: |
+ Update the system scope.
+ operationId: updateSystemScope
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: systemScope
+ in: body
+ description: the system scope to update.
+ required: true
+ schema:
+ $ref: '#/definitions/SystemScope'
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/SystemScope"
+
+ delete:
+ x-vcloud-added-in: 36.0
+# x-vcloud-event: com/vmware/vcloud/event/tag/systemScope/delete
+ tags:
+ - systemScope
+ summary: Delete the specific system scope.
+ description: |
+ Delete the specific system scope. If recursive delete is set to true,
+ all tags with the system scope will also be deleted from all entities.
+ operationId: deleteSystemScope
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/recursiveDelete"
+ responses:
+ 204:
+ description: No Content
+
+definitions:
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
+ Tag:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes the most basic tag structure: its value and scope.
+ type: object
+ properties:
+ value:
+ type: string
+ description: The value of the tag. The value is case-insensitive and will be converted to lower-case.
+ scope:
+ type: string
+ description: The scope or context in which this tag is used for. The value is case-insensitive and will be converted to lower-case.
+ x-vcloud-property-annotations:
+ value:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ scope:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ x-vcloud-cross-references:
+ - cross-reference:
+ alias: isSystemScope
+
+ Tags:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of a tags that users can use to assign to entities.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './tags/tags.yaml#/definitions/Tag'
+
+ CommonScope:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes a scope, which is a context in which the tag is applied.
+ type: object
+ properties:
+ value:
+ type: string
+ description: The value of the scope such as "vcd-security".
+ name:
+ type: string
+ description: User-friendly name of the scope such as "Security". This is not set for general/free-form scopes created by the user.
+ description:
+ type: string
+ description: The description about the scope. This is not set for general/free-form scopes created by the user.
+ orgUsageSettings:
+ $ref: "#/definitions/SystemScopeUsageSettings"
+ description: |
+ The usage settings that determines how predefined tags in this system scope can be viewed/used.
+ This is not set for general/free-form scopes created by the user.
+
+ Scopes:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of a unique scopes associated with tags.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './tags/tags.yaml#/definitions/Scope'
+
+ Scope:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes a scope, which is a context in which the tag is applied.
+ allOf:
+ - $ref: "./tags/tags.yaml#/definitions/CommonScope"
+ x-vcloud-property-annotations:
+ value:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ name:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ description:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgUsageSettings:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-cross-references:
+ - cross-reference:
+ alias: isSystemScope
+
+ CommonSystemScope:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes a system scope. System scope is a scope that's system-wide and has a list of predefined tags associated with it.
+ allOf:
+ - $ref: "./tags/tags.yaml#/definitions/CommonScope"
+ - type: object
+ properties:
+ id:
+ type: string
+ description: The id of the system scope.
+ preserveTags:
+ type: boolean
+ description: |
+ True means that when an entity is copied/moved (i.e. VM), any tag with with this system scope is preserved with the entity.
+ This property cannot be updated.
+ default: true
+
+ SystemScopeSummaries:
+ x-vcloud-added-in: 36.0
+ description: |
+ List of summaries of system scopes.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './tags/tags.yaml#/definitions/SystemScopeSummary'
+
+ SystemScopeSummary:
+ x-vcloud-added-in: 36.0
+ description: |
+ Summary of a systems cope. Only the count of its predefined tags are returned.
+ allOf:
+ - $ref: "./tags/tags.yaml#/definitions/CommonSystemScope"
+ - type: object
+ properties:
+ predefinedTagCount:
+ description: The number of predefined tags.
+ type: integer
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: tagSystemScope
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ value:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ name:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ description:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgUsageSettings:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ preserveTags:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ predefinedTagCount:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ SystemScope:
+ x-vcloud-added-in: 36.0
+ description: |
+ The system scope information.
+ allOf:
+ - $ref: "./tags/tags.yaml#/definitions/CommonSystemScope"
+ - type: object
+ properties:
+ predefinedTags:
+ description: |
+ The list of all predefined tags associated with this system scope. User can add or remove tags by updating this list.
+ A predefined tag that is removed from this list will also have the tag removed from entities that use the tag.
+ type: array
+ items:
+ $ref: './tags/tags.yaml#/definitions/PredefinedTag'
+ minItems: 0
+ maxItems: 64
+ required:
+ - name
+ - value
+ - orgUsageSettings
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: tagSystemScope
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgUsageSettings:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ preserveTags:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ predefinedTags:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ PredefinedTag:
+ x-vcloud-added-in: 36.0
+ description: |
+ Describes a predefined tag for a system scope.
+ type: object
+ properties:
+ value:
+ type: string
+ description: The value of the tag, which is case-agnostic.
+ required:
+ - value
+
+ SystemScopeUsageSettings:
+ x-vcloud-added-in: 36.0
+ description: The usage settings that determines how predefined tags in this system scope can be used.
+ type: object
+ properties:
+ canUseTags:
+ type: boolean
+ description: True means that user in any organization can use the use existing tags with this scope when tagging an entity.
+ default: true
+ canAddNewTags:
+ type: boolean
+ description: True means that user in any organization can add new tags with the system scope when tagging an entity.
+ default: true
+ x-vcloud-property-annotations:
+ canUseTags:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ canAddNewTags:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
diff --git a/schemas/openapi/src/main/resources/schemas/unimplemented-openapi-schemas.yaml b/schemas/openapi/src/main/resources/schemas/unimplemented-openapi-schemas.yaml
new file mode 100644
index 00000000..19cf11b4
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/unimplemented-openapi-schemas.yaml
@@ -0,0 +1,151 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+
+info:
+ title: Unimplemented vCloud Director OpenAPI
+ description: |
+ API here is meant to allow code generation to occur so that API implementation can be started without releasing the API.
+
+ A typical flow is that if the API is not ready for release after stabilization branching:
+ * Move the API definition from vcloud-openapi-schemas.yaml to this file.
+ * Set the 'x-vcloud-added-in' fields for all applicable endpoints to 'future'.
+ * Mark the tests as UNIMPLEMENTED/BROKEN so that it can be skipped
+
+ Alternately, if one wishes to disable an entire path:
+ * Move the API definition from vcloud-openapi-schemas.yaml to this file.
+ * Remove the API handler from the main-rest-api-application-context.xml
+ * Remove all links to the API from other API handlers
+ * Mark the tests as UNIMPLEMENTED/BROKEN so that it can be skipped
+
+ version: "future"
+
+produces:
+ - '*/*'
+
+paths:
+
+### Add unimplmented path below. An example: ###
+# /1.0.0/edgeGateways/{gatewayId}/dns:
+# $ref: "./networking/edgeGatewayDns.yaml#/paths/dns"
+
+# Please keep path below in order to support empty path list (i.e. when we have no API to hide)
+ /some/fake/path:
+
+#### Networking endpoints ####
+
+ /1.0.0/firewallGroups/candidates/groups:
+ $ref: "./networking/firewallGroupCandidates.yaml#/paths/groups"
+
+ /1.0.0/firewallGroups/candidates/vms:
+ $ref: "./networking/firewallGroupCandidates.yaml#/paths/vms"
+
+ /1.0.0/firewallGroups/candidates/networks:
+ $ref: "./networking/firewallGroupCandidates.yaml#/paths/networks"
+
+ /1.0.0/nsxTResources/importableTier1Routers:
+ $ref: "./networking/nsxTResourcesDisabled.yaml#/paths/importableTier1Routers"
+
+ /1.0.0/nsxTResources/importableSegments:
+ $ref: "./networking/nsxTResourcesDisabled.yaml#/paths/importableSegments"
+
+ #### Org VDC VPN Groups ####
+ /1.0.0/orgVdcVpnGroups:
+ $ref: "./networking/orgVdcVpnGroup.yaml#/paths/orgVdcVpnGroups"
+
+ /1.0.0/orgVdcVpnGroups/{vdcVpnGroupId}:
+ $ref: "./networking/orgVdcVpnGroup.yaml#/paths/orgVdcVpnGroup"
+
+##### Access Control Grants #########
+
+ /1.0.0/accessControls/membershipAccessControlDummy:
+ $ref: "./access-control/accessControl.yaml#/paths/membership-access-controls"
+
+ /1.0.0/accessControls/rightAccessControlDummy:
+ $ref: "./access-control/accessControl.yaml#/paths/right-access-controls"
+
+##### Compute policies #########
+
+ /2.0.0/vdcComputePolicies/{vdcComputePolicyId}/supportedKubernetesVersions:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/supported-kubernetes-versions"
+
+ /2.0.0/pvdcComputePolicies/vm:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-vm-policies"
+
+ /2.0.0/pvdcComputePolicies/kubernetes:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-tkg-policies"
+
+ /2.0.0/vdcComputePolicies/vm:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-vm-policies"
+
+ /2.0.0/vdcComputePolicies/kubernetes:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-tkg-policies"
+
+ /2.0.0/vdcComputePolicies/metrics:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-policy-metrics"
+
+ /2.0.0/pvdcComputePolicies/metrics:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-policy-metrics"
+
+ /2.0.0/pvdcComputePolicies/{pvdcComputePolicyId}/metrics:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-compute-policy-metrics"
+
+##### Dummy Objects for TypedValue #########
+
+ /1.0.0/common/typedValueDummy:
+ $ref: "./common/typed-value.yaml#/paths/dummy"
+
+ ########################################################
+ #
+ # vRO Catalog APIs
+ ########################################################
+ /vro/servers/{vroId}/catalog:
+ $ref: "./vro/vro-catalog.yaml#/paths/vroServerCatalog"
+ /vro/servers/{vroId}/catalog/{namespace}:
+ $ref: "./vro/vro-catalog.yaml#/paths/vroServerCatalogNamespace"
+ /vro/servers/{vroId}/catalog/{namespace}/{type}:
+ $ref: "./vro/vro-catalog.yaml#/paths/vroServerCatalogNamespaceType"
+ /vro/servers/{vroId}/catalog/{namespace}/metadata/icon:
+ $ref: "./vro/vro-catalog.yaml#/paths/getNamespaceIcon"
+ /vro/servers/{vroId}/catalog/{namespace}/{type}/{id}:
+ $ref: "./vro/vro-catalog.yaml#/paths/vroServerCatalogNamespaceTypeId"
+ /vro/servers/{vroId}/catalog/{namespace}/{type}/metadata/icon:
+ $ref: "./vro/vro-catalog.yaml#/paths/getNamespaceTypeIcon"
+ /vro/servers/{vroId}/catalog/{namespace}/{parentType}/{parentId}/{relationName}:
+ $ref: "./vro/vro-catalog.yaml#/paths/getByRelation"
+ /vro/servers/{vroId}/categories/{id}:
+ $ref: "./vro/vro-catalog.yaml#/paths/getCategoryById"
+
+########################################################
+#
+# End vRO Catalog APIs
+#
+########################################################
+
+########################################################
+# vRO Forms Overlay API
+########################################################
+ /workflows/forms/{workflowId}:
+ $ref: "./vro/vro-forms.yaml#/paths/workflow-forms"
+
+ /workflows/forms/{workflowId}/evaluationContext:
+ $ref: "./vro/vro-forms.yaml#/paths/workflow-forms-eval-context"
+
+ /workflows/forms/{workflowId}/evaluations/:
+ $ref: "./vro/vro-forms.yaml#/paths/workflow-forms-evaluations"
+
+ /workflows/forms/{workflowId}/executions/:
+ $ref: "./vro/vro-forms.yaml#/paths/workflow-forms-executions"
+
+ #enforce generation of referred parameter types
+ /workflows/parameterTypesForms:
+ $ref: "./vro/vro-forms.yaml#/paths/parameter-types-forms"
+
+########################################################
+# End vRO Forms Overlay API
+########################################################
+
diff --git a/schemas/openapi/src/main/resources/schemas/user/user.yaml b/schemas/openapi/src/main/resources/schemas/user/user.yaml
new file mode 100644
index 00000000..1c0061b1
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/user/user.yaml
@@ -0,0 +1,160 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vCloud Director User API.
+ version: "1.0"
+ title: vCloud Director User API
+
+paths:
+ users:
+ get:
+ tags:
+ - User
+ summary: Get a list of users.
+ x-vcloud-added-in: "35.0"
+ x-vcloud-multisite: true
+ x-vcloud-default-sort:
+ default-sort-field: username
+ sort-ascending: true
+ description: |
+ Get a list of users.
+ operationId: queryUsers
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: './common/user.yaml#/definitions/VcdUsers'
+
+ post:
+ tags:
+ - User
+ summary: Create a new user.
+ x-vcloud-added-in: "35.0"
+ operationId: createUser
+ consumes:
+ - application/json
+ parameters:
+ - name: newUser
+ in: body
+ required: true
+ schema:
+ $ref: "./common/user.yaml#/definitions/VcdUser"
+ produces:
+ - application/json
+ responses:
+ 201:
+ description: Created
+ schema:
+ $ref: "./common/user.yaml#/definitions/VcdUser"
+
+ user:
+ parameters:
+ - name: userUrn
+ in: path
+ description: userUrn
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: user
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - User
+ summary: Get a specified user by id.
+ operationId: getUser
+ description: |
+ Get a specified user by id.
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "./common/user.yaml#/definitions/VcdUser"
+
+ delete:
+ tags:
+ - User
+ summary: Delete the specified user.
+ operationId: deleteUser
+ x-vcloud-added-in: "35.0"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ put:
+ tags:
+ - User
+ summary: Modify the details of a user. A non-administrator user may only modify their own password. An administrator can edit any user.
+ operationId: updateUser
+ x-vcloud-added-in: "35.0"
+ description: |
+ Modify basic details of the specified user.
+ consumes:
+ - application/json
+ parameters:
+ - name: updatedUser
+ in: body
+ required: true
+ schema:
+ $ref: "./common/user.yaml#/definitions/VcdUser"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "./common/user.yaml#/definitions/VcdUser"
+
+ groups:
+ parameters:
+ - name: userUrn
+ in: path
+ description: userUrn
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: user
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - User
+ summary: Get a list of groups that the user with the given id belongs to.
+ operationId: queryUserGroups
+ x-vcloud-default-sort:
+ default-sort-field: name
+ sort-ascending: true
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ description: |
+ Get a list of references of groups that the user with the given id belongs to.
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "./common/entity.yaml#/definitions/EntityReferences"
+
diff --git a/schemas/openapi/src/main/resources/schemas/vc/proxyConfiguration.yaml b/schemas/openapi/src/main/resources/schemas/vc/proxyConfiguration.yaml
new file mode 100644
index 00000000..51ce1d31
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vc/proxyConfiguration.yaml
@@ -0,0 +1,197 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2018-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The Proxy Configuration API allows for management of proxies used by vCloud Director to connect
+ to vCenter Servers, ESXi hosts, or NSX servers.
+ title: Proxy Configuration API
+ version: "1.0"
+
+paths:
+ proxy-configurations:
+ get:
+ tags:
+ - proxyConfiguration
+ summary: Gets a paged list of proxy configurations.
+ x-vcloud-added-in: "34.0"
+ description: |
+ Gets a paged list of proxy configurations.
+ operationId: queryProxyConfigurations
+ x-vcloud-default-sort:
+ default-sort-field: name
+ sort-ascending: true
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/ProxyConfigurations"
+ post:
+ tags:
+ - proxyConfiguration
+ summary: Creates a proxy configuration.
+ x-vcloud-added-in: "34.0"
+ description: |
+ Creates a proxy configuration.
+ operationId: createProxyConfiguration
+ parameters:
+ - name: proxyConfiguration
+ description: The new proxy configuration API model.
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ProxyConfiguration"
+ consumes:
+ - application/json
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ proxy-configuration:
+ parameters:
+ - name: id
+ description: Proxy Configuration ID URN
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: proxyConfiguration
+
+ get:
+ tags:
+ - proxyConfiguration
+ summary: Retrieves a specific proxy configuration.
+ x-vcloud-added-in: "34.0"
+ operationId: getProxyConfiguration
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/ProxyConfiguration"
+
+ put:
+ tags:
+ - proxyConfiguration
+ summary: Update a specific proxy configuration.
+ x-vcloud-added-in: "34.0"
+ operationId: updateProxyConfiguration
+ consumes:
+ - application/json
+ parameters:
+ - name: updatedProxyConfiguration
+ description: The updated proxy configuration API model.
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ProxyConfiguration"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/ProxyConfiguration"
+
+ delete:
+ tags:
+ - proxyConfiguration
+ summary: Delete a specific proxy configuration.
+ x-vcloud-added-in: "34.0"
+ operationId: deleteProxyConfiguration
+ responses:
+ 204:
+ description: No Content
+
+definitions:
+
+ ProxyConfigurations:
+ x-vcloud-added-in: "34.0"
+ description: |
+ A paginated list of proxy configurations
+ allOf:
+ - $ref: './common/query.yaml#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/ProxyConfiguration'
+
+ ProxyConfiguration:
+ x-vcloud-added-in: "34.0"
+ description: |
+ A Proxy Configuration. This configuration object declares a backend proxy that sits between vCD and the vSphere/NSX/ESX estate.
+ type: object
+ properties:
+ name:
+ type: string
+ pattern: '.*[\S].*'
+ example: Proxy Sample Name
+ id:
+ type: string
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ - constraint: Urn
+ args:
+ - arg: proxyConfiguration
+ description:
+ type: string
+ description: Optional description.
+ example: Configuration to connect to VC-1
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ authType:
+ type: string
+ enum: [BASIC, BEARER]
+ username:
+ type: string
+ description: username to connect to the proxy server.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ password:
+ type: string
+ description: password to connect to the proxy server, when auth type is Basic.
+ x-vcloud-password: true
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ token:
+ type: string
+ description: authentication token to connect to the proxy server, when auth type is Bearer.
+ x-vcloud-password: true
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ host:
+ type: string
+ description: hostname of the proxy server.
+ example: sampleProxy.vmware.com
+ port:
+ type: integer
+ description: port of the proxy server.
+ required:
+ - name
+ - authType
+ - password
+ - host
+ - port
+
diff --git a/schemas/openapi/src/main/resources/schemas/vc/resourcePool.yaml b/schemas/openapi/src/main/resources/schemas/vc/resourcePool.yaml
new file mode 100644
index 00000000..bec14410
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vc/resourcePool.yaml
@@ -0,0 +1,40 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ Entity used to describe a resource pool in vCenter.
+ title: Resource Pool
+ version: "1.0"
+
+definitions:
+
+ ResourcePool:
+ description: |
+ A vCenter Resource Pool.
+ type: object
+ properties:
+ moref:
+ type: string
+ description: The vCenter Id of the Resource Pool. It must be in the format (resgroup-#).
+ name:
+ type: string
+ description: The name of the Resource Pool.
+ vcId:
+ type: string
+ description: The vCenter the Resource Pool belongs to.
+ eligible:
+ type: boolean
+ description: |
+ Used in resource pool tree navigation.
+ Indicates whether the resource pool is eligible or not.
+ kubernetesEnabled:
+ type: boolean
+ x-vcloud-added-in: "35.0"
+ description: |
+ Indicates whether the resource pool's cluster is enabled for vSphere Kubernetes.
+
diff --git a/schemas/openapi/src/main/resources/schemas/vc/unmanagedVirtualMachine.yaml b/schemas/openapi/src/main/resources/schemas/vc/unmanagedVirtualMachine.yaml
new file mode 100644
index 00000000..656a7fb8
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vc/unmanagedVirtualMachine.yaml
@@ -0,0 +1,122 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2020-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ Entity used to describe unmanaged Virtual Machine in vCenter, such unmanaged VMs are candidates for import into Cloud Director.
+ title: Unmanaged Virtual Machine
+ version: "1.0"
+
+paths:
+ unmanagedVirtualMachines:
+ get:
+ x-cloud-added-in: 34.0
+ tags:
+ - VirtualCenter
+ summary: Get a list of unmanaged virtual machines from vCenter Server
+ description: |
+ Get a list of unmanaged virtual machines from vCenter Server
+ operationId: getUnmanagedVirtualMachines
+ x-vcloud-default-sort:
+ default-sort-field: name
+ sort-ascending: true
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "./vc/unmanagedVirtualMachine.yaml#/definitions/UnmanagedVirtualMachines"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+definitions:
+
+ UnmanagedVirtualMachine:
+ x-vcloud-added-in: "34.0"
+ description: |
+ An unmanaged Virtual Machine is a Virtual Machine that is not managed by Cloud Director but is present in vCenter.
+ type: object
+ properties:
+ name:
+ type: string
+ description: The name of the virtual machine.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ memory:
+ type: integer
+ format: int64
+ description: The total memory (in MB) of the virtual machine.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ cpuCount:
+ type: integer
+ format: int32
+ description: The total number of CPUs of the virtual machine.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ storage:
+ type: integer
+ format: int64
+ description: The total storage (in KB) of the virtual machine.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ path:
+ type: string
+ description: The absolute path of the virtual machine in the vCenter's datastore.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ virtualHardwareVersion:
+ type: integer
+ description: The virtual hardware version of the virtual machine.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ state:
+ type: string
+ description: The following strings are valid states of the virtual machine.
+
+
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ moRef:
+ type: string
+ description: The vSphere Managed Object Reference.
+ x-vcloud-constraint:
+ - constraint: NonSortable
+ - constraint: ReadOnly
+
+ UnmanagedVirtualMachines:
+ x-vcloud-added-in: "34.0"
+ description: |
+ A list of unmanaged Virtual Machines
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: "./vc/unmanagedVirtualMachine.yaml#/definitions/UnmanagedVirtualMachine"
diff --git a/schemas/openapi/src/main/resources/schemas/vc/vcStoragePolicies.yaml b/schemas/openapi/src/main/resources/schemas/vc/vcStoragePolicies.yaml
new file mode 100644
index 00000000..3ff74569
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vc/vcStoragePolicies.yaml
@@ -0,0 +1,46 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2020-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The Virtual Center Storage Policy API allows for management of storage policies configured for virtual centers.
+ title: Virtual Center Storage Policy API
+
+paths:
+ capabilities:
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: moref
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: UUID
+
+ get:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Retrieves capabilities of a specific Virtual Center storage policy.
+ description: |
+ Retrieves the current capabilities configured on a specific Virtual Center storage policy.
+ These cannot be edited.
+ operationId: getVcStoragePolicyCapabilities
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: './common/capability.yaml#/definitions/Capabilities'
diff --git a/schemas/openapi/src/main/resources/schemas/vc/virtualCenter.yaml b/schemas/openapi/src/main/resources/schemas/vc/virtualCenter.yaml
new file mode 100644
index 00000000..b3c9cc39
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vc/virtualCenter.yaml
@@ -0,0 +1,903 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The Virtual Center API allows for basic CRUD operations of a VC.
+ title: Virtual Center API
+
+paths:
+
+ rootResourcePools:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - VirtualCenter
+ summary: Get resource pools of a VC
+ description: |
+ Get a list of all root resource pools.
+ If a resource pool is ineligible, but is in the response,
+ this means it has children, which are eligible.
+ A resource pool will be ineligible,
+ unless the cluster has an ESXi host on it.
+ The list will be sorted by name, case insensitive.
+ operationId: getRootResourcePools
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/ResourcePools"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ childResourcePools:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - VirtualCenter
+ summary: Get resource pools of a VC
+ description: |
+ Get list of child resource pools of the specified parent.
+ If a resource pool is ineligible, but is in the response,
+ this means it has children, which are eligible.
+ A resource pool will be ineligible,
+ unless the cluster has an ESXi host on it.
+ The list will be sorted by name, case insensitive.
+ operationId: getChildResourcePools
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: moref
+ in: path
+ required: true
+ type: string
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/ResourcePools"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ storageProfiles:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - VirtualCenter
+ summary: Get storage profiles of a VC
+ description: |
+ Get a list of all storage profiles for a VC.
+ Supported contexts are:
+ Resource Pool Moref (_context==moref) - |
+ Returns all the storage profiles which are related to a specific Resoure Pool.
+ Example: /cloudapi/{ver}/virtualCenters/{urn}/storageProfiles?filter=_context==resgroup-N
+ operationId: getStorageProfiles
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/StorageProfiles"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ supportedHardwareVersions:
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - VirtualCenter
+ summary: Get supported hardware versions of a resource pool
+ description: |
+ Get a set of all supported hardware versions by the ESXi hosts in the resource pool.
+ operationId: getSupportedHardwareVersions
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: moref
+ in: path
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/HardwareVersions"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ kubernetesConfig:
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - VirtualCenter
+ summary: Get kubernetes configuration for a resource pool.
+ description: |
+ Get kubernetes configuration for a resource pool which is backed by a kubernetes enabled cluster.
+ operationId: getResourcePoolKubernetesConfig
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: moref
+ in: path
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/ResourcePoolKubernetesConfig"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ virtualMachineClasses:
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - VirtualCenter
+ summary: Get a list of Virtual Machine Classes associated with this resource pool.
+ description: |
+ Get a list of Virtual Machine Classes associated with this resource pool.
+ This API throws 400 BadRequestException if called against a resource pool which is not Kubernetes enabled.
+ operationId: queryVirtualMachineClasses
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: moref
+ in: path
+ required: true
+ type: string
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/definitions/VirtualMachineClasses"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ virtualCenter:
+ get:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Get Virtual Center server
+ description: |
+ Retrieve the representation of a vCenter server registered and managed by vCD.
+ operationId: getVirtualCenter
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/VCenterServer"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+ put:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Update specified Virtual Center server
+ description: |
+ Update the representation of a registered vCenter server.
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ Starting with API version 36.0, a null nsxVManager will attempt to remove the NSX-V Manager from the vCenter,
+ and a non-null nsxVManager will attempt to add the NSX-V Manager to the vCenter if there is none registered
+ or update the NSX-V Manager if there is one already registered to the vCenter.
+ If you don't want to update the NSX-V Manager, provide the same NSX-V Manager settings as the existing one.
+ For API versions before 36.0, no changes or updates to the nsxVManager will be made,
+ regardless of whether an nsxVManger is provided or if it's different than the existing one.
+ operationId: updateVirtualCenter
+ consumes:
+ - application/json
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: updateVCenterServerParams
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/VCenterServer"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ delete:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Detach the specified Virtual Center server
+ description: |
+ Unregister a vCenter server.
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ operationId: deleteVirtualCenter
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ virtualCenterMetrics:
+ get:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Get Virtual Center server metrics
+ description: |
+ Retrieve the metrics of a registered vCenter server.
+ operationId: getVirtualCenterMetrics
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/VCenterServerMetrics"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ nsxVManagerSettings:
+ get:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Get Virtual Center server network settings
+ description: |
+ Retrieve the networking configuration of a registered vCenter server.
+ operationId: getNsxVManagerSettings
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: "#/definitions/NsxVManagerSettings"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+ put:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Update specified Virtual Center server network settings
+ description: |
+ Update the network settings of a registered vCenter server.
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ operationId: updateNsxVManagerSettings
+ consumes:
+ - application/json
+ parameters:
+ - name: vcUrn
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ - name: updateVCenterServerParams
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/NsxVManagerSettings"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ virtualCenters:
+ get:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ summary: Gets a paged list of Virtual Center servers.
+ description: |
+ Retrieves a paged list of all Virtual Center servers in the system.
+ operationId: queryVirtualCenters
+ x-vcloud-multisite: true
+ x-vcloud-default-sort:
+ default-sort-field: name
+ sort-ascending: true
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VCenterServers"
+ post:
+ x-vcloud-added-in: "34.0"
+ tags:
+ - VirtualCenter
+ operationId: attachVirtualCenter
+ summary: Attach a Virtual Center server
+ description: Attach a Virtual Center server.
+ consumes:
+ - application/json
+ parameters:
+ - name: vimserver
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/VCenterServer"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+ 401:
+ description: Unauthorized
+
+definitions:
+
+ ResourcePools:
+ description: |
+ A list of Resource Pools
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: "./vc/resourcePool.yaml#/definitions/ResourcePool"
+
+ StorageProfiles:
+ description: |
+ A list of Storage Profiles
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: "./vc/virtualCenter.yaml#/definitions/StorageProfile"
+
+ StorageProfile:
+ description: |
+ A Storage Profile.
+ type: object
+ properties:
+ moref:
+ type: string
+ description: The Moref of the Storage Profile.
+ name:
+ type: string
+ description: The name of the Storage Profile.
+
+ SupportedHardwareVersion:
+ x-vcloud-added-in: "35.2"
+ description: supported ESXi virtual hardware version.
+ type: object
+ properties:
+ isDefault:
+ type: boolean
+ description: indicates whether this virtual hardware version is the default in vCenter.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ name:
+ type: string
+ description: The name of the virtual hardware version.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+
+ HardwareVersions:
+ x-vcloud-added-in: "33.0"
+ description: Set of supported ESXi virtual hardware versions.
+ type: object
+ properties:
+ versions:
+ type: array
+ items:
+ type: string
+ supportedVersions:
+ type: array
+ items:
+ $ref: '#/definitions/SupportedHardwareVersion'
+ x-vcloud-property-annotations:
+ versions:
+ x-vcloud-added-in: "33.0"
+ x-vcloud-deprecated-in: "35.2"
+ x-vcloud-deprecated-alternative: supportedVersions
+ supportedVersions:
+ x-vcloud-added-in: "35.2"
+
+ NsxVManager:
+ x-vcloud-added-in: "34.0"
+ description: |
+ An object representing an NSX-V server.
+ type: object
+ properties:
+ username:
+ type: string
+ description: User name to connect to the NSX-V server.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ password:
+ type: string
+ description: Cleartext password to connect to the NSX-V server.
+ x-vcloud-password: true
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ url:
+ type: string
+ description: URL of the server.
+ format: uri
+ example: https://sampleVsm.vmware.com
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ softwareVersion:
+ type: string
+ description: Version of the NSX-V Manager
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ required:
+ - username
+ - url
+
+ VCenterServer:
+ x-vcloud-added-in: "34.0"
+ description: |
+ An object representing a vCenter server.
+ type: object
+ properties:
+ vcId:
+ type: string
+ description: URN of the associated vCenter server.
+ example: urn:vcloud:vimserver:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ name:
+ type: string
+ description: The name of the vCenter server.
+ example: vCenter Sample Name
+ description:
+ type: string
+ description: Optional description.
+ example: vCenter Sample Description
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ username:
+ type: string
+ description: User name to connect to the server.
+ password:
+ type: string
+ description: Cleartext password to connect to the server.
+ x-vcloud-password: true
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ url:
+ type: string
+ description: URL of the server.
+ format: uri
+ example: https://sampleVc.vmware.com
+ isEnabled:
+ type: boolean
+ default: false
+ description: True if the vCenter server is enabled for use with vCloud Director.
+ vsphereWebClientServerUrl:
+ type: string
+ description: The URL of vCenter web client server.
+ format: uri
+ hasProxy:
+ type: boolean
+ default: false
+ description: When present, indicates that a proxy exists within vCloud Director that proxies this vCenter server
+ for access by authorized end-users. Setting this field to true when registering a vCenter server
+ will result in a proxy being created for the vCenter server, and another
+ for the corresponding SSO endpoint (if different from the vCenter server's endpoint).
+ This field is immutable after the vCenter Server is registered, and will be updated by the system
+ when/if the proxy is removed.
+ rootFolder:
+ type: string
+ description: vCenter root folder in which the vCloud Director system folder will
+ be created. This parameter only takes the folder name and not
+ directory structure.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ vcNoneNetwork:
+ type: string
+ description: Network in Vcenter to be used as 'NONE' network by vCD.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ tenantVisibleName:
+ type: string
+ description: Public label of this vCenter server visible to all tenants.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ isConnected:
+ type: boolean
+ default: false
+ description: True if the vCenter server is connected.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ mode:
+ type: string
+ enum: [NONE, IAAS, SDDC, MIXED]
+ description: The vcenter mode. One of
+
+
+ IAAS indicates this vCenter server is scoped to the provider. SDDC indicates that this
+ vCenter server is scoped to tenants, while MIXED indicates mixed mode, where both uses are
+ allowed in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ listenerState:
+ type: string
+ description: The vcenter listener state. One of
+
+
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ clusterHealthStatus:
+ type: string
+ enum: [GRAY, RED, YELLOW, GREEN]
+ description: The overall health status of clusters in this vCenter server. One of
+
+
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ vcVersion:
+ type: string
+ description: The version of the VIM server.
+ example: 6.7.0
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ buildNumber:
+ x-vcloud-added-in: "35.2"
+ type: string
+ description: The build number of the VIM server.
+ example: 12345
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ uuid:
+ type: string
+ description: The instance UUID property of the vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ nsxVManager:
+ $ref: '#/definitions/NsxVManager'
+ description: the NSX-V attached to this Virtual Center server, when present.
+ proxyConfigurationUrn:
+ required: false
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: proxyConfiguration
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ required:
+ - name
+ - username
+ - url
+
+ VCenterServerMetrics:
+ x-vcloud-added-in: "34.0"
+ description: |
+ An object representing metrics of a vCenter server.
+ type: object
+ properties:
+ vcId:
+ type: string
+ description: URN of the associated vCenter server.
+ example: urn:vcloud:vimserver:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ clustersCount:
+ type: integer
+ description: The number of clusters in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ totalVmCount:
+ type: integer
+ description: The number of VMs in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ poweredOnVmCount:
+ type: integer
+ description: The number of powered-on VMs in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ totalMemMb:
+ type: integer
+ description: The total memory (in MB) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ reservedMemMb:
+ type: integer
+ description: The reserved memory (in MB) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ demandedMemMb:
+ type: integer
+ description: The demanded memory (in MB) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ totalCpuMhz:
+ type: integer
+ description: The total CPU (in MHz) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ reservedCpuMhz:
+ type: integer
+ description: The reserved CPU (in MHz) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ demandedCpuMhz:
+ type: integer
+ description: The demanded CPU (in MHz) in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ totalStorageMb:
+ type: integer
+ description: The size (in MB) of all datastores in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ freeStorageMb:
+ type: integer
+ description: The size of free storage (in MB) of all datastores in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ uncommittedStorageMb:
+ type: integer
+ description: The size of uncommitted storage (in MB) of all datastores in this vCenter server.
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ NsxVManagerSettings:
+ x-vcloud-added-in: "34.0"
+ description: |
+ An object representing networking configuration of a vCenter server.
+ type: object
+ properties:
+ vcId:
+ type: string
+ description: URN of the associated vCenter server.
+ example: urn:vcloud:vimserver:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ - constraint: Urn
+ args:
+ - arg: vimserver
+ networkProviderScope:
+ type: string
+ description: Public label of this NSX server visible to all tenants.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ controlVmResourcePoolVcPath:
+ type: string
+ description: Path to the resource pool to use for creating Control VM for Cross-VDC Networking.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ controlVmDatastoreName:
+ type: string
+ description: Name of the Datastore to use for creating Control VM for Cross-VDC Networking.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ controlVmManagementInterfaceName:
+ type: string
+ description: Name of the management interface to use for creating Control VM for Cross-VDC Networking.
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ required:
+ - vcId
+ - networkProviderScope
+ - controlVmResourcePoolVcPath
+ - controlVmDatastoreName
+ - controlVmManagementInterfaceName
+
+ VCenterServers:
+ description: |
+ A list of vCenter servers.
+ allOf:
+ - $ref: '#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of vCenter server.
+ items:
+ $ref: '#/definitions/VCenterServer'
+
+ ResourcePoolKubernetesConfig:
+ x-vcloud-added-in: "35.0"
+ description: |
+ Kubernetes configuration for a resource pool backed by kubernetes enabled cluster.
+ type: object
+ properties:
+ controlPlaneEndpoint:
+ type: string
+ description: |
+ Endpoint for the kubernetes enabled cluster backed by this Resource Pool.
+
diff --git a/schemas/openapi/src/main/resources/schemas/vcloud-openapi-schemas.yaml b/schemas/openapi/src/main/resources/schemas/vcloud-openapi-schemas.yaml
index 1a39aabf..4c789425 100644
--- a/schemas/openapi/src/main/resources/schemas/vcloud-openapi-schemas.yaml
+++ b/schemas/openapi/src/main/resources/schemas/vcloud-openapi-schemas.yaml
@@ -1,30 +1,307 @@
# ******************************************************************************
# * api-extension-template-vcloud-director
-# * Copyright 2011-2018 VMware, Inc. All rights reserved. *
+# * Copyright 2017 -2021 VMware, Inc. All rights reserved. *
# * SPDX-License-Identifier: BSD-2-Clause
# ******************************************************************************
+
swagger: "2.0"
info:
- title: Umbrella vcloud YAML
- description: Top level YAML file to contain all vcloud openapi schemas
- version: "1.0"
+ title: VMware Cloud Director OpenAPI
+ version: "36.0"
+ contact:
+ name: VMware, Inc.
+ url: https://code.vmware.com
+ email: https://code.vmware.com/support
+ license:
+ name: ''
+ url: ''
+ # When editing this description, be careful about how it renders in the docs
+ description: |
+ VMware Cloud Director OpenAPI is a new API that is defined using the OpenAPI standards.
+ This ReSTful API borrows some elements of the legacy VMware Cloud Director API and establishes new patterns for use
+ as described below.
+ Authentication
+ Authentication and Authorization schemes are the same as those for the legacy APIs. You can authenticate
+ using the JWT token via the Authorization header or specifying a session using
+ x-vcloud-authorization (The latter form is deprecated).
+ Operation Patterns
+ This API follows the following general guidelines to establish a consistent CRUD pattern:
+
+
+
+ Operation Description Response Code Response Content
+
+ GET /items Returns a paginated list of items 200 Response will include Navigational links to the items in the list.
+
+ POST /items Returns newly created item 201 Content-Location header links to the newly created item
+
+ GET /items/urn Returns an individual item 200 A single item using same data type as that included in list above
+
+ PUT /items/urn Updates an individual item 200 Updated view of the item is returned
+
+
+ DELETE /items/urn Deletes the item 204 No content is returned.
+ Asynchronous operations
+ Asynchronous operations are determined by the server. In those cases, instead of responding as described above,
+ the server responds with an HTTP Response code 202 and an empty body. The tracking task (which is the same task as
+ all legacy API operations use) is linked via the URI provided in the Location header.
+ All API calls can choose to service a request asynchronously or synchronously as determined by the server upon
+ interpreting the request. Operations that choose to exhibit this dual behavior will have both options documented by
+ specifying both response code(s) below. The caller must be prepared to handle responses to such API calls by
+ inspecting the HTTP Response code.
+ Error Conditions
+ All operations report errors using the following error reporting rules:
+
+
+ OpenAPI Design Concepts and Principles
+
+
basePath: /cloudapi
-
schemes:
- - https
+ - HTTPS
+produces:
+ - '*/*'
+
+tags:
+ - name: accessControls
+ - name: accessLevels
+ - name: Advisory
+ description: APIs that allow administrators to create advisories and all users to view and snooze/dismiss them.
+ - name: applicationPortProfile
+ - name: applicationPortProfiles
+ - name: auditTrail
+ - name: auditTrailUnimplemented
+ - name: branding
+ - name: capabilities
+ - name: Cell
+ - name: certificateLibrary
+ - name: cloudApiBase
+ - name: codegenPlaceholder
+ - name: Configurations
+ - name: cors
+ - name: crossVdcNetwork
+ - name: crossVdcNetworks
+ - name: customEntities
+ - name: definedEntity
+ - name: definedEntityType
+ - name: definedInterface
+ - name: definedInterfaceBehaviors
+ - name: dfwPolicies
+ - name: dfwPolicy
+ - name: dvpgProperties
+ - name: edgeCluster
+ - name: edgeClusters
+ - name: edgeGateway
+ - name: edgeGatewayBgp
+ - name: edgeGatewayBgpNeighbor
+ - name: edgeGatewayBgpNeighbors
+ - name: edgeGatewayDns
+ - name: edgeGatewayFirewallRule
+ - name: edgeGatewayFirewallRules
+ - name: edgeGatewayIpSecVpnTunnel
+ - name: edgeGatewayIpSecVpnTunnelConnectionProperties
+ - name: edgeGatewayIpSecVpnTunnels
+ - name: edgeGatewayL2VpnTunnel
+ - name: edgeGatewayL2VpnTunnels
+ - name: edgeGatewayLoadBalancer
+ - name: edgeGatewayLoadBalancerAnalytics
+ - name: edgeGatewayLoadBalancerPool
+ - name: edgeGatewayLoadBalancerPools
+ - name: edgeGatewayLoadBalancerVirtualService
+ - name: edgeGatewayLoadBalancerVirtualServices
+ - name: edgeGatewayNatRule
+ - name: edgeGatewayNatRules
+ - name: edgeGatewayPrefixList
+ - name: edgeGatewayPrefixLists
+ - name: edgeGatewayRouteAdvertisement
+ - name: edgeGateways
+ - name: edgeGatewaySLAACProfile
+ - name: egressPoint
+ - name: egressPoints
+ - name: EmailSettings
+ - name: entity
+ - name: entityQuotas
+ - name: externalNetwork
+ - name: externalNetworks
+ - name: externalService
+ - name: firewallGroup
+ - name: firewallGroupCandidates
+ - name: firewallGroups
+ - name: globalRoles
+ - name: Group
+ - name: LDAP
+ - name: loadBalancerCloud
+ - name: loadBalancerClouds
+ - name: loadBalancerController
+ - name: loadBalancerControllers
+ - name: loadBalancerServiceEngineGroup
+ - name: loadBalancerServiceEngineGroupAssignment
+ - name: loadBalancerServiceEngineGroupAssignments
+ - name: loadBalancerServiceEngineGroups
+ - name: logicalVmGroups
+ - name: networkContextProfile
+ - name: networkContextProfileAttributes
+ - name: networkContextProfiles
+ - name: networkPool
+ - name: networkPools
+ - name: nsxAlbResources
+ - name: nsxTResources
+ - name: nsxTResourcesDisabled
+ - name: nsxVResources
+ - name: Org
+ - name: orgVdcNetwork
+ - name: orgVdcNetworkDhcp
+ - name: orgVdcNetworks
+ - name: orgVdcStoragePolicy
+ - name: preferences
+ - name: ProviderVdc
+ - name: proxy
+ - name: proxyConfiguration
+ - name: pvdcComputePolicies
+ - name: pvdcComputePolicies2
+ - name: pvdcStoragePolicy
+ - name: quotaPolicies
+ description: |
+ Quota Management Definition APIs allow for creation and management of limits on various resources that are encapsulated as quota policies.
+ These quotas can be put to use by assigning them to various targets using quotaPolicyAssignment APIs
+ - name: quotaPolicyAssignment
+ description: Quota Management Assignment APIs allow application of defined quota policies to various to a variety of targets.
+ - name: rights
+ - name: rightsBundles
+ - name: rightsCategories
+ - name: roles
+ - name: sddcProxy
+ - name: sddcs
+ - name: securityTags
+ - name: serviceApp
+ - name: serviceApps
+ - name: services
+ - name: sessions
+ - name: siteSettings
+ - name: sslSettings
+ - name: storageContainer
+ - name: storagePolicy
+ - name: testConnection
+ - name: tkgCluster
+ - name: token
+ - name: trustedCertificates
+ - name: typeAccessControls
+ - name: uiPlugin
+ - name: uiPluginResource
+ - name: uiPlugins
+ - name: uiPluginTenants
+ - name: universalRouter
+ - name: universalRouterDhcp
+ - name: universalRouterDns
+ - name: universalRouterHealth
+ - name: universalRouters
+ - name: universalRouting
+ - name: User
+ - name: vCenterResources
+ - name: vdc
+ - name: vdc2
+ - name: vdcComputePolicies
+ - name: vdcComputePolicies2
+ - name: vdcComputePolicies2NonPublic
+ - name: vdcGroup
+ - name: vdcGroupCandidates
+ - name: vdcGroups
+ - name: vdcGroupsSettings
+ - name: vdcNetworkProfile
+ - name: VirtualCenter
+ - name: vmcSddcs
+ - name: vrealizeBrowse
+ - name: vrealizeCatalog
+ - name: vrealizeCategory
+ - name: vRealizeOrchestrator
+ - name: vRealizeOrchestrators
+ - name: vrealizeWorkflows
+ - name: vroFormsOverlay
+ - name: vroWorkflowExecution
+ - name: vroWorkflowPresentation
+
+x-vmw-vendor-extensions:
+ - name: x-vcloud-added-in
+ description: Indicates the API version the feature/api/model/field was added in.
+ - name: x-vcloud-deprecated-in
+ description: Indicates the API version the feature/api/model/field was deprecated in.
+ - name: x-vcloud-deprecated-alternative
+ description: A textual description of the alternative to be used for the feature/api/model/field that has been deprecated.
+ - name: x-vcloud-removed-in
+ description: Indicates the API version, whenceforth the feature/api/model/field will no longer be available.
+ - name: x-vcloud-event
+ description: The Event that is emitted by this operation
paths:
+
+ /:
+ get:
+ tags:
+ - cloudApiBase
+ summary: Get base navigation links
+ description: Retrieves links to start navigation
+ operationId: getBaseLinks
+ responses:
+ '204':
+ description: Base links successfully retrieved
+ '401':
+ description: The user is not authorized to retrieve base links
+
/branding:
$ref: "./branding/branding.yaml#/paths/branding"
/branding/logo:
$ref: "./branding/branding.yaml#/paths/logo"
+ /branding/icon:
+ $ref: "./branding/branding.yaml#/paths/icon"
+
+ /branding/tenant/{org}:
+ $ref: "./branding/branding.yaml#/paths/org-branding"
+
+ /branding/tenant/{org}/logo:
+ $ref: "./branding/branding.yaml#/paths/org-logo"
+
+ /branding/tenant/{org}/icon:
+ $ref: "./branding/branding.yaml#/paths/org-icon"
+
/branding/themes:
$ref: "./branding/branding.yaml#/paths/themes"
+ /branding/themes/{name}:
+ $ref: "./branding/branding.yaml#/paths/theme-name"
+
+ /branding/themes/{name}/css:
+ $ref: "./branding/branding.yaml#/paths/theme-name-css"
+
+ /branding/themes/{name}/contents:
+ $ref: "./branding/branding.yaml#/paths/theme-name-contents"
+
/extensions/ui:
$ref: "./extensions/extensions.yaml#/paths/extensions-ui"
@@ -49,6 +326,16 @@ paths:
/extensions/ui/{id}/tenants/unpublishAll:
$ref: "./extensions/extensions.yaml#/paths/extensions-ui-id-plugin-tenants-unpublish-all"
+ /extensions/ui/extensionPoints:
+ $ref: "./extensions/extensions.yaml#/paths/extensions-ui-extension-point-summary"
+
+ #### API extensibility ####
+ /extensions/api:
+ $ref: "./extensibility/externalServices.yaml#/paths/external-services"
+ /extensions/api/{id}:
+ $ref: "./extensibility/externalServices.yaml#/paths/external-service"
+
+
/serviceItem:
$ref: "./services/services.yaml#/paths/service-items"
@@ -96,7 +383,13 @@ paths:
#enforce generation of referred constraints
/workflows/constraints:
$ref: "./vro/workflowExecution.yaml#/paths/supported-constraints"
- #END temporary codegen placeholder
+
+ #enforce generation of common Page type to be used for paged lists
+ /query/page:
+ $ref: "./common/query.yaml#/paths/page-placeholder"
+
+ /vro/servers/discovery:
+ $ref: "./vro/vro.yaml#/paths/discovery"
/vro/servers:
$ref: "./vro/vro.yaml#/paths/vros"
@@ -104,23 +397,35 @@ paths:
/vro/servers/{id}:
$ref: "./vro/vro.yaml#/paths/vro"
+ /vro/servers/{vroId}/sdkObjects/{target}:
+ $ref: "./vro/vro.yaml#/paths/vroSdkObjectsBase"
+
+ /vro/servers/{vroId}/sdkObjects/{target}/{browsePaths:.+}:
+ $ref: "./vro/vro.yaml#/paths/vroSdkObjectsBrowse"
+
+ /vro/servers/{vroId}/entityTypes:
+ $ref: "./vro/vro.yaml#/paths/pluginList"
+
+ /vro/servers/{vroId}/entityTypes/{pluginName}:
+ $ref: "./vro/vro.yaml#/paths/pluginTypeList"
+
+########################################################
+#
+# These API's will be deleted after transitioning to above APIs
+#
+########################################################
+
/vro/servers/{vroServerId}/workflows:
$ref: "./vro/vro.yaml#/paths/queryWorkflows"
/vro/servers/{vroId}/inventory{any:.*}:
$ref: "./vro/vro.yaml#/paths/vroInventory"
- /vro/servers/{vroId}/catalog:
- $ref: "./vro/vro.yaml#/paths/vroCatalogBase"
-
- /vro/servers/{vroId}/catalog/{plugin}:
- $ref: "./vro/vro.yaml#/paths/vroCatalogPlugin"
-
- /vro/servers/{vroId}/catalog/{plugin}/{type}:
- $ref: "./vro/vro.yaml#/paths/vroCatalogPluginType"
-
- /vro/servers/{vroId}/catalog/{plugin}/{type}/{itemId}:
- $ref: "./vro/vro.yaml#/paths/vroCatalogPluginTypeItem"
+########################################################
+#
+# Above API's will be deleted after transitioning to above APIs
+#
+########################################################
/workflows/{workflowId}/executions:
$ref: "./vro/workflowExecution.yaml#/paths/workflow-executions"
@@ -140,6 +445,11 @@ paths:
/workflows/{workflowId}/presentation/instances/{presentationExecutionId}:
$ref: "./vro/workflowExecution.yaml#/paths/workflow-presentation-instance"
+### VCD Entity endpoints below ###
+
+ /1.0.0/entity/{id}:
+ $ref: "./entity-resolver/entityResolver.yaml#/paths/entity-resolver"
+
### Custom Entities endpoints below ###
/customEntityTypes:
@@ -148,6 +458,21 @@ paths:
/customEntityTypes/{customEntityTypeId}:
$ref: "./vro/customEntities.yaml#/paths/custom-entity-type"
+ /customEntityTypes/{customEntityTypeId}/tenants:
+ $ref: "./vro/customEntities.yaml#/paths/custom-entity-type-tenants"
+
+ /customEntityTypes/{customEntityTypeId}/tenants/publish:
+ $ref: "./vro/customEntities.yaml#/paths/custom-entity-type-tenants-publish"
+
+ /customEntityTypes/{customEntityTypeId}/tenants/unpublish:
+ $ref: "./vro/customEntities.yaml#/paths/custom-entity-type-tenants-unpublish"
+
+ /customEntityTypes/{customEntityTypeId}/tenants/publishAll:
+ $ref: "./vro/customEntities.yaml#/paths/custom-entity-type-tenants-publish-all"
+
+ /customEntityTypes/{customEntityTypeId}/tenants/unpublishAll:
+ $ref: "./vro/customEntities.yaml#/paths/custom-entity-type-tenants-unpublish-all"
+
/customEntityTypes/{customEntityTypeId}/actions:
$ref: "./vro/customEntities.yaml#/paths/custom-entity-type-actions"
@@ -163,7 +488,941 @@ paths:
/customEntities/{customEntityId}/sdkObject:
$ref: "./vro/customEntities.yaml#/paths/custom-entity-sdk-object"
+ ### RBAC 2.0 endpoints below ###
+ /1.0.0/rights:
+ $ref: "./rbac/rights.yaml#/paths/rights"
+
+ /1.0.0/rights/{id}:
+ $ref: "./rbac/rights.yaml#/paths/rights-id"
+
+ /1.0.0/rightsCategories:
+ $ref: "./rbac/rightsCategories.yaml#/paths/rights-categories"
+
+ /1.0.0/rightsCategories/{id}:
+ $ref: "./rbac/rightsCategories.yaml#/paths/rights-category"
+
+ /1.0.0/rightsBundles:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundles"
+
+ /1.0.0/rightsBundles/{id}:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle"
+
+ /1.0.0/rightsBundles/{id}/rights:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-rights"
+
+ /1.0.0/rightsBundles/{id}/tenants:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-tenants"
+
+ /1.0.0/rightsBundles/{id}/tenants/publish:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-tenants-publish"
+
+ /1.0.0/rightsBundles/{id}/tenants/unpublish:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-tenants-unpublish"
+
+ /1.0.0/rightsBundles/{id}/tenants/publishAll:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-tenants-publish-all"
+
+ /1.0.0/rightsBundles/{id}/tenants/unpublishAll:
+ $ref: "./rbac/rightsBundles.yaml#/paths/rights-bundle-tenants-unpublish-all"
+
+ /1.0.0/globalRoles:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-roles"
+
+ /1.0.0/globalRoles/{id}:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role"
+
+ /1.0.0/globalRoles/{id}/rights:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-rights"
+
+ /1.0.0/globalRoles/{id}/tenants:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-tenants"
+
+ /1.0.0/globalRoles/{id}/tenants/publish:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-tenants-publish"
+
+ /1.0.0/globalRoles/{id}/tenants/unpublish:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-tenants-unpublish"
+
+ /1.0.0/globalRoles/{id}/tenants/publishAll:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-tenants-publish-all"
+
+ /1.0.0/globalRoles/{id}/tenants/unpublishAll:
+ $ref: "./rbac/globalRoles.yaml#/paths/global-role-tenants-unpublish-all"
+
+ /1.0.0/roles:
+ $ref: "./rbac/roles.yaml#/paths/roles"
+
+ /1.0.0/roles/{id}:
+ $ref: "./rbac/roles.yaml#/paths/role"
+
+ /1.0.0/roles/{id}/rights:
+ $ref: "./rbac/roles.yaml#/paths/role-rights"
+
+#### Compute policies API below ####
+
+ /1.0.0/pvdcComputePolicies:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/pvdc-compute-policies"
+
+ /1.0.0/pvdcComputePolicies/{pvdcComputePolicyId}:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/pvdc-compute-policy"
+
+ /1.0.0/pvdcComputePolicies/{pvdcComputePolicyId}/vms:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/pvdc-compute-policy-vm-refs"
+
+ /1.0.0/vdcComputePolicies:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/vdc-compute-policies"
+
+ /1.0.0/vdcComputePolicies/{vdcComputePolicyId}:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/vdc-compute-policy"
+
+ /1.0.0/vdcComputePolicies/{vdcComputePolicyId}/vms:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/vdc-compute-policy-vm-refs"
+
+ /1.0.0/vdcComputePolicies/{vdcComputePolicyId}/vdcs:
+ $ref: "./compute-policy/compute-policy.yaml#/paths/vdc-refs"
+
+#### Compute policies 2.0.0 API below ####
+
+ /2.0.0/pvdcComputePolicies:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-compute-policies"
+
+ /2.0.0/pvdcComputePolicies/{pvdcComputePolicyId}:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/pvdc-compute-policy"
+
+ /2.0.0/pvdcComputePolicies/{pvdcComputePolicyId}/virtualMachineClasses:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/virtual-machine-classes-pvdc-policy"
+
+ /2.0.0/vdcComputePolicies:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-compute-policies"
+
+ /2.0.0/vdcComputePolicies/{vdcComputePolicyId}:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-compute-policy"
+
+ /2.0.0/vdcComputePolicies/{vdcComputePolicyId}/metrics:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-compute-policy-metrics"
+
+ /2.0.0/vdcComputePolicies/{vdcComputePolicyId}/vdcs:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/vdc-refs"
+
+ /2.0.0/vdcComputePolicies/{vdcComputePolicyId}/virtualMachineClasses:
+ $ref: "./compute-policy/compute-policy-2.0.0.yaml#/paths/virtual-machine-classes-vdc-policy"
+
+#### Logical Vm Group API below ####
+
+ /1.0.0/logicalVmGroups:
+ $ref: "./compute-policy/logical-vm-group.yaml#/paths/logical-vm-groups"
+
+ /1.0.0/logicalVmGroups/{logicalVmGroupId}:
+ $ref: "./compute-policy/logical-vm-group.yaml#/paths/logical-vm-group"
+
+ /1.0.0/logicalVmGroups/{logicalVmGroupId}/namedVmGroups:
+ $ref: "./compute-policy/logical-vm-group.yaml#/paths/logical-vm-group-named-vm-group-refs"
+
+ /1.0.0/logicalVmGroups/{logicalVmGroupId}/pvdcPolicies:
+ $ref: "./compute-policy/logical-vm-group.yaml#/paths/logical-vm-group-pvdc-policy-refs"
+
+### Quota Policy APIs ###
+
+ /1.0.0/quotaPolicies:
+ $ref: "./quota-policy/quota-policy.yaml#/paths/quota-policies"
+
+ /1.0.0/quotaPolicies/{quotaPolicyId}:
+ $ref: "./quota-policy/quota-policy.yaml#/paths/quota-policy"
+
+ /1.0.0/quotaPolicy/capabilities:
+ $ref: "./quota-policy/quota-policy.yaml#/paths/capabilities"
+
+### Custom LDAP Endpoints Below ###
+
+ /1.0.0/ldap/test:
+ $ref: "./ldap/testLdap.yaml#/paths/test"
+
+ /1.0.0/ldap/sync:
+ $ref: "./ldap/syncLdap.yaml#/paths/sync"
+
+ /1.0.0/ldap/search/user:
+ $ref: "./ldap/searchLdap.yaml#/paths/searchUsers"
+
+ /1.0.0/ldap/search/group:
+ $ref: "./ldap/searchLdap.yaml#/paths/searchGroups"
+
+#### Email Settings test API below ####
+
+ /1.0.0/smtp/test:
+ $ref: "./email-settings/testEmailSettings.yaml#/paths/testEmailSettings"
+
+#### Advisories API below ####
+
+ /1.0.0/definitions/advisories:
+ $ref: "./advisories/advisories.yaml#/paths/advisory-definitions"
+
+ /1.0.0/definitions/advisories/{advisoryId}:
+ $ref: "./advisories/advisories.yaml#/paths/advisory-definition"
+
+ /1.0.0/advisories:
+ $ref: "./advisories/advisories.yaml#/paths/advisories"
+
+ /1.0.0/advisories/{advisoryId}:
+ $ref: "./advisories/advisories.yaml#/paths/advisory"
+
+#### vDC Groups API below ####
+
+ /1.0.0/vdcGroups:
+ $ref: "./vdcGroups/vdcGroups.yaml#/paths/vdcGroups"
+
+ /1.0.0/vdcGroups/networkingCandidateVdcs:
+ $ref: "./vdcGroups/vdcGroupCandidates.yaml#/paths/networkingCandidateVdcs"
+
+ /1.0.0/vdcGroups/{vdcGroupId}:
+ $ref: "./vdcGroups/vdcGroups.yaml#/paths/vdcGroup"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/sync:
+ $ref: "./vdcGroups/vdcGroups.yaml#/paths/sync"
+
+ /1.0.0/vdcGroups/settings:
+ $ref: "./vdcGroups/vdcGroups.yaml#/paths/settings"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/capabilities:
+ $ref: "./vdcGroups/vdcGroups.yaml#/paths/capabilities"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/universalRouters:
+ $ref: "./networking/universalRouters.yaml#/paths/universalRoutersForVdcGroup"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/crossVdcNetworks:
+ $ref: "./networking/crossVdcNetworks.yaml#/paths/crossVdcNetworksForVdcGroup"
+
+#### VDC Group DFW APIs ####
+ /1.0.0/vdcGroups/{vdcGroupId}/dfwPolicies:
+ $ref: "./networking/dfw.yaml#/paths/dfwPolicies"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/dfwPolicies/{policyId}:
+ $ref: "./networking/dfw.yaml#/paths/dfwPolicy"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/dfwPolicies/{policyId}/rules:
+ $ref: "./networking/dfw.yaml#/paths/dfwPolicyRules"
+
+ /1.0.0/vdcGroups/{vdcGroupId}/dfwPolicies/{policyId}/rules/{ruleId}:
+ $ref: "./networking/dfw.yaml#/paths/dfwPolicyRule"
+
+#### Cross vDC networks ####
+
+ /1.0.0/crossVdcNetworks:
+ $ref: "./networking/crossVdcNetworks.yaml#/paths/crossVdcNetworks"
+
+ /1.0.0/crossVdcNetworks/{crossVdcNetworkId}:
+ $ref: "./networking/crossVdcNetworks.yaml#/paths/crossVdcNetwork"
+
+ /1.0.0/crossVdcNetworks/{crossVdcNetworkId}/sync:
+ $ref: "./networking/crossVdcNetworks.yaml#/paths/sync"
+
+### Edge Gateways ####
+
+ /1.0.0/edgeGateways:
+ $ref: "./networking/edgeGateways.yaml#/paths/edgeGateways"
+
+ /1.0.0/edgeGateways/{gatewayId}:
+ $ref: "./networking/edgeGateways.yaml#/paths/edgeGateway"
+
+ /1.0.0/edgeGateways/{gatewayId}/usedIpAddresses:
+ $ref: "./networking/edgeGateways.yaml#/paths/usedIpAddresses"
+
+ /1.0.0/edgeGateways/{gatewayId}/dns:
+ $ref: "./networking/edgeGatewayDns.yaml#/paths/dns"
+
+ /1.0.0/edgeGateways/{gatewayId}/nat/rules:
+ $ref: "./networking/edgeGatewayNat.yaml#/paths/natRules"
+
+ /1.0.0/edgeGateways/{gatewayId}/nat/rules/{ruleId}:
+ $ref: "./networking/edgeGatewayNat.yaml#/paths/natRule"
+
+ /1.0.0/edgeGateways/{gatewayId}/firewall/rules:
+ $ref: "./networking/edgeGatewayFirewall.yaml#/paths/rules"
+
+ /1.0.0/edgeGateways/{gatewayId}/firewall/rules/{ruleId}:
+ $ref: "./networking/edgeGatewayFirewall.yaml#/paths/rule"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/ipsecVpnTunnels"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels/{tunnelId}:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/ipsecVpnTunnel"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels/defaultConnectionProperties:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/defaultConnectionProperties"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels/{tunnelId}/connectionProperties:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/ipsecVpnTunnelConnectionProperties"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels/{tunnelId}/status:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/ipsecVpnTunnelStatus"
+
+ /1.0.0/edgeGateways/{gatewayId}/ipsec/tunnels/{tunnelId}/statistics:
+ $ref: "./networking/edgeGatewayIpsec.yaml#/paths/ipsecVpnTunnelStatistics"
+
+ /1.0.0/edgeGateways/{gatewayId}/l2vpn/tunnels:
+ $ref: "./networking/edgeGatewayL2Vpn.yaml#/paths/l2VpnTunnels"
+
+ /1.0.0/edgeGateways/{gatewayId}/l2vpn/tunnels/{tunnelId}:
+ $ref: "./networking/edgeGatewayL2Vpn.yaml#/paths/l2VpnTunnel"
+
+ /1.0.0/edgeGateways/{gatewayId}/l2vpn/tunnels/{tunnelId}/status:
+ $ref: "./networking/edgeGatewayL2Vpn.yaml#/paths/l2VpnTunnelStatus"
+
+ /1.0.0/edgeGateways/{gatewayId}/l2vpn/tunnels/{tunnelId}/metrics:
+ $ref: "./networking/edgeGatewayL2Vpn.yaml#/paths/l2VpnTunnelStatistics"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/advertisement:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/routeAdvertisement"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/bgp"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp/neighbors:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/bgpNeighbors"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp/neighbors/{neighborId}:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/bgpNeighbor"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp/neighbors/{neighborId}/status:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/bgpNeighborStatus"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp/prefixLists:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/prefixLists"
+
+ /1.0.0/edgeGateways/{gatewayId}/routing/bgp/prefixLists/{listId}:
+ $ref: "./networking/edgeGatewayRouting.yaml#/paths/prefixList"
+
+ /1.0.0/edgeGateways/{gatewayId}/slaacProfile:
+ $ref: "./networking/edgeGatewaySLAACProfile.yaml#/paths/slaacProfile"
+
+ /1.0.0/edgeGateways/{gatewayId}/loadBalancer:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/loadBalancer"
+
+ /1.0.0/edgeGateways/{gatewayId}/loadBalancer/virtualServiceSummaries:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/virtualServiceSummariesForGateway"
+
+ /1.0.0/loadBalancer/virtualServices:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/virtualServices"
+
+ /1.0.0/loadBalancer/virtualServices/{virtualServiceId}:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/virtualService"
+
+ /1.0.0/edgeGateways/{gatewayId}/loadBalancer/poolSummaries:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/poolSummariesForGateway"
+
+ /1.0.0/loadBalancer/pools:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/pools"
+
+ /1.0.0/loadBalancer/pools/{poolId}:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/pool"
+
+ /1.0.0/loadBalancer/analyticReports:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/analyticReports"
+
+ /1.0.0/loadBalancer/analyticReports/supportedMetrics:
+ $ref: "./networking/edgeGatewayLoadBalancer.yaml#/paths/supportedMetrics"
+
+### Edge Clusters ###
+ /1.0.0/edgeClusters:
+ $ref: "./networking/edgeClusters.yaml#/paths/edgeClusters"
+
+ /1.0.0/edgeClusters/{edgeClusterId}:
+ $ref: "./networking/edgeClusters.yaml#/paths/edgeCluster"
+
+#### Universal Routers, Egress Points, and Routing ####
+
+ /1.0.0/universalRouters:
+ $ref: "./networking/universalRouters.yaml#/paths/universalRouters"
+
+ /1.0.0/universalRouters/{universalRouterId}:
+ $ref: "./networking/universalRouters.yaml#/paths/universalRouter"
+
+ /1.0.0/universalRouters/{universalRouterId}/sync:
+ $ref: "./networking/universalRouters.yaml#/paths/sync"
+
+ /1.0.0/universalRouters/{universalRouterId}/dns:
+ $ref: "./networking/universalRouters.yaml#/paths/dns"
+
+ /1.0.0/universalRouters/{universalRouterId}/dhcp:
+ $ref: "./networking/universalRouters.yaml#/paths/dhcp"
+
+ /1.0.0/universalRouters/{universalRouterId}/health:
+ $ref: "./networking/universalRouters.yaml#/paths/health"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing:
+ $ref: "./networking/universalRouting.yaml#/paths/universalEgressRouting"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing/routes:
+ $ref: "./networking/universalRouting.yaml#/paths/universalRouting"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing/routes/sync:
+ $ref: "./networking/universalRouting.yaml#/paths/universalRoutingSync"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing/egressPoints:
+ $ref: "./networking/universalEgressPoints.yaml#/paths/egressPoints"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing/egressPoints/{egressPointId}:
+ $ref: "./networking/universalEgressPoints.yaml#/paths/egressPoint"
+
+ /1.0.0/universalRouters/{universalRouterId}/routing/egressPoints/{egressPointId}/sync:
+ $ref: "./networking/universalEgressPoints.yaml#/paths/sync"
+
+#### Organization vDC networks ####
+ /1.0.0/orgVdcNetworks:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/orgVdcNetworks"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/orgVdcNetwork"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/reset:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/reset"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/syncSyslog:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/syncSyslog"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/dhcp:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/dhcp"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/allocatedIpAddresses:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/allocatedIpAddresses"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/secondaryAllocatedIpAddresses:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/secondaryAllocatedIpAddresses"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/dvpgProperties:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/dvpgProperties"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/sync:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/sync"
+
+ /1.0.0/orgVdcNetworks/{vdcNetworkId}/additionalProperties:
+ $ref: "./networking/orgVdcNetworks.yaml#/paths/orgVdcNetworkAdditionalProperties"
+
+#### Nsx-T resources APIs ####
+ /1.0.0/nsxTResources/importableTier0Routers:
+ $ref: "./networking/nsxTResources.yaml#/paths/importableTier0Routers"
+
+ /1.0.0/nsxTResources/importableTransportZones:
+ $ref: "./networking/nsxTResources.yaml#/paths/importableTransportZones"
+
+ /1.0.0/nsxTResources/edgeClusters:
+ $ref: "./networking/nsxTResources.yaml#/paths/edgeClusters"
+
+#### Nsx-V resources APIs ####
+ /1.0.0/nsxVResources/importableTransportZones:
+ $ref: "./networking/nsxVResources.yaml#/paths/importableTransportZones"
+
+
+#### NSX-ALB resources APIs ####
+ /1.0.0/nsxAlbResources/importableClouds:
+ $ref: "./networking/nsxAlbResources.yaml#/paths/importableClouds"
+
+ /1.0.0/nsxAlbResources/importableServiceEngineGroups:
+ $ref: "./networking/nsxAlbResources.yaml#/paths/importableServiceEngineGroups"
+
+#### User Preferences ####
+ /1.0.0/definitions/preferences:
+ $ref: "./preferences/user-preferences.yaml#/paths/preference-definitions"
+
+ /1.0.0/definitions/preferences/{preferenceDefinitionId}:
+ $ref: "./preferences/user-preferences.yaml#/paths/preference-definition"
+
+ /1.0.0/preferences:
+ $ref: "./preferences/user-preferences.yaml#/paths/preferences"
+
+ /1.0.0/preferences/{classifier}:
+ $ref: "./preferences/user-preferences.yaml#/paths/preference"
+
+#### CPOM endpoints ####
+ /1.0.0/sddcProxiesPac/{id}:
+ $ref: "./cpom/proxy.yaml#/paths/anonymousPacFile"
+
+ /1.0.0/sddcs:
+ $ref: "./cpom/sddc.yaml#/paths/sddcs"
+
+ /1.0.0/sddcs/{id}:
+ $ref: "./cpom/sddc.yaml#/paths/sddc"
+
+ /1.0.0/sddcs/{id}/proxies:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-proxies"
+
+ /1.0.0/sddcs/{id}/owner:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-owner"
+
+ /1.0.0/sddcs/{id}/tenants:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-tenants"
+
+ /1.0.0/sddcs/{id}/tenants/publish:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-tenants-publish"
+
+ /1.0.0/sddcs/{id}/tenants/unpublish:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-tenants-unpublish"
+
+ /1.0.0/endpoints:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-endpoints"
+
+ /1.0.0/endpoints/{id}:
+ $ref: "./cpom/sddc.yaml#/paths/sddc-endpoint"
+
+ /1.0.0/sddcProxiesPac:
+ $ref: "./cpom/proxy.yaml#/paths/pacFile"
+
+ /1.0.0/proxies:
+ $ref: "./cpom/proxy.yaml#/paths/proxies"
+
+ /1.0.0/proxies/{id}:
+ $ref: "./cpom/proxy.yaml#/paths/proxy"
+
+ /1.0.0/proxies/{id}/cert:
+ $ref: "./cpom/proxy.yaml#/paths/proxy-cert"
+
+ /1.0.0/proxies/{id}/crl:
+ $ref: "./cpom/proxy.yaml#/paths/proxy-crl"
+
+ /1.0.0/proxies/{id}/thumbprint:
+ $ref: "./cpom/proxy.yaml#/paths/proxy-thumbprint"
+
+ /1.0.0/sddcProxies:
+ $ref: "./cpom/proxy.yaml#/paths/sddcProxies"
+
+ /1.0.0/sddcProxies/{id}:
+ $ref: "./cpom/proxy.yaml#/paths/sddcProxy"
+
+ /1.0.0/sddcProxies/{id}/cert:
+ $ref: "./cpom/proxy.yaml#/paths/sddc-proxy-cert"
+
+ /1.0.0/sddcProxies/{id}/crl:
+ $ref: "./cpom/proxy.yaml#/paths/sddc-proxy-crl"
+
+ /1.0.0/sddcProxies/{id}/thumbprint:
+ $ref: "./cpom/proxy.yaml#/paths/sddc-proxy-thumbprint"
+
+ /1.0.0/tokens:
+ $ref: "./auth/tokens.yaml#/paths/tokens"
+
+ /1.0.0/tokens/{id}:
+ $ref: "./auth/tokens.yaml#/paths/token"
+
+ #### Service Application endpoints ####
+ /1.0.0/serviceApps:
+ $ref: "./service-apps/serviceApps.yaml#/paths/serviceApps"
+
+ /1.0.0/serviceApps/{serviceAppId}:
+ $ref: "./service-apps/serviceApps.yaml#/paths/serviceApp"
+
+ /1.0.0/serviceApps/{serviceAppId}/sddcs:
+ $ref: "./service-apps/serviceApps.yaml#/paths/sddcs"
+
+#### External Network endpoints ####
+ /1.0.0/externalNetworks:
+ $ref: "./networking/externalNetworks.yaml#/paths/externalNetworks"
+
+ /1.0.0/externalNetworks/{externalNetworkId}:
+ $ref: "./networking/externalNetworks.yaml#/paths/externalNetwork"
+
+ /1.0.0/externalNetworks/{externalNetworkId}/usedIpAddresses:
+ $ref: "./networking/externalNetworks.yaml#/paths/usedIpAddresses"
+
+ /1.0.0/externalNetworks/{externalNetworkId}/availableIpAddresses:
+ $ref: "./networking/externalNetworks.yaml#/paths/availableIpAddresses"
+
+#### Network Pool endpoints ####
+ /1.0.0/networkPools:
+ $ref: "./networking/networkPools.yaml#/paths/networkPools"
+
+ /1.0.0/networkPools/networkPoolSummaries:
+ $ref: "./networking/networkPools.yaml#/paths/networkPoolSummaries"
+
+ /1.0.0/networkPools/{networkPoolId}:
+ $ref: "./networking/networkPools.yaml#/paths/networkPool"
+
+ /1.0.0/networkPools/{networkPoolId}/sync:
+ $ref: "./networking/networkPools.yaml#/paths/sync"
+
+#### Application Port Profile endpoints ####
+ /1.0.0/applicationPortProfiles:
+ $ref: "./networking/applicationPortProfiles.yaml#/paths/applicationPortProfiles"
+
+ /1.0.0/applicationPortProfiles/{applicationPortProfileId}:
+ $ref: "./networking/applicationPortProfiles.yaml#/paths/applicationPortProfile"
+
+ /1.0.0/applicationPortProfiles/sync:
+ $ref: "./networking/applicationPortProfiles.yaml#/paths/sync"
+
+#### Network Context Profiles ####
+ /1.0.0/networkContextProfiles:
+ $ref: "./networking/networkContextProfiles.yaml#/paths/networkContextProfiles"
+
+ /1.0.0/networkContextProfiles/{profileId}:
+ $ref: "./networking/networkContextProfiles.yaml#/paths/networkContextProfile"
+
+ /1.0.0/networkContextProfiles/sync:
+ $ref: "./networking/networkContextProfiles.yaml#/paths/sync"
+
+ /1.0.0/networkContextProfiles/attributes:
+ $ref: "./networking/networkContextProfiles.yaml#/paths/attributes"
+
+#### Firewall Group endpoints ####
+ /1.0.0/firewallGroups/summaries:
+ $ref: "./networking/firewallGroups.yaml#/paths/firewallGroupSummaries"
+
+ /1.0.0/firewallGroups:
+ $ref: "./networking/firewallGroups.yaml#/paths/firewallGroups"
+
+ /1.0.0/firewallGroups/{firewallGroupId}:
+ $ref: "./networking/firewallGroups.yaml#/paths/firewallGroup"
+
+ /1.0.0/firewallGroups/{firewallGroupId}/associatedVMs:
+ $ref: "./networking/firewallGroups.yaml#/paths/firewallGroupAssociatedVMs"
+
+#### Provider VDC ####
+ /1.0.0/providerVdcs:
+ $ref: "./pvdc/pvdc.yaml#/paths/providerVdcs"
+
+ /1.0.0/providerVdcs/{pvdcUrn}/infra/resourcePools/browse/:
+ $ref: "./pvdc/pvdc.yaml#/paths/rootResourcePools"
+
+ /1.0.0/providerVdcs/{pvdcUrn}/infra/resourcePools/browse/{moref}:
+ $ref: "./pvdc/pvdc.yaml#/paths/childResourcePools"
+
+### Proxy Configurations ###
+ /1.0.0/proxyConfigurations:
+ $ref: "./vc/proxyConfiguration.yaml#/paths/proxy-configurations"
+
+ /1.0.0/proxyConfigurations/{id}:
+ $ref: "./vc/proxyConfiguration.yaml#/paths/proxy-configuration"
+
+### Virtual Centers ###
+ /1.0.0/virtualCenters:
+ $ref: "./vc/virtualCenter.yaml#/paths/virtualCenters"
+
+ /1.0.0/virtualCenters/{vcUrn}:
+ $ref: "./vc/virtualCenter.yaml#/paths/virtualCenter"
+
+ /1.0.0/virtualCenters/{vcUrn}/metrics:
+ $ref: "./vc/virtualCenter.yaml#/paths/virtualCenterMetrics"
+
+ /1.0.0/virtualCenters/{vcUrn}/nsxVSettings:
+ $ref: "./vc/virtualCenter.yaml#/paths/nsxVManagerSettings"
+
+ /1.0.0/virtualCenters/{vcUrn}/resourcePools/browse:
+ $ref: "./vc/virtualCenter.yaml#/paths/rootResourcePools"
+
+ /1.0.0/virtualCenters/{vcUrn}/resourcePools/browse/{moref}:
+ $ref: "./vc/virtualCenter.yaml#/paths/childResourcePools"
+
+ /1.0.0/virtualCenters/{vcUrn}/resourcePools/{moref}/hwv:
+ $ref: "./vc/virtualCenter.yaml#/paths/supportedHardwareVersions"
+
+ /1.0.0/virtualCenters/{vcUrn}/resourcePools/{moref}/kubernetesConfig:
+ $ref: "./vc/virtualCenter.yaml#/paths/kubernetesConfig"
+
+ /1.0.0/virtualCenters/{vcUrn}/resourcePools/{moref}/virtualMachineClasses:
+ $ref: "./vc/virtualCenter.yaml#/paths/virtualMachineClasses"
+
+ /1.0.0/virtualCenters/{vcUrn}/storageProfiles:
+ $ref: "./vc/virtualCenter.yaml#/paths/storageProfiles"
+
+ /1.0.0/virtualCenters/{vcUrn}/storageProfiles/{moref}/capabilities:
+ $ref: "./vc/vcStoragePolicies.yaml#/paths/capabilities"
+
+ /1.0.0/virtualCenters/{vcUrn}/unmanagedVirtualMachines:
+ $ref: "./vc/unmanagedVirtualMachine.yaml#/paths/unmanagedVirtualMachines"
+
+ #### vCenter resources APIs ####
+ /1.0.0/virtualCenters/resources/importableDvpgs:
+ $ref: "./networking/vCenterResources.yaml#/paths/importableDistributedPortgroups"
+
+ /1.0.0/virtualCenters/resources/importablePortgroups:
+ $ref: "./networking/vCenterResources.yaml#/paths/importablePortgroups"
+
+ /1.0.0/virtualCenters/resources/dvSwitches:
+ $ref: "./networking/vCenterResources.yaml#/paths/dvSwitches"
+
+#### Org vDC ####
+ /1.0.0/vdcs/{orgVdcId}/maxComputePolicy:
+ $ref: "./vdc/vdcs.yaml#/paths/vdc-max-compute-policy"
+
+ /1.0.0/vdcs/{orgVdcId}/networkProfile:
+ $ref: "./networking/vdcNetworkProfiles.yaml#/paths/vdcNetworkProfile"
+
+ /1.0.0/vdcs/{orgVdcId}/capabilities:
+ $ref: "./vdc/vdcCapabilities.yaml#/paths/capabilities"
+
+ /1.0.0/vdcs/{orgVdcId}/computePolicies:
+ $ref: "./vdc/vdcs.yaml#/paths/computePolicies"
+
+ /1.0.0/vdcs:
+ $ref: "./vdc/vdcs.yaml#/paths/vdcs"
+
+ /1.0.0/vdcs/{orgVdcId}:
+ $ref: "./vdc/vdcs.yaml#/paths/vdc"
+
+### 2.0.0 Org vDC ###
+
+ /2.0.0/vdcs/{orgVdcId}/computePolicies:
+ $ref: "./vdc/vdcs-2.0.0.yaml#/paths/computePolicies"
+
+ /2.0.0/vdcs/{orgVdcId}/maxComputePolicy:
+ $ref: "./vdc/vdcs-2.0.0.yaml#/paths/vdc-max-compute-policy"
+
+#### Storage Policy Endpoints ####
+
+ /1.0.0/pvdcStoragePolicies:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/pvdcStoragePolicies"
+
+ /1.0.0/storagePolicySupportedEntityTypes:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/supportedEntityTypes"
+
+ /1.0.0/pvdcStoragePolicies/{pvdcStoragePolicyUrn}:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/pvdcStoragePolicy"
+
+ /1.0.0/pvdcStoragePolicies/{pvdcStoragePolicyUrn}/supportedEntityTypes:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/pvdcStoragePolicySupportedEntityTypes"
+
+ /1.0.0/pvdcStoragePolicies/{id}/capabilities:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/capabilities"
+
+ /1.0.0/pvdcStoragePolicies/{id}/inheritableSettings:
+ $ref: "./storagePolicies/pvdcStoragePolicies.yaml#/paths/inheritableSettings"
+
+ /1.0.0/orgVdcStoragePolicies:
+ $ref: "./storagePolicies/orgVdcStoragePolicies.yaml#/paths/orgVdcStoragePolicies"
+
+ /1.0.0/orgVdcStoragePolicies/{orgVdcStoragePolicyUrn}:
+ $ref: "./storagePolicies/orgVdcStoragePolicies.yaml#/paths/orgVdcStoragePolicy"
+
+ /1.0.0/orgVdcStoragePolicies/{id}/capabilities:
+ $ref: "./storagePolicies/orgVdcStoragePolicies.yaml#/paths/capabilities"
+
+ /1.0.0/orgVdcStoragePolicies/{orgVdcStoragePolicyUrn}/supportedEntityTypes:
+ $ref: "./storagePolicies/orgVdcStoragePolicies.yaml#/paths/orgVdcStoragePolicySupportedEntityTypes"
+
+ /1.0.0/storagePolicies:
+ $ref: "./storagePolicies/storagePolicies.yaml#/paths/storagePolicies"
+
+ /1.0.0/storagePolicies/{storagePolicyUrn}:
+ $ref: "./storagePolicies/storagePolicies.yaml#/paths/storagePolicy"
+
+ #### Storage Container Endpoints ####
+
+ /1.0.0/storageContainers:
+ $ref: "./storageContainers/storageContainers.yaml#/paths/storageContainers"
+
+ /1.0.0/storageContainers/{storageContainerUrn}:
+ $ref: "./storageContainers/storageContainers.yaml#/paths/storageContainer"
+
+ /1.0.0/storageContainers/{storageContainerUrn}/datastores:
+ $ref: "./storageContainers/storageContainers.yaml#/paths/datastores"
+
+#### Audit Trail endpoints ####
+ /1.0.0/auditTrail:
+ $ref: "./audit-trail/audit-trail.yaml#/paths/auditTrail"
+
+#### Auth endpoints ####
+ /1.0.0/sessions:
+ $ref: "./auth/sessions.yaml#/paths/sessions"
+ /1.0.0/sessions/{id:((?!provider|current).)*}:
+ $ref: "./auth/sessions.yaml#/paths/session"
+ /1.0.0/sessions/current:
+ $ref: "./auth/sessions.yaml#/paths/currentSession"
+ /1.0.0/sessions/{id:((?!provider|current).)*}/accessibleLocations:
+ $ref: "./auth/sessions.yaml#/paths/accessibleLocations"
+ /1.0.0/sessions/{id:((?!provider|current).)*}/token:
+ $ref: "./auth/sessions.yaml#/paths/token"
+ /1.0.0/sessions/provider:
+ $ref: "./auth/sessions.yaml#/paths/provider"
+
+#### Cell ####
+ /1.0.0/cells:
+ $ref: "./cell/cell.yaml#/paths/cells"
+
+ /1.0.0/cells/{cellUrn}:
+ $ref: "./cell/cell.yaml#/paths/cell"
+
+#### Org Endpoints ####
+ /1.0.0/orgs:
+ $ref: "./org/org.yaml#/paths/orgs"
+
+ /1.0.0/orgs/{orgUrn}:
+ $ref: "./org/org.yaml#/paths/org"
+
+ /1.0.0/orgs/{orgUrn}/quotaPolicy:
+ $ref: "./qms/quota-policy-assignment.yaml#/paths/org-quota-policy-assignment"
+
+ /1.0.0/orgs/{orgUrn}/quotas:
+ $ref: "./qms/entity-quotas.yaml#/paths/org-quotas"
+
+#### Users ####
+ /1.0.0/users:
+ $ref: "./user/user.yaml#/paths/users"
+
+ /1.0.0/users/{userUrn}:
+ $ref: "./user/user.yaml#/paths/user"
+
+ /1.0.0/users/{userUrn}/quotaPolicy:
+ $ref: "./qms/quota-policy-assignment.yaml#/paths/user-quota-policy-assignment"
+
+ /1.0.0/users/{userUrn}/quotas:
+ $ref: "./qms/entity-quotas.yaml#/paths/user-quotas"
+
+ /1.0.0/users/{userUrn}/groups:
+ $ref: "./user/user.yaml#/paths/groups"
+
+#### Group Endpoints ####
+ /1.0.0/groups:
+ $ref: "./ldap/group.yaml#/paths/groups"
+
+ /1.0.0/groups/{groupUrn}:
+ $ref: "./ldap/group.yaml#/paths/group"
+
+ /1.0.0/groups/{groupUrn}/users:
+ $ref: "./ldap/group.yaml#/paths/users"
+
+ /1.0.0/groups/{groupUrn}/quotaPolicy:
+ $ref: "./qms/quota-policy-assignment.yaml#/paths/group-quota-policy-assignment"
+
+ /1.0.0/groups/{groupUrn}/quotas:
+ $ref: "./qms/entity-quotas.yaml#/paths/group-quotas"
+
+##### VApp Endpoints ####
+ /1.0.0/vapps/{vappUrn}/quotaPolicy:
+ $ref: "./qms/quota-policy-assignment.yaml#/paths/vapp-quota-policy-assignment"
+
+ /1.0.0/vapps/{vappUrn}/quotas:
+ $ref: "./qms/entity-quotas.yaml#/paths/vapp-quotas"
+
+#### SSL endpoints ####
+ /1.0.0/ssl/trustedCertificates:
+ $ref: "./ssl/trustedCertificates.yaml#/paths/trustedCertificates"
+ /1.0.0/ssl/trustedCertificates/{trustedCertificate}:
+ $ref: "./ssl/trustedCertificates.yaml#/paths/certificate"
+ /1.0.0/testConnection:
+ $ref: "./ssl/testConnection.yaml#/paths/test"
+ /1.0.0/ssl/settings:
+ $ref: "./ssl/sslSettings.yaml#/paths/sslSettings"
+ /1.0.0/ssl/certificateLibrary:
+ $ref: "./ssl/certificateLibrary.yaml#/paths/certificateLibrary"
+ /1.0.0/ssl/certificateLibrary/{id}:
+ $ref: "./ssl/certificateLibrary.yaml#/paths/certificateLibraryItem"
+ /1.0.0/ssl/certificateLibrary/{certLibraryItemId}/consumers:
+ $ref: "./ssl/certificateLibrary.yaml#/paths/certificateLibraryItemConsumers"
+
+### Access Levels ###
+ /1.0.0/accessLevels:
+ $ref: "./access-levels/accessLevels.yaml#/paths/accessLevels"
+ /1.0.0/accessLevels/{accessLevelUrn}:
+ $ref: "./access-levels/accessLevels.yaml#/paths/accessLevel"
+
+### Extensibility ###
+ /1.0.0/entityTypes/:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/defined-entity-types"
+ /1.0.0/entityTypes/{id}:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/defined-entity-type"
+ /1.0.0/entityTypes/{id}/behaviors:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/behaviors"
+ /1.0.0/entityTypes/{id}/behaviors/{behaviorId}:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/behavior"
+ /1.0.0/entityTypes/{id}/behaviorAccessControls:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/defined-entity-type-behavior-access"
+ /1.0.0/entityTypes/{objectId}/accessControls:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/defined-entity-type-accessControls"
+ /1.0.0/entityTypes/{objectId}/accessControls/{accessControlId}:
+ $ref: "./extensibility/definedEntityType.yaml#/paths/defined-entity-type-accessControl"
+ /1.0.0/interfaces:
+ $ref: "./extensibility/interface.yaml#/paths/interfaces"
+ /1.0.0/interfaces/{id}:
+ $ref: "./extensibility/interface.yaml#/paths/interface"
+ /1.0.0/interfaces/{id}/behaviors:
+ $ref: "./extensibility/interface.yaml#/paths/behaviors"
+ /1.0.0/interfaces/{id}/behaviors/{behaviorId}:
+ $ref: "./extensibility/interface.yaml#/paths/behavior"
+ /1.0.0/entities/{id}:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entity"
+ /1.0.0/entities/{id}/resolve:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entity-resolve"
+ /1.0.0/entities/{id}/metadata:
+ $ref: "./extensibility/metadata.yaml#/paths/entries"
+ /1.0.0/entities/{id}/metadata/{metadataId}:
+ $ref: "./extensibility/metadata.yaml#/paths/entry"
+ /1.0.0/entities/types/{vendor}/{nss}/{version}:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entities-by-type"
+ /1.0.0/entities/interfaces/{vendor}/{nss}/{version}:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entities-by-interface"
+ /1.0.0/entities/{id}/behaviors/{behaviorId}/invocations:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entity-behaviors"
+ /1.0.0/entities/{objectId}/accessControls:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entity-accessControls"
+ /1.0.0/entities/{objectId}/accessControls/{accessControlId}:
+ $ref: "./extensibility/definedEntity.yaml#/paths/defined-entity-accessControl"
+
+### Load Balancers ###
+ /1.0.0/loadBalancer/controllers:
+ $ref: "./networking/loadBalancerControllers.yaml#/paths/loadBalancerControllers"
+
+ /1.0.0/loadBalancer/controllers/{loadBalancerControllerId}:
+ $ref: "./networking/loadBalancerControllers.yaml#/paths/loadBalancerController"
+
+ /1.0.0/loadBalancer/clouds:
+ $ref: "./networking/loadBalancerClouds.yaml#/paths/loadBalancerClouds"
+
+ /1.0.0/loadBalancer/clouds/{loadBalancerCloudId}:
+ $ref: "./networking/loadBalancerClouds.yaml#/paths/loadBalancerCloud"
+
+ /1.0.0/loadBalancer/serviceEngineGroups:
+ $ref: "./networking/loadBalancerServiceEngineGroups.yaml#/paths/loadBalancerServiceEngineGroups"
+
+ /1.0.0/loadBalancer/serviceEngineGroups/{loadBalancerServiceEngineGroupId}:
+ $ref: "./networking/loadBalancerServiceEngineGroups.yaml#/paths/loadBalancerServiceEngineGroup"
+
+ /1.0.0/loadBalancer/serviceEngineGroups/{loadBalancerServiceEngineGroupId}/sync:
+ $ref: "./networking/loadBalancerServiceEngineGroups.yaml#/paths/loadBalancerServiceEngineGroupSync"
+
+ /1.0.0/loadBalancer/serviceEngineGroups/assignments:
+ $ref: "./networking/loadBalancerServiceEngineGroups.yaml#/paths/assignments"
+
+ /1.0.0/loadBalancer/serviceEngineGroups/assignments/{assignmentId}:
+ $ref: "./networking/loadBalancerServiceEngineGroups.yaml#/paths/assignment"
+
+### Security Tags for VM tagging ###
+
+ /1.0.0/securityTags/values:
+ $ref: "./networking/securityTags.yaml#/paths/tag-values"
+ /1.0.0/securityTags/tag:
+ $ref: "./networking/securityTags.yaml#/paths/security-tag"
+ /1.0.0/securityTags/entities:
+ $ref: "./networking/securityTags.yaml#/paths/tagged-entities"
+ /1.0.0/securityTags/vm/{id}:
+ $ref: "./networking/securityTags.yaml#/paths/vm-tags"
+
+#### Site Settings and Configuration ####
+ /1.0.0/site/settings:
+ $ref: "./site/site-settings.yaml#/paths/siteSettings"
+ /1.0.0/site/settings/cors:
+ $ref: "./site/site-settings-cors.yaml#/paths/cors"
+ /1.0.0/site/configurations:
+ $ref: "./site/configuration.yaml#/paths/configurations"
+ /1.0.0/site/configurations/{name}:
+ $ref: "./site/configuration.yaml#/paths/configuration"
+
+#### K8s TKG and CSE native ####
+ /1.0.0/tkgClusters:
+ $ref: "./wcp/tkgcluster.yaml#/paths/tkgClusters"
+
+ /1.0.0/tkgClusters/{urn}:
+ $ref: "./wcp/tkgcluster.yaml#/paths/tkgCluster"
+
+ /1.0.0/tkgClusters/{urn}/kubeconfig:
+ $ref: "./wcp/tkgcluster.yaml#/paths/kubeconfig"
+
definitions:
# Common ErrorType definition for exceptions emerging from openapi endpoints.
Error:
$ref: "./common/error.yaml#/definitions/Error"
+securityDefinitions:
+ ApiKeyAuth:
+ type: apiKey
+ in: header
+ name: Authorization
+security:
+ - ApiKeyAuth: []
diff --git a/schemas/openapi/src/main/resources/schemas/vdc/vdcCapabilities.yaml b/schemas/openapi/src/main/resources/schemas/vdc/vdcCapabilities.yaml
new file mode 100644
index 00000000..daf2c87c
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vdc/vdcCapabilities.yaml
@@ -0,0 +1,38 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vDC Capabilities API allows for determining the capabilities of an Organization vDC.
+ version: "1.0"
+ title: VDC Capabilities API
+
+paths:
+ capabilities:
+
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: "32.0"
+ tags:
+ - capabilities
+ summary: Retrieves capabilities for the given Organization vDC.
+ operationId: getVdcCapabilities
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: './common/capability.yaml#/definitions/Capabilities'
+ 204:
+ description: No Content
+
diff --git a/schemas/openapi/src/main/resources/schemas/vdc/vdcs-2.0.0.yaml b/schemas/openapi/src/main/resources/schemas/vdc/vdcs-2.0.0.yaml
new file mode 100644
index 00000000..44db1f98
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vdc/vdcs-2.0.0.yaml
@@ -0,0 +1,106 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2020-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vDC API allows for management of an Organizaton vDC.
+ version: "2.0"
+ title: vDC API
+
+paths:
+ computePolicies:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdc2
+ summary: Retrieves all compute policies of a vDC
+ description: |
+ Retrieves all compute policies of a vDC
+ operationId: getComputePolicies
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicies2"
+
+ vdc-max-compute-policy:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ put:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdc2
+ summary: Updates Max Compute Policy of the vDC.
+ description: |
+ Updates Max Compute Policy of the vDC.
+ Returns 400 if policy type is not VdcVmPolicy.
+ operationId: updateVdcMaxComputePolicy
+ consumes:
+ - application/json
+ parameters:
+ - name: newVdcComputePolicy2Params
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/VdcComputePolicy2"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicy2"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdc2
+ summary: Retrieves Max Compute Policy of the vDC.
+ description: |
+ Retrieves Max Compute Policy of the vDC.
+ operationId: getVdcMaxComputePolicy
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicy2"
+
+definitions:
+ VdcComputePolicies2:
+ $ref: "./compute-policy/compute-policy.yaml#/definitions/VdcComputePolicies2"
+ VdcComputePolicy2:
+ $ref: "./compute-policy/compute-policy.yaml#/definitions/VdcComputePolicy2"
diff --git a/schemas/openapi/src/main/resources/schemas/vdc/vdcs.yaml b/schemas/openapi/src/main/resources/schemas/vdc/vdcs.yaml
new file mode 100644
index 00000000..e2dfff17
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vdc/vdcs.yaml
@@ -0,0 +1,238 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The vDC API allows for management of an Organizaton vDC.
+ title: vDC API
+
+paths:
+ vdc-max-compute-policy:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ put:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vdc
+ summary: Updates Max Compute Policy of the vDC.
+ description: |
+ Updates Max Compute Policy of the vDC.
+ x-vcloud-deprecated-in: "35.0"
+ x-vcloud-deprecated-alternative: 2.0.0 version of API
+ operationId: updateVdcMaxComputePolicy
+ consumes:
+ - application/json
+ parameters:
+ - name: newVdcComputePolicyParams
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/VdcComputePolicy"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicy"
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vdc
+ summary: Retrieves Max Compute Policy of the vDC.
+ description: |
+ Retrieves Max Compute Policy of the vDC.
+ x-vcloud-deprecated-in: "35.0"
+ x-vcloud-deprecated-alternative: 2.0.0 version of API
+ operationId: getVdcMaxComputePolicy
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicy"
+
+ vdc:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdc
+ summary: Retrieves a specific vDC via URN.
+ operationId: getVdc
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/OrgVdc"
+
+ vdcs:
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdc
+ summary: Retrieves a list of vDCs
+ description: |
+ Retrieves a list of Org-scoped (if applicable) vDCs.
+ Results can be filtered by id, name, allocationType, and computePolicyType.
+
+ Supported filters for computePolicyType are:
+ (computePolicyType==VdcKubernetesPolicy) - |
+ Returns a list of all vDCs that have a VdcKubernetesPolicy compute policy.
+ operationId: queryVdcs
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/OrgVdcs"
+
+ computePolicies:
+ parameters:
+ - name: orgVdcId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+
+ get:
+ x-vcloud-added-in: "33.0"
+ tags:
+ - vdc
+ summary: Retrieves all compute policies of a vDC
+ description: |
+ Retrieves all compute policies of a vDC
+ x-vcloud-deprecated-in: "35.0"
+ x-vcloud-deprecated-alternative: 2.0.0 version of API
+ operationId: getComputePolicies
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcComputePolicies"
+
+definitions:
+ OrgVdc:
+ x-vcloud-added-in: "35.0"
+ description: An object representing an Organization Virtual Datacenter in VCD.
+ type: object
+ properties:
+ id:
+ type: string
+ description: A unique identifier for the vdc.
+ name:
+ type: string
+ description: The name of the vdc.
+ description:
+ type: string
+ description: The description of the vdc.
+ allocationType:
+ type: string
+ description: |
+ The allocation type of the vdc, one of:
+ ALLOCATION_VAPP,
+ ALLOCATION_POOL,
+ RESERVATION_POOL,
+ FLEX
+ org:
+ description: The reference to the organization that the VDC belongs to
+ $ref: '#/definitions/EntityReference'
+
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ org:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ x-vcloud-cross-references:
+ - cross-reference:
+ referenced-type: "./compute-policy/compute-policy-2.0.0.yaml#/definitions/VdcComputePolicy"
+ referenced-property: policyType
+ alias: computePolicyType
+ description: |
+ A filter to look up VDCs that contain certain compute policy types, cannot be used with
+ the computePolicyName filter
+ Supported filters:
+ computePolicyType==VdcKubernetesPolicy
+ - cross-reference:
+ referenced-type: "./compute-policy/compute-policy-2.0.0.yaml#/definitions/VdcComputePolicy"
+ referenced-property: name
+ alias: computePolicyName
+ description: |
+ A filter to look up VDCs that contain a VdcVmPolicy with a certain name. This does not
+ apply to Kubernetes policies and cannot be used with the computePolicyType filter
+ E.G: computePolicyName==someName
+
+ OrgVdcs:
+ x-vcloud-added-in: "35.0"
+ description: |
+ List of vDCs.
+ allOf:
+ - $ref: "query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: "#/definitions/OrgVdc"
+
+ VdcComputePolicy:
+ $ref: "./compute-policy/compute-policy.yaml#/definitions/VdcComputePolicy"
+
+ VdcComputePolicies:
+ $ref: "./compute-policy/compute-policy.yaml#/definitions/VdcComputePolicies"
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
diff --git a/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroupCandidates.yaml b/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroupCandidates.yaml
new file mode 100644
index 00000000..a9766dd3
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroupCandidates.yaml
@@ -0,0 +1,138 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The Cloud Director vDC Group candidates API allows for retrieving a list of vDCs that can be part of the vDC groups.
+ vDCs that cannot be added to the same vDC group are filtered out.
+ An example is that a VDC can only be part of a group that has the same backing network broadcast domain.
+ version: "1.0"
+ title: vDC Group candidates API
+
+paths:
+
+ networkingCandidateVdcs:
+ get:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-multisite: true
+ tags:
+ - vdcGroupCandidates
+ summary: Get a list of candidate vDCs that can be added to a single vDC Group in the networking context.
+ description: |
+ Get a list of candidate vDCs. Results can be filtered by the type of vDC group and contexts of vDC ID or network pool ID.
+ Below are the supported contexts:
+ Content-Type is always application/json
+
+
+ Note API URL's without a version in their paths must be considered experimental.
+
+ Note that multisite calls to get the candidate vDCs for a local vDC Group will only return the vDCs of the local site's associated
+ organizations. Remote site's vDCs are not returned since the org vDC or the vDC group is not found there.
+ operationId: getNetworkingVdcGroupCandidates
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/NetworkingCandidateVdcs"
+
+definitions:
+
+ NetworkingCandidateVdc:
+ x-vcloud-added-in: "35.0"
+ description: |
+ A candidate vDC that can be added to a vDC Group.
+ type: object
+ properties:
+ id:
+ type: string
+ description: The id of the candidate vDC.
+ name:
+ type: string
+ description: The name of the candidate vDC.
+ orgRef:
+ $ref: '#/definitions/EntityReference'
+ description: The reference to the organization this vDC is in.
+ siteRef:
+ $ref: '#/definitions/EntityReference'
+ description: The site ID that this vDC belongs to.
+ networkProviderScope:
+ type: string
+ description: The network provider scope of the vDC.
+ faultDomainTag:
+ type: string
+ description: |
+ Represents the fault domain of a given organization vDC. For NSX_V backed organization vDCs, this is the network provider scope.
+ For NSX_T backed organization vDCs, this can vary (for example name of the provider vDC or compute provider scope).
+
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdc
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ name:
+ x-vcloud-constraints:
+ - constraint: ReadOnly
+ orgRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ siteRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ networkProviderScope:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ faultDomainTag:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+
+ NetworkingCandidateVdcs:
+ x-vcloud-added-in: "35.0"
+ description: |
+ List of candidate vDCs that can be added to a single vDC Group in the networking context.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: './vdcGroups/vdcGroupCandidates.yaml#/definitions/NetworkingCandidateVdc'
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
diff --git a/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroups.yaml b/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroups.yaml
new file mode 100644
index 00000000..a3606e45
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vdcGroups/vdcGroups.yaml
@@ -0,0 +1,468 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2011-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ The Cloud Director vDC groups API allows for management of vDC groups.
+ Once a vDC group is created, user can create universal routers that span those vDCs.
+ There are two types of vDC groups: local vDC groups or universal vDC groups.
+ version: "1.0"
+ title: vDC Groups API
+
+paths:
+
+ vdcGroups:
+ get:
+ x-vcloud-multisite: true
+ tags:
+ - vdcGroups
+ summary: Get a list of vDC Groups.
+ description: |
+ Get a list of vDC Groups. To find all vDC Groups that contains a specific Organization vDC, user can use the filter "participatingOrgVdcs.vdcRef.id" key.
+ operationId: getVdcGroups
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcGroups"
+ post:
+ tags:
+ - vdcGroups
+ summary: Creates a vDC Group. A universal router will also be created if universalNetworkingEnabled is set to true.
+ operationId: createVdcGroup
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcGroup
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcGroup'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
+ vdcGroup:
+ parameters:
+ - name: vdcGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdcGroup
+
+ get:
+ tags:
+ - vdcGroup
+ summary: Retrieves a specific vDC Group.
+ operationId: getVdcGroup
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/VdcGroup'
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ put:
+ tags:
+ - vdcGroup
+ summary: Updates a specific vDC Group. Example is to add/remove a participarting vDC.
+ operationId: updateVdcGroup
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcGroup
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcGroup'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ delete:
+ tags:
+ - vdcGroup
+ summary: Deletes a vDC Group
+ operationId: deleteVdcGroup
+ parameters:
+ - $ref: "./common/delete.yaml#/parameters/forceDelete"
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ sync:
+ parameters:
+ - name: vdcGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdcGroup
+
+ post:
+ tags:
+ - vdcGroup
+ summary: |
+ Sync/repair the vDC group. An example usage is to detect if a vDC still exists/is valid.
+ If an Organization vDC referenced by the VDC group is deleted or if it is not participating in universal networking,
+ it's status will be updated to OBJECT_NOT_FOUND and the vdc group will be marked as NOT_REALIZED.
+ This will also initiate a sync of associated router, if any.
+ The router entities like egress points and universal routes will also be marked as NOT_REALIZED
+ if they reference the removed Organization vDC.
+ operationId: syncVdcGroup
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+
+ capabilities:
+ parameters:
+ - name: vdcGroupId
+ in: path
+ required: true
+ type: string
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdcGroup
+
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - capabilities
+ summary: Retrieves the supported capabilities of the specified vDC Group.
+ operationId: getVdcGroupCapabilities
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: './common/capability.yaml#/definitions/Capabilities'
+
+ settings:
+ get:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdcGroupsSettings
+ summary: Retrieves the global vDC groups settings. These settings apply to all vDC Groups in the system and can only be retrieved by the provider.
+ operationId: getVdcGroupSettings
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcGroupSettings"
+ put:
+ x-vcloud-added-in: "35.0"
+ tags:
+ - vdcGroupsSettings
+ summary: Updates the global vDC groups settings. These settings apply to all vDC Groups in the system and can only be updated by the provider.
+ operationId: updateVdcGroupSettings
+ consumes:
+ - application/json
+ parameters:
+ - name: vdcGroupSettings
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VdcGroupSettings'
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/VdcGroupSettings"
+
+definitions:
+
+ VdcGroup:
+ description: |
+ A vDC Group holds a list of vDCs that can have a network be stretched across the vDCs.
+ type: object
+ properties:
+ id:
+ type: string
+ description: The unique ID for the vDC Group (read-only).
+ orgId:
+ type: string
+ description: The organization that this group belongs to.
+ name:
+ type: string
+ description: The name of this group. The name must be unique.
+ description:
+ type: string
+ description: The description of this group.
+ localEgress:
+ type: boolean
+ default: false
+ description: |
+ Determines whether local egress is enabled for a universal router belonging to a universal vDC group.
+ This value is used on create if universalNetworkingEnabled is set to true.
+ This cannot be updated. This value is always false for local vDC groups.
+ participatingOrgVdcs:
+ type: array
+ description: The list of organization vDCs that are participating in this group.
+ items:
+ $ref: "#/definitions/ParticipatingVdcReference"
+ universalNetworkingEnabled:
+ type: boolean
+ description: True means that a vDC group router has been created. If set to true for vdc group creation, a universal router will also be created.
+ networkPoolUniversalId:
+ type: string
+ description: |
+ The network provider's universal id that is backing the universal network pool.
+ This field is read-only and is derived from the list of participating vDCs if a universal vDC group is created.
+ For universal vDC groups, each participating vDC should have a universal network pool that is backed by this same id.
+ networkPoolId:
+ type: string
+ description: |
+ ID of network pool to use if creating a local vDC group router.
+ Must be set if creating a local group. Ignored if creating a
+ universal group.
+ status:
+ $ref: '#/definitions/VdcGroupEntityStatus'
+ description: The status that the group can be in.
+ type:
+ type: string
+ enum: [LOCAL, UNIVERSAL]
+ default: 'UNIVERSAL'
+ description: |
+ Defines the group as LOCAL or UNIVERSAL. This cannot be changed.
+ Local vDC Groups can have networks stretched across multiple vDCs in a single Cloud Director instance.
+ Local vDC Groups share the same broadcast domain/transport zone and network provider scope.
+ Universal vDC groups can have networks stretched across multiple vDCs in a single or multiple Cloud Director instance(s).
+ Universal vDC groups are backed by a broadcast domain/transport zone that strectches across a single or multiple Cloud Director instance(s).
+ Local vDC groups are supported for both NSX-V and NSX-T Network Provider Types. Universal vDC Groups are supported for only NSX_V Network Provider Type.
+ networkProviderType:
+ type: string
+ default: NSX_V
+ description: |
+ The values currently supported are NSX_V and NSX_T.
+ Defines the networking provider backing the vDC Group. This is used on create. If not specified, NSX_V value will be used.
+ NSX_V is used for existing vDC Groups and vDC Groups where Cross-VC NSX is used for the underlying technology.
+ NSX_T is used when the networking provider type for the Organization vDCs in the group is NSX-T. NSX_T only supports groups of type LOCAL (single site).
+ dfwEnabled:
+ type: boolean
+ description: Whether Distributed Firewall is enabled for this vDC Group. Only applicable for NSX_T vDC Groups.
+ errorMessage:
+ type: string
+ description: If the group has an error status, a more detailed error message is set here.
+ required:
+ - participatingOrgVdcs
+ - name
+ - orgId
+ x-vcloud-property-annotations:
+ id:
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: vdcGroup
+ - constraint: ReadOnly
+ - constraint: NonSortable
+ orgId:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ description:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ localEgress:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ participatingOrgVdcs:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ universalNetworkingEnabled:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkPoolUniversalId:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkPoolId:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: Urn
+ args:
+ - arg: networkpool
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ status:
+ x-vcloud-constraints:
+ - constraint: NonSortable
+ errorMessage:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ type:
+ x-vcloud-added-in: "34.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProviderType:
+ x-vcloud-added-in: "35.0"
+ dfwEnabled:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+
+ ParticipatingVdcReference:
+ description: |
+ A participating vDC
+ type: object
+ properties:
+ vdcRef:
+ $ref: '#/definitions/EntityReference'
+ description: The reference to the vDC that is part of this a vDC group.
+ orgRef:
+ $ref: '#/definitions/EntityReference'
+ description: Read-only field that specifies what organization this vDC is in.
+ siteRef:
+ $ref: '#/definitions/EntityReference'
+ description: The site ID that this vDC belongs to. Required for universal vDC groups.
+ networkProviderScope:
+ type: string
+ description: Read-only field that specifies the network provider scope of the vDC.
+ faultDomainTag:
+ type: string
+ description: |
+ Represents the fault domain of a given organization vDC. For NSX_V backed organization vDCs, this is the network provider scope.
+ For NSX_T backed organization vDCs, this can vary (for example name of the provider vDC or compute provider scope).
+ remoteOrg:
+ type: boolean
+ description: Read-only field that specifies whether the vDC is local to this VCD site.
+ status:
+ $ref: '#/definitions/VdcGroupEntityStatus'
+ description: The status that the vDC can be in. An example is if the vDC has been deleted from the system but is still part of the group.
+ required:
+ - vdcRef
+ x-vcloud-property-annotations:
+ vdcRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ orgRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ siteRef:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ networkProviderScope:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ faultDomainTag:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ remoteOrg:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+ - constraint: ReadOnly
+ status:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ VdcGroups:
+ description: |
+ List of vDC Groups.
+ allOf:
+ - $ref: "./common/query.yaml#/definitions/Page"
+ - type: object
+ properties:
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/VdcGroup'
+
+ VdcGroupEntityStatus:
+ description: |
+ Represents status of vDC group components such as participating vdc's
+ configured routing, egress points, etc.
+ type: object
+ enum:
+ - SAVING
+ - SAVED
+ - CONFIGURING
+ - REALIZED
+ - REALIZATION_FAILED
+ - DELETING
+ - DELETE_FAILED
+ - OBJECT_NOT_FOUND
+ - UNCONFIGURED
+
+ VdcGroupSettings:
+ x-vcloud-added-in: "35.0"
+ description: |
+ Defines the global settings for all vDC Groups in the system. These can be changed by the provider only.
+ type: object
+ properties:
+ nsxTVdcGroupFaultDomainTagType:
+ type: string
+ default: COMPUTE_PROVIDER_SCOPE
+ description: |
+ (_context==LOCAL;_context==orgVdcId) -
+ Returns all vDCs that have the same network pool assigned to the org vDC.
+ (_context==UNIVERSAL;_context==orgVdcId;_context==networkPoolUniversalId) -
+ If the orgVdc is specified, returns all vDCs that have the same assigned universal network pool as that of the org vDC.
+ A universal network pool is backed by a broadcast domain that can stretch to multiple VMware Cloud Director sites.
+ If the org vDC is not specified or not found and the universal network pool is specified, return all vDCs whose network pool are backed
+ by that universal network pool. This case supports multisite/associated organization queries where user wants to retrieve remote vDCs
+ on different sites/associated organizations with same backing universal network pool.
+ (_context==vdcGroupId;_context==networkPoolUniversalId) -
+ If vDC Group is specified, return all vDCs that have the same assigned network pool as that of the vDC Group and also all vDCs that are currently
+ participating in the vDC Group. The assigned network pool can also be universal if the vDC Group type is UNIVERSAL.
+ If vDC Group is not specified or not found and the universal network pool is specified, return all vDCs whose network pool are backed
+ by that universal network pool. This case supports multisite/associated organization queries where user wants to retrieve remote vDCs
+ on different sites/associated organizations with same backing universal network pool.
+
+ Defines the fault domain tag that will be shown for participating/candidate Organization vDCs during creation or update of a vDC Group whose networkProviderType is NSX_T.
+ The options a provider can choose from are COMPUTE_PROVIDER_SCOPE and NETWORK_PROVIDER_SCOPE.
+ This should be selected based on the provider's compute or networking infrastructure.
+ The default value is COMPUTE_PROVIDER_SCOPE.
+
+
+ x-vcloud-property-annotations:
+ nsxTVdcGroupFaultDomainTagType:
+ x-vcloud-constraints:
+ - constraint: NonSearchable
+ - constraint: NonSortable
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
diff --git a/schemas/openapi/src/main/resources/schemas/vms/vmTags.yaml b/schemas/openapi/src/main/resources/schemas/vms/vmTags.yaml
new file mode 100644
index 00000000..d64ede8a
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vms/vmTags.yaml
@@ -0,0 +1,71 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2021-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ API to manage tags for a Virtual Machine.
+ version: "1.0"
+ title: VM Tag API
+
+paths:
+
+ vm-tags:
+ parameters:
+ - name: vmId
+ description: the URN of the VM to manage tag for.
+ in: path
+ required: true
+ type: string
+
+ get:
+ x-vcloud-added-in: 36.0
+ tags:
+ - vmTags
+ summary: Retrieves all the tags for the VM.
+ description: |
+ Retrieves all the tags for the VM. User can view the tags if user can view the VM.
+ operationId: getVmTags
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: '#/definitions/EntityTags'
+
+ put:
+ x-vcloud-added-in: 36.0
+ tags:
+ - vmTags
+ summary: Update the tag for the VM.
+ description: |
+ Update the tag for the VM. An empty list of tags means to delete all dags for the VM.
+ User can edit the tags if user can modify the VM. Note that if a VM tag has a scope of "vcd-security",
+ that tag value can be used when defining dynamic Security/Firewall Group to match the VM for DFW use-case.
+ operationId: updateVmTags
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: EntityTags
+ in: body
+ description: the list of tags to update.
+ required: true
+ schema:
+ $ref: "#/definitions/EntityTags"
+ responses:
+ 200:
+ description: OK
+ schema:
+ $ref: "#/definitions/EntityTags"
+
+definitions:
+
+ EntityTags:
+ $ref: "./tags/taggedEntities.yaml#/definitions/EntityTags"
+
diff --git a/schemas/openapi/src/main/resources/schemas/vro/customEntities.yaml b/schemas/openapi/src/main/resources/schemas/vro/customEntities.yaml
index aafcee70..89fda850 100644
--- a/schemas/openapi/src/main/resources/schemas/vro/customEntities.yaml
+++ b/schemas/openapi/src/main/resources/schemas/vro/customEntities.yaml
@@ -1,8 +1,9 @@
-# *************************************************************************
+# ******************************************************************************
# * api-extension-template-vcloud-director
-# * Copyright 2017-2018 VMware, Inc. All rights reserved. *
+# * Copyright 2017-2021 VMware, Inc. All rights reserved. *
# * SPDX-License-Identifier: BSD-2-Clause
-# *************************************************************************
+# ******************************************************************************
+
swagger: "2.0"
info:
description: |
@@ -16,6 +17,8 @@ paths:
tags:
- customEntities
summary: Get list of all custom entity types
+ x-vcloud-deprecated-in: "34.0"
+ x-vcloud-deprecated-alternative: definedEntities
description: |
Get list of custom entity types.
operationId: queryCustomEntityTypes
@@ -31,12 +34,14 @@ paths:
200:
description: OK
schema:
- $ref: "./common/query.yaml#/definitions/QueryResults"
+ $ref: "#/definitions/CustomEntityTypes"
post:
tags:
- customEntities
summary: Creates a new custom entity type
+ x-vcloud-deprecated-in: "34.0"
+ x-vcloud-deprecated-alternative: definedEntities
description: |
Creates a new custom entity type
operationId: createCustomEntityType
@@ -66,6 +71,8 @@ paths:
tags:
- customEntities
summary: Get specified custom entity type
+ x-vcloud-deprecated-in: "34.0"
+ x-vcloud-deprecated-alternative: definedEntities
operationId: getCustomEntityType
produces:
- application/json
@@ -80,6 +87,8 @@ paths:
tags:
- customEntities
summary: Update specified custom entity type
+ x-vcloud-deprecated-in: "34.0"
+ x-vcloud-deprecated-alternative: definedEntities
operationId: updateCustomEntityType
consumes:
- application/json
@@ -100,6 +109,8 @@ paths:
tags:
- customEntities
summary: Delete specified custom entity type.
+ x-vcloud-deprecated-in: "34.0"
+ x-vcloud-deprecated-alternative: definedEntities
operationId: deleteCustomEntityType
parameters:
- name: "recursive"
@@ -111,6 +122,173 @@ paths:
204:
description: No Content
+ custom-entity-type-tenants:
+ parameters:
+ - name: customEntityTypeId
+ in: path
+ required: true
+ type: string
+ get:
+ tags:
+ - customEntities
+ summary: Retrieves list of tenants for whom the custom entity type is explicitly published
+ description: |
+ Retrieves list of item for whom the custom entity type is explicitly published
+ operationId: getCustomEntityTypeTenants
+ produces:
+ - application/json
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ put:
+ tags:
+ - customEntities
+ summary: Resets list of tenants for whom the custom entity type is explicitly published
+ description: |
+ Resets list of tenants for whom the custom entity type is explicitly published
+ operationId: setCustomEntityTypeTenants
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: publishTenantsBody
+ in: body
+ required: true
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ custom-entity-type-tenants-publish:
+ parameters:
+ - name: customEntityTypeId
+ in: path
+ required: true
+ type: string
+ post:
+ tags:
+ - customEntities
+ summary: Publishes the custom entity type to the specified tenants
+ description: |
+ Publishes the custom entity type to the specified tenants
+ operationId: postCustomEntityTypePublish
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: publishTenantsBody
+ in: body
+ required: true
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ custom-entity-type-tenants-unpublish:
+ parameters:
+ - name: customEntityTypeId
+ in: path
+ required: true
+ type: string
+ post:
+ tags:
+ - customEntities
+ summary: Revokes publication of the custom entity type to the specified tenants
+ description: |
+ Revokes publication of the custom entity type to the specified tenants
+ operationId: postCustomEntityTypeUnpublish
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: unpublishTenantsBody
+ in: body
+ required: true
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ custom-entity-type-tenants-publish-all:
+ parameters:
+ - name: customEntityTypeId
+ in: path
+ required: true
+ type: string
+ post:
+ tags:
+ - customEntities
+ summary: Publishes the custom entity type to all tenants
+ description: |
+ Publishes the custom entity type to all tenants
+ operationId: postCustomEntityTypePublishAll
+ produces:
+ - application/json
+
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
+ custom-entity-type-tenants-unpublish-all:
+ parameters:
+ - name: customEntityTypeId
+ in: path
+ required: true
+ type: string
+ post:
+ tags:
+ - customEntities
+ summary: Unpublishes the custom entity type from all tenants
+ description: |
+ Unpublishes the custom entity type from all tenants
+ operationId: postCustomEntityTypeUnpublishAll
+ produces:
+ - application/json
+
+ responses:
+ 200:
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/EntityReference'
+
custom-entity-type-actions:
parameters:
- name: customEntityTypeId
@@ -201,20 +379,24 @@ paths:
summary: Get list of all custom entities
description: |
Get list of custom entities
- operationId: queryCustomEntities
+ operationId: getCustomEntities
parameters:
- $ref: "./common/query.yaml#/parameters/queryFilter"
- $ref: "./common/query.yaml#/parameters/querySortAsc"
- $ref: "./common/query.yaml#/parameters/querySortDesc"
- - $ref: "./common/query.yaml#/parameters/queryPage"
- - $ref: "./common/query.yaml#/parameters/queryPageSize"
produces:
- application/json
responses:
200:
description: OK
schema:
- $ref: "./common/query.yaml#/definitions/QueryResults"
+ $ref: "#/definitions/CustomEntities"
+ '404':
+ description: Not Found
+ '401':
+ description: The user is not authorized
+ '403':
+ description: The user does not have 'read' access rights for custom entity
custom-entity:
parameters:
@@ -275,6 +457,14 @@ definitions:
required:
- name
+ CustomEntities:
+ type: object
+ properties:
+ entities:
+ type: array
+ items:
+ $ref: '#/definitions/CustomEntity'
+
CustomEntityType:
type: object
properties:
@@ -299,11 +489,35 @@ definitions:
description:
type: string
default: ""
- required:
- - vroId
- - vroDynamicType
- - name
- - nss
+ tenantScoped:
+ type: boolean
+ default: true
+ providerScoped:
+ type: boolean
+ default: true
+ publishAll:
+ description: |
+ Read-only value indicating publishAll state
+ type: boolean
+ default: false
+ required:
+ - vroId
+ - vroDynamicType
+ - name
+ - nss
+
+ CustomEntityTypes:
+ description: |
+ A list of custom entity types.
+ allOf:
+ - $ref: '#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of custom entity types.
+ items:
+ $ref: '#/definitions/CustomEntityType'
CreateCustomEntityTypeAction:
type: object
@@ -346,3 +560,6 @@ definitions:
type: array
items:
$ref: '#/definitions/CustomEntityTypeAction'
+
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
diff --git a/schemas/openapi/src/main/resources/schemas/vro/vro-catalog.yaml b/schemas/openapi/src/main/resources/schemas/vro/vro-catalog.yaml
new file mode 100644
index 00000000..e8e1f3e1
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vro/vro-catalog.yaml
@@ -0,0 +1,469 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2021-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ vRealize Orchestrator Catalog Overlay API.
+ version: "1.0"
+ title: vRealize Orchestrator Catalog Overlay API
+
+paths:
+ vroServerCatalog:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: List vRO Server namespaces
+ description: A REST endpoint for listing all catalog entry points.
+ Each Orchestrator plug-in exposes its own catalog entry point that is accessible at /catalog/{pluginname}.
+ The Orchestrator server exposes a separate catalog entry point that is accessible at /catalog/System
+ operationId: getCatalogDetails
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/CatalogWsInventoryItem"
+
+ vroServerCatalogNamespace:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: List vRO Server namespace items
+ description: A REST endpoint for retrieving the root elements in a namespace. All Orchestrator plug-ins that have an inventory,
+ usually provide a single root element. The Orchestrator server does not have a single root. Instead, for the System namespace,
+ the Orchestrator REST API returns a list that contains links to all system types (workflows, tasks, etc.)
+ operationId: getInventoryItemByNamespace
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ - $ref: "./vro/vro-catalog.yaml#/parameters/keys"
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/CatalogWsInventoryItem"
+
+ vroServerCatalogNamespaceType:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: List vRO Server namespace items
+ description: A REST endpoint for retrieving the root elements in a namespace. All Orchestrator plug-ins that have an inventory,
+ usually provide a single root element. The Orchestrator server does not have a single root. Instead, for the System namespace,
+ the Orchestrator REST API returns a list that contains links to all system types (workflows, tasks, etc.)
+ operationId: getInventoryItemsListByType
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ - name: type
+ in: path
+ description: Item type
+ required: true
+ type: string
+ - $ref: "./vro/vro-catalog.yaml#/parameters/maxResult"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/startIndex"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/startFromId"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/queryCount"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/keys"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/conditions"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/sortOrders"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/rootObject"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/tags"
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/CatalogInventoryItemsList"
+
+ vroServerCatalogNamespaceTypeId:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: List vRO Server namespace items by id
+ description: A REST endpoint for retrieving an element by its type and ID. All Orchestrator objects can be accessed or
+ identified by their unique combination of namespace, type and ID.
+ operationId: getInventoryItemById
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ - name: type
+ in: path
+ description: Item type
+ required: true
+ type: string
+ - name: id
+ in: path
+ description: Item type id
+ required: true
+ type: string
+ - $ref: "./vro/vro-catalog.yaml#/parameters/keys"
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/CatalogWsInventoryItem"
+
+ getByRelation:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: Find by relation
+ description: Every Orchestrator plug-in can define relations between its types. For example,
+ hierarchy structures can be defined as 'CHILDREN' relations between parent and children types.
+ If the request is successful, the API responds with an HTTP 200 OK status code and a list containing the child objects
+ that are accessible through a given relation, if any.
+ operationId: getInventoryItemsListByRelation
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ - name: parentType
+ in: path
+ description: parentType
+ required: true
+ type: string
+ - name: parentId
+ in: path
+ description: parentId
+ required: true
+ type: string
+ - name: relationName
+ in: path
+ description: relationName
+ required: true
+ type: string
+ - $ref: "./vro/vro-catalog.yaml#/parameters/maxResult"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/startIndex"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/queryCount"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/keys"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/conditions"
+ - $ref: "./vro/vro-catalog.yaml#/parameters/sortOrders"
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/CatalogInventoryItemsList"
+
+ getNamespaceIcon:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: Download icon for module
+ description: If the request is successful, the API responds with an HTTP 200 OK status code and the requested icon image
+ as a downloadable attachment that has an 'image/png' MIME type.
+ operationId: getIconByNamespace
+ x-vcloud-added-in: "36.0"
+ produces:
+ - image/png
+ - image/jpeg
+ - image/svg+xml
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ type: string
+ format: binary
+
+ getNamespaceTypeIcon:
+ get:
+ tags:
+ - vrealizeCatalog
+ summary: Download icon for module type
+ description: If the request is successful, the API responds with an HTTP 200 OK status code and the requested icon image
+ as a downloadable attachment that has an 'image/png' MIME type.
+ operationId: getIconByNamespaceType
+ x-vcloud-added-in: "36.0"
+ produces:
+ - image/png
+ - image/jpeg
+ - image/svg+xml
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: namespace
+ in: path
+ description: Namespace name
+ required: true
+ type: string
+ - name: type
+ in: path
+ description: Type
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ type: string
+ format: binary
+
+ getCategoryById:
+ get:
+ tags:
+ - vrealizeCategory
+ summary: Get Category
+ description: Endpoint for retrieving details for a category.
+ operationId: getCategoryById
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: vroId
+ in: path
+ description: vRO Server Id
+ required: true
+ type: string
+ - name: id
+ in: path
+ description: Category Id
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: "#/definitions/WsCategory"
+
+parameters:
+ maxResult:
+ in: query
+ name: maxResult
+ required: false
+ type: integer
+ description: maxResult
+ x-vcloud-added-in: "36.0"
+ startIndex:
+ in: query
+ name: startIndex
+ required: false
+ type: integer
+ description: startIndex
+ x-vcloud-added-in: "36.0"
+ startFromId:
+ in: query
+ name: startFromId
+ required: false
+ type: string
+ description: startFromId
+ x-vcloud-added-in: "36.0"
+ queryCount:
+ in: query
+ name: queryCount
+ required: false
+ type: boolean
+ description: queryCount
+ x-vcloud-added-in: "36.0"
+ keys:
+ in: query
+ name: keys
+ required: false
+ type: array
+ items:
+ type: string
+ description: Keys
+ collectionFormat: multi
+ x-vcloud-added-in: "36.0"
+ conditions:
+ in: query
+ name: conditions
+ required: false
+ type: array
+ items:
+ type: string
+ description: conditions
+ collectionFormat: multi
+ x-vcloud-added-in: "36.0"
+ sortOrders:
+ in: query
+ name: sortOrders
+ required: false
+ type: array
+ items:
+ type: string
+ description: sortOrders
+ collectionFormat: multi
+ x-vcloud-added-in: "36.0"
+ rootObject:
+ in: query
+ name: rootObject
+ required: false
+ type: string
+ description: rootObject
+ x-vcloud-added-in: "36.0"
+ tags:
+ in: query
+ name: tags
+ required: false
+ type: array
+ items:
+ type: string
+ description: tags
+ collectionFormat: multi
+ x-vcloud-added-in: "36.0"
+
+definitions:
+ WsCategory:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ description:
+ type: string
+ href:
+ type: string
+ id:
+ type: string
+ name:
+ type: string
+ path:
+ type: string
+ pathIds:
+ type: array
+ items:
+ type: string
+ relations:
+ $ref: "#/definitions/CatalogRelations"
+ type:
+ type: string
+ description: |
+ Allowed values are:
+ - ResourceElementCategory
+ - ConfigurationElementCategory
+ - WorkflowCategory
+ - PolicyTemplateCategory
+ - ScriptModuleCategory
+
+ CatalogWsInventoryItem:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ attributes:
+ type: array
+ items:
+ $ref: "#/definitions/CatalogWsAttribute"
+ href:
+ type: string
+ relations:
+ $ref: "#/definitions/CatalogRelations"
+
+ CatalogInventoryItemsList:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ count:
+ type: integer
+ startIndex:
+ type: integer
+ lastItemToken:
+ type: string
+ link:
+ type: array
+ items:
+ $ref: "#/definitions/CatalogLink"
+
+ CatalogWsAttribute:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ displayValue:
+ type: string
+ name:
+ type: string
+ value:
+ type: string
+
+ CatalogRelations:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ count:
+ type: integer
+ startIndex:
+ type: integer
+ link:
+ type: array
+ items:
+ $ref: "#/definitions/CatalogLink"
+
+ CatalogLink:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ attributes:
+ type: array
+ items:
+ $ref: "#/definitions/CatalogWsAttribute"
+ href:
+ type: string
+ rel:
+ type: string
+ type:
+ type: string
diff --git a/schemas/openapi/src/main/resources/schemas/vro/vro-common.yaml b/schemas/openapi/src/main/resources/schemas/vro/vro-common.yaml
index 89089c86..4a93f682 100644
--- a/schemas/openapi/src/main/resources/schemas/vro/vro-common.yaml
+++ b/schemas/openapi/src/main/resources/schemas/vro/vro-common.yaml
@@ -1,8 +1,9 @@
# ******************************************************************************
# * api-extension-template-vcloud-director
-# * Copyright 2017-2018 VMware, Inc. All rights reserved. *
+# * Copyright 2017-2021 VMware, Inc. All rights reserved. *
# * SPDX-License-Identifier: BSD-2-Clause
# ******************************************************************************
+
swagger: "2.0"
info:
@@ -51,3 +52,4 @@ definitions:
value:
type: string
+
diff --git a/schemas/openapi/src/main/resources/schemas/vro/vro-forms.yaml b/schemas/openapi/src/main/resources/schemas/vro/vro-forms.yaml
new file mode 100644
index 00000000..e1d817b6
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/vro/vro-forms.yaml
@@ -0,0 +1,953 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2021-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ title: vCloud Director vRO Froms Overlay API
+ description: |
+ vCloud Director vRO Froms Overlay API
+ version: "1.0"
+
+paths:
+ workflow-forms:
+ get:
+ tags:
+ - vroFormsOverlay
+ summary: Forms API Execution
+ description: 'Retrieves a workflow schema and layout using vRO Forms API.'
+ operationId: getWorkflowFormsLayoutSchema
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: workflowId
+ in: path
+ description: workflowId
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: '#/definitions/FormDefinition'
+
+ workflow-forms-eval-context:
+ get:
+ tags:
+ - vroFormsOverlay
+ summary: Forms API Execution
+ description: |
+ Retrieves a workflow evaluation context using vRO Forms API. Response type FormEvaluationContext.
+ operationId: getWorkflowFormsEvalContext
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ parameters:
+ - name: workflowId
+ in: path
+ description: workflowId
+ required: true
+ type: string
+ responses:
+ '200':
+ description: The request is successful. Response type FormEvaluationContext.
+ schema:
+ type: string
+
+ workflow-forms-evaluations:
+ post:
+ tags:
+ - vroFormsOverlay
+ summary: Forms API Execution
+ description: |
+ Updates workflow evaluation context using vRO Forms API. Request body is from type BatchExecution.
+ operationId: updatesWorkflowFormsEvalContext
+ x-vcloud-added-in: "36.0"
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: workflowId
+ in: path
+ description: workflowId
+ required: true
+ type: string
+ - name: evaluations
+ in: body
+ description: Request body is from type BatchExecution.
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: '#/definitions/BatchExecutionResult'
+
+ workflow-forms-executions:
+ post:
+ tags:
+ - vroFormsOverlay
+ summary: Forms API Execution
+ description: |
+ Executes workflow using vRO Forms API.
+ Request body is from type ExecutionContextForms and the response type is WsWorkflowExecutionForms.'
+ operationId: executeWorkflowFormsAPI
+ x-vcloud-added-in: "36.0"
+ consumes:
+ - application/json
+ produces:
+ - application/json
+ parameters:
+ - name: workflowId
+ in: path
+ description: workflowId
+ required: true
+ type: string
+ - name: executionContext
+ in: body
+ description: Request body is from type ExecutionContextForms.
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: The request is successful. Response type WsWorkflowExecutionForms.
+ schema:
+ type: string
+ '201':
+ description: Created
+ '202':
+ description: The request is successful. Response type WsWorkflowExecutionForms.
+ schema:
+ type: string
+
+ parameter-types-forms:
+ get:
+ tags:
+ - vroFormsOverlay
+ summary: This endpoint will not produce results. It is a placeholder to enforce code generation of ParameterTypesForms.
+ description: This endpoint will not produce results. It is a placeholder to enforce code generation of ParameterTypesForms.
+ operationId: getParameterTypesForms
+ x-vcloud-added-in: "36.0"
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: The request is successful
+ schema:
+ $ref: '#/definitions/ParameterTypesForms'
+ '401':
+ description: The user is not authorized
+ '403':
+ description: Forbidden
+
+definitions:
+ FormDefinition:
+ x-vcloud-added-in: "36.0"
+ title: FormDefinition
+ type: object
+ properties:
+ itemId:
+ type: string
+ layout:
+ $ref: '#/definitions/Layout'
+ options:
+ $ref: '#/definitions/OptionsForms'
+ schema:
+ type: object
+ additionalProperties:
+ $ref: '#/definitions/FieldDefinition'
+ vroId:
+ type: string
+
+ Layout:
+ x-vcloud-added-in: "36.0"
+ title: Layout
+ type: object
+ properties:
+ pages:
+ type: array
+ items:
+ $ref: '#/definitions/PageForms'
+
+ PageForms:
+ x-vcloud-added-in: "36.0"
+ title: PageForms
+ type: object
+ properties:
+ id:
+ type: string
+ sections:
+ type: array
+ items:
+ $ref: '#/definitions/Section'
+ state:
+ type: object
+ title:
+ type: string
+
+ Section:
+ x-vcloud-added-in: "36.0"
+ title: Section
+ type: object
+ properties:
+ fields:
+ type: array
+ items:
+ $ref: '#/definitions/FieldForms'
+ id:
+ type: string
+ state:
+ type: object
+
+ FieldForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ display:
+ type: string
+ id:
+ type: string
+ rootElements:
+ type: object
+ state:
+ type: object
+
+ OptionsForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ externalValidations:
+ type: array
+ items:
+ $ref: '#/definitions/ExternalValidation'
+ title: OptionsForms
+
+ ExternalValidation:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ label:
+ type: string
+ source:
+ $ref: '#/definitions/DynamicValueDefinition'
+ target:
+ type: array
+ items:
+ type: string
+ title: ExternalValidation
+
+ DynamicValueDefinition:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ id:
+ type: string
+ type:
+ type: string
+ title: DynamicValueDefinition
+
+ FieldDefinition:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ constraints:
+ type: object
+ default:
+ type: object
+ id:
+ type: string
+ label:
+ type: string
+ type:
+ $ref: '#/definitions/FieldType'
+ valueList:
+ type: object
+ title: FieldDefinition
+
+ FieldType:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ dataType:
+ type: string
+ fields:
+ type: array
+ items:
+ $ref: '#/definitions/FieldDefinition'
+ isMultiple:
+ type: boolean
+ referenceType:
+ type: string
+ title: FieldType
+
+ FormEvaluationContext:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ actions:
+ type: object
+ additionalProperties:
+ $ref: '#/definitions/ActionForms'
+ context:
+ type: array
+ items:
+ $ref: '#/definitions/RunContextValue'
+ parameters:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ token:
+ type: string
+ title: FormEvaluationContext
+
+ ActionForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ bundleHasContent:
+ type: boolean
+ description:
+ type: string
+ entryPoint:
+ type: string
+ fqn:
+ type: string
+ href:
+ type: string
+ iconId:
+ type: string
+ id:
+ type: string
+ inputParameters:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ module:
+ type: string
+ name:
+ type: string
+ outputParameterType:
+ type: string
+ relations:
+ $ref: '#/definitions/RelationsForms'
+ runtime:
+ type: string
+ runtimeMemoryLimit:
+ type: integer
+ format: int64
+ runtimeTimeout:
+ type: integer
+ format: int64
+ script:
+ type: string
+ version:
+ type: string
+ title: ActionForms
+
+ WsParameterForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ description:
+ type: string
+ encryptValue:
+ type: boolean
+ name:
+ type: string
+ scope:
+ type: string
+ enum:
+ - local
+ - token
+ type:
+ type: string
+ updated:
+ type: boolean
+ value:
+ $ref: '#/definitions/Value'
+ title: WsParameterForms
+
+ Value:
+ x-vcloud-added-in: "36.0"
+ type: object
+ discriminator: objectType
+ properties:
+ objectType:
+ type: string
+ title: Value
+ description: |
+ Value can be one of the following types: SDKObjectForms, StringObject, SecureStringObject,
+ PropertiesObject, NumberObject, ArrayForms,
+ MimeAttachment, DateObject, BooleanObject,
+ RegExObject, CompositeObject, EncryptedStringObject, AttributeReference}.
+
+
+ SDKObjectForms:
+ x-vcloud-added-in: "36.0"
+ title: SDKObjectForms
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ displayValue:
+ type: string
+ href:
+ type: string
+ id:
+ type: string
+ objectType:
+ type: string
+ type:
+ type: string
+ title: SDKObjectForms
+ description: SDKObjectForms
+ description: SDKObjectForms
+
+ StringObject:
+ x-vcloud-added-in: "36.0"
+ title: StringObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: string
+ title: StringObject
+ description: StringObject
+ description: StringObject
+
+ SecureStringObject:
+ x-vcloud-added-in: "36.0"
+ title: SecureStringObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ plainText:
+ type: boolean
+ value:
+ type: string
+ title: SecureStringObject
+ description: Encoded string
+ description: Encoded string
+
+ PropertiesObject:
+ x-vcloud-added-in: "36.0"
+ title: PropertiesObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ properties:
+ type: array
+ items:
+ $ref: '#/definitions/KeyValuePairForms'
+ title: PropertiesObject
+ description: PropertiesObject is a list of key value pairs.
+ description: PropertiesObject is a list of key value pairs.
+
+ KeyValuePairForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ key:
+ type: string
+ xml:
+ name: key
+ attribute: false
+ wrapped: false
+ value:
+ $ref: '#/definitions/Value'
+ title: KeyValuePairForms
+
+ NumberObject:
+ x-vcloud-added-in: "36.0"
+ title: NumberObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: number
+ format: double
+ title: NumberObject
+ description: NumberObject
+ description: NumberObject
+
+ ArrayForms:
+ x-vcloud-added-in: "36.0"
+ title: ArrayForms
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ elements:
+ type: array
+ items:
+ $ref: '#/definitions/Value'
+ objectType:
+ type: string
+ title: ArrayForms
+ description: Array with Value type elements
+ description: Array with Value type elements
+
+ MimeAttachmentForms:
+ x-vcloud-added-in: "36.0"
+ title: MimeAttachment
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ content:
+ type: string
+ format: byte
+ mimeType:
+ type: string
+ name:
+ type: string
+ objectType:
+ type: string
+ title: MimeAttachment
+ description: MimeAttachment Forms API
+ description: MimeAttachmentForms
+
+ DateObject:
+ x-vcloud-added-in: "36.0"
+ title: DateObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: string
+ format: date-time
+ title: DateObject
+ description: DateObject
+ description: DateObject
+
+ BooleanObject:
+ x-vcloud-added-in: "36.0"
+ title: BooleanObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: boolean
+ title: BooleanObject
+ description: BooleanObject
+ description: BooleanObject
+
+ RegExObject:
+ x-vcloud-added-in: "36.0"
+ title: RegExObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: string
+ title: RegExObject
+ description: RegExObject
+ description: RegExObject
+
+ CompositeObject:
+ x-vcloud-added-in: "36.0"
+ title: CompositeObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ id:
+ type: string
+ objectType:
+ type: string
+ value:
+ $ref: '#/definitions/Value'
+ values:
+ type: array
+ items:
+ $ref: '#/definitions/CompositeObject'
+ title: CompositeObject
+ description: CompositeObject
+ description: CompositeObject
+
+ EncryptedStringObject:
+ x-vcloud-added-in: "36.0"
+ title: EncryptedStringObject
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ objectType:
+ type: string
+ value:
+ type: string
+ title: EncryptedStringObject
+ description: EncryptedStringObject
+ description: EncryptedStringObject
+
+ AttributeReference:
+ x-vcloud-added-in: "36.0"
+ title: AttributeReference
+ allOf:
+ - $ref: '#/definitions/Value'
+ - type: object
+ properties:
+ configurationElementId:
+ type: string
+ configurationElementKey:
+ type: string
+ configurationElementName:
+ type: string
+ objectType:
+ type: string
+ title: AttributeReference
+ description: AttributeReference
+ description: AttributeReference
+
+ RelationsForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ count:
+ type: integer
+ format: int32
+ links:
+ type: array
+ items:
+ $ref: '#/definitions/LinkForms'
+ startIndex:
+ type: integer
+ format: int32
+ title: RelationsForms
+
+ LinkForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ attributes:
+ type: array
+ items:
+ $ref: '#/definitions/WsAttributeForms'
+ href:
+ type: string
+ rel:
+ type: string
+ type:
+ type: string
+ title: LinkForms
+
+ WsAttributeForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ displayValue:
+ type: string
+ name:
+ type: string
+ value:
+ type: string
+ title: WsAttributeForms
+
+ RunContextValue:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ id:
+ type: string
+ type:
+ $ref: '#/definitions/FieldType'
+ value:
+ type: object
+ title: RunContextValue
+
+ WsWorkflowExecutionForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ description: |
+ State property could be one of the following values: canceled, completed, running, suspended, waiting
+ , waiting-signal, failed, initializing.
+ properties:
+ businessState:
+ type: string
+ contentException:
+ type: string
+ currentItemDisplayName:
+ type: string
+ currentItemForDisplay:
+ type: string
+ endDate:
+ type: string
+ format: date-time
+ executionStack:
+ type: array
+ items:
+ $ref: '#/definitions/WsWorkflowExecutionStackItem'
+ formInputs:
+ type: array
+ items:
+ type: object
+ href:
+ type: string
+ id:
+ type: string
+ inputParameters:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ name:
+ type: string
+ outputParameters:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ relations:
+ $ref: '#/definitions/RelationsForms'
+ runningInstanceId:
+ type: string
+ startDate:
+ type: string
+ format: date-time
+ startedBy:
+ type: string
+ state:
+ type: string
+ statistic:
+ $ref: '#/definitions/WsWorkflowExecutionStatistics'
+ workflowAttributes:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ title: WsWorkflowExecutionForms
+
+ WsWorkflowExecutionStackItem:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ attributes:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ displayName:
+ type: string
+ href:
+ type: string
+ name:
+ type: string
+ relations:
+ $ref: '#/definitions/RelationsForms'
+ workflowDisplayName:
+ type: string
+ title: WsWorkflowExecutionStackItem
+
+ WsWorkflowExecutionStatistics:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ activities:
+ type: array
+ items:
+ $ref: '#/definitions/WsActivityStatistics'
+ id:
+ type: string
+ numberOfTransitions:
+ type: integer
+ format: int64
+ plugins:
+ type: array
+ items:
+ $ref: '#/definitions/WsPluginStatistics'
+ tokenBlocked:
+ type: integer
+ format: int64
+ tokenSize:
+ type: integer
+ format: int64
+ tokenSystem:
+ type: integer
+ format: int64
+ tokenUser:
+ type: integer
+ format: int64
+ tokenWait:
+ type: integer
+ format: int64
+ totalNumberOfTransitions:
+ type: integer
+ format: int64
+ totalTime:
+ type: integer
+ format: int64
+ title: WsWorkflowExecutionStatistics
+
+ WsActivityStatistics:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ activities:
+ type: array
+ items:
+ $ref: '#/definitions/WsActivityStatistics'
+ id:
+ type: string
+ maxTime:
+ type: integer
+ format: int64
+ numberOfExecutions:
+ type: integer
+ format: int64
+ numberOfTransitions:
+ type: integer
+ format: int64
+ totalTime:
+ type: integer
+ format: int64
+ title: WsActivityStatistics
+
+ WsPluginStatistics:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ numberOfExecutions:
+ type: integer
+ format: int64
+ pluginName:
+ type: string
+ totalTime:
+ type: integer
+ format: int64
+ title: WsPluginStatistics
+
+ ExecutionContextForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ executionId:
+ type: string
+ parameters:
+ type: array
+ items:
+ $ref: '#/definitions/WsParameterForms'
+ profilerOptions:
+ $ref: '#/definitions/WsProfilerOptions'
+ title: ExecutionContextForms
+
+ WsProfilerOptions:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ debuggerEnabled:
+ type: boolean
+ enabled:
+ type: boolean
+ tokenReplayEnabled:
+ type: boolean
+ title: WsProfilerOptions
+
+ ParameterTypesForms:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ array:
+ $ref: '#/definitions/ArrayForms'
+ attributeReference:
+ $ref: '#/definitions/AttributeReference'
+ sdkObject:
+ $ref: '#/definitions/SDKObjectForms'
+ string:
+ $ref: '#/definitions/StringObject'
+ secureString:
+ $ref: '#/definitions/SecureStringObject'
+ number:
+ $ref: '#/definitions/NumberObject'
+ mimeAttachment:
+ $ref: '#/definitions/MimeAttachmentForms'
+ properties:
+ $ref: '#/definitions/PropertiesObject'
+ date:
+ $ref: '#/definitions/DateObject'
+ boolean:
+ $ref: '#/definitions/BooleanObject'
+ composite:
+ $ref: '#/definitions/CompositeObject'
+ regex:
+ $ref: '#/definitions/RegExObject'
+ encryptedString:
+ $ref: '#/definitions/EncryptedStringObject'
+ keyValuePairForms:
+ $ref: '#/definitions/KeyValuePairForms'
+ batchExecution:
+ $ref: '#/definitions/BatchExecution'
+ formEvaluationContext:
+ $ref: '#/definitions/FormEvaluationContext'
+ wsWorkflowExecutionForms:
+ $ref: '#/definitions/WsWorkflowExecutionForms'
+ executionContextForms:
+ $ref: '#/definitions/ExecutionContextForms'
+ formDefinition:
+ $reef: '#/definitions/FormDefinition'
+
+ BatchExecution:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ executions:
+ type: array
+ items:
+ $ref: '#/definitions/Execution'
+ token:
+ type: string
+ title: BatchExecution
+
+ Execution:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ actionId:
+ type: string
+ error:
+ type: string
+ inputs:
+ $ref: '#/definitions/ExecutionContextForms'
+ title: Execution
+
+ BatchExecutionResult:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ results:
+ type: array
+ items:
+ $ref: '#/definitions/ScriptResult'
+ title: BatchExecutionResult
+
+ ScriptResult:
+ x-vcloud-added-in: "36.0"
+ type: object
+ properties:
+ error:
+ type: string
+ result:
+ type: object
+ title: ScriptResult
diff --git a/schemas/openapi/src/main/resources/schemas/vro/vro.yaml b/schemas/openapi/src/main/resources/schemas/vro/vro.yaml
index c75ce82e..1452ed4e 100644
--- a/schemas/openapi/src/main/resources/schemas/vro/vro.yaml
+++ b/schemas/openapi/src/main/resources/schemas/vro/vro.yaml
@@ -1,8 +1,9 @@
-# *************************************************************************
+# ******************************************************************************
# * api-extension-template-vcloud-director
-# * Copyright 2017-2018 VMware, Inc. All rights reserved. *
+# * Copyright 2017-2021 VMware, Inc. All rights reserved. *
# * SPDX-License-Identifier: BSD-2-Clause
-# *************************************************************************
+# ******************************************************************************
+
swagger: "2.0"
info:
description: |
@@ -27,96 +28,82 @@ paths:
- $ref: "./common/query.yaml#/parameters/queryFilter"
- $ref: "./common/query.yaml#/parameters/querySortAsc"
- $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
produces:
- application/json
responses:
200:
description: OK
schema:
- type: array
- items:
- $ref: '#/definitions/VroRemoteWorkflowItem'
- 404:
- description: Not Found
+ $ref: "#/definitions/VroRemoteWorkflowItems"
- vroInventory:
+ pluginList:
parameters:
- name: vroId
description: The ID of the server to browse inventory items on
in: path
required: true
type: string
- - name: any
- description: Inventory search path to identify the VRO inventory node to get contents of
- in: path
- required: false
- type: string
get:
tags:
- vrealizeBrowse
summary: Browse remote vRealize Orchestrator inventory
- operationId: getRemoteInventory
+ operationId: getPluginList
produces:
- application/json
responses:
200:
description: OK
schema:
- $ref: '#/definitions/VroRemoteInventoryItem'
+ $ref: '#/definitions/VroRemotePluginItems'
404:
description: Not Found
- vroCatalogBase:
+ pluginTypeList:
parameters:
- name: vroId
description: The ID of the server to browse inventory items on
in: path
required: true
type: string
+ - name: pluginName
+ description: Inventory search path to identify the VRO inventory node to get contents of
+ in: path
+ required: true
+ type: string
get:
tags:
- vrealizeBrowse
summary: Browse remote vRealize Orchestrator inventory
- operationId: getRemoteCatalog
- parameters:
- - $ref: "./common/query.yaml#/parameters/queryFilter"
- - $ref: "./common/query.yaml#/parameters/querySortAsc"
- - $ref: "./common/query.yaml#/parameters/querySortDesc"
- - $ref: "./common/query.yaml#/parameters/queryPage"
- - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ operationId: getPluginTypeList
produces:
- application/json
responses:
200:
description: OK
schema:
- $ref: '#/definitions/VroRemoteInventoryItem'
+ $ref: '#/definitions/VroRemotePluginTypes'
404:
description: Not Found
- vroCatalogPlugin:
+ vroInventory:
parameters:
- name: vroId
description: The ID of the server to browse inventory items on
in: path
required: true
type: string
- - name: plugin
- description: The name of the plugin to search within the catalog
+ - name: any
+ description: Inventory search path to identify the VRO inventory node to get contents of
in: path
- required: true
+ required: false
type: string
get:
tags:
- vrealizeBrowse
summary: Browse remote vRealize Orchestrator inventory
- operationId: getRemoteCatalogPlugin
- parameters:
- - $ref: "./common/query.yaml#/parameters/queryFilter"
- - $ref: "./common/query.yaml#/parameters/querySortAsc"
- - $ref: "./common/query.yaml#/parameters/querySortDesc"
- - $ref: "./common/query.yaml#/parameters/queryPage"
- - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ operationId: getRemoteInventory
produces:
- application/json
responses:
@@ -127,20 +114,15 @@ paths:
404:
description: Not Found
- vroCatalogPluginType:
+ vroSdkObjectsBase:
parameters:
- name: vroId
description: The ID of the server to browse inventory items on
in: path
required: true
type: string
- - name: plugin
- description: The name of the plugin to search within the catalog
- in: path
- required: true
- type: string
- - name: type
- description: The datatype within the specified plugin
+ - name: target
+ description: The 'plugin[:type]' to serve as the starting point for the browsing
in: path
required: true
type: string
@@ -148,42 +130,35 @@ paths:
tags:
- vrealizeBrowse
summary: Browse remote vRealize Orchestrator inventory
- operationId: getRemoteCatalogPluginType
+ operationId: searchSdkObjects
parameters:
- - $ref: "./common/query.yaml#/parameters/queryFilter"
- - $ref: "./common/query.yaml#/parameters/querySortAsc"
- - $ref: "./common/query.yaml#/parameters/querySortDesc"
- - $ref: "./common/query.yaml#/parameters/queryPage"
- - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
produces:
- - application/json
+ - application/json
responses:
200:
description: OK
schema:
- $ref: './vro/vro-common.yaml#/definitions/Relations'
+ $ref: '#/definitions/VroRemoteItems'
404:
description: Not Found
- vroCatalogPluginTypeItem:
+ vroSdkObjectsBrowse:
parameters:
- name: vroId
description: The ID of the server to browse inventory items on
in: path
required: true
type: string
- - name: plugin
- description: The name of the plugin to search within the catalog
+ - name: target
+ description: The 'plugin[:type]' to serve as the starting point for the browsing
in: path
required: true
type: string
- - name: type
- description: The datatype within the specified plugin
- in: path
- required: true
- type: string
- - name: itemId
- description: Id of the specific item within the plugin's type catalog
+ - name: browsePaths
+ description: Inventory search path to identify the VRO inventory node to get contents of
in: path
required: true
type: string
@@ -191,23 +166,38 @@ paths:
tags:
- vrealizeBrowse
summary: Browse remote vRealize Orchestrator inventory
- operationId: getRemoteCatalogPluginTypeItem
- parameters:
- - $ref: "./common/query.yaml#/parameters/queryFilter"
- - $ref: "./common/query.yaml#/parameters/querySortAsc"
- - $ref: "./common/query.yaml#/parameters/querySortDesc"
- - $ref: "./common/query.yaml#/parameters/queryPage"
- - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ operationId: browseSdkObjects
produces:
- - application/json
+ - application/json
responses:
200:
description: OK
schema:
- $ref: '#/definitions/VroRemoteInventoryItem'
+ $ref: '#/definitions/VroRemoteItems'
404:
description: Not Found
+ discovery:
+ post:
+ tags:
+ - vRealizeOrchestrators
+ x-vcloud-added-in: "35.0"
+ summary: Discover vCenter to work with the provided vRealize Orchestrator service
+ operationId: discoverVroVcenter
+ consumes:
+ - application/json
+ parameters:
+ - name: body
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/VROServiceInfo'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+
vros:
get:
tags:
@@ -352,6 +342,107 @@ definitions:
vroServerId:
type: string
+ VroRemoteWorkflowItems:
+ description: |
+ A list of remote VRO workflows.
+ allOf:
+ - $ref: '#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of remove VRO workflows.
+ items:
+ $ref: '#/definitions/VroRemoteWorkflowItem'
+
+ VroRemoteItems:
+ description: |
+ A list of objects in vRealize orchestrator server
+ type: object
+ properties:
+ remoteItems:
+ type: array
+ items:
+ $ref: '#/definitions/VroRemoteItem'
+ resultTotal:
+ type: integer
+ pageCount:
+ type: integer
+
+ VroRemoteItem:
+ description: |
+ Information about various objects in vRealize Orchestrator server
+ type: object
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ id:
+ type: string
+ vroServerId:
+ type: string
+ dunesId:
+ type: string
+ type:
+ type: string
+ selectable:
+ type: boolean
+ canHaveChildren:
+ type: boolean
+ href:
+ type: string
+ rel:
+ type: string
+
+ VroRemotePluginItems:
+ description: |
+ List of plugin namespaces
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/definitions/VroRemotePluginItem'
+
+ VroRemotePluginItem:
+ description: |
+ A plugin namespaces for whom type information can be retrieved
+ type: object
+ properties:
+ name:
+ type: string
+ typeHref:
+ type: string
+ selectable:
+ type: boolean
+ canHaveChildren:
+ type: boolean
+
+ VroRemotePluginTypes:
+ description: |
+ A list of defined types for a particular plugin namespace
+ type: object
+ properties:
+ types:
+ type: array
+ items:
+ $ref: '#/definitions/VroRemotePluginType'
+ namespace:
+ type: string
+
+ VroRemotePluginType:
+ description: |
+ Type definition for a plugin namespace
+ type: object
+ properties:
+ name:
+ type: string
+ selectable:
+ type: boolean
+ canHaveChildren:
+ type: boolean
+
VroWorkflowServiceItem:
allOf:
- $ref: "./services/services.yaml#/definitions/ServiceItem"
@@ -366,6 +457,9 @@ definitions:
- vroWorkflowId
- serviceItemType
+ EntityReference:
+ $ref: "./common/entity.yaml#/definitions/EntityReference"
+
VROServiceInfo:
description: |
Response type with meta information about a vRealize Orchestrator Service
@@ -394,6 +488,16 @@ definitions:
version:
type: string
trustAnchor:
- description: |
- SSL Certificate chain for the VRO endpoint
- type: string
\ No newline at end of file
+ description: SSL Certificate chain for the VRO endpoint (deprecated)
+ type: string
+ vcId:
+ $ref: '#/definitions/EntityReference'
+ description: Reference to the associated vCenter server.
+ x-vcloud-property-annotations:
+ trustAnchor:
+ x-vcloud-deprecated-in: "35.0"
+ x-vcloud-deprecated-alternative: see /1.0.0/ssl/trustedCertificates API
+ vcId:
+ x-vcloud-added-in: "35.0"
+ x-vcloud-constraints:
+ - constraint: NonSortable
diff --git a/schemas/openapi/src/main/resources/schemas/vro/workflowExecution.yaml b/schemas/openapi/src/main/resources/schemas/vro/workflowExecution.yaml
index 3429cd60..3498c744 100644
--- a/schemas/openapi/src/main/resources/schemas/vro/workflowExecution.yaml
+++ b/schemas/openapi/src/main/resources/schemas/vro/workflowExecution.yaml
@@ -1,8 +1,9 @@
-# *************************************************************************
+# ******************************************************************************
# * api-extension-template-vcloud-director
-# * Copyright 2017-2018 VMware, Inc. All rights reserved. *
+# * Copyright 2017-2021 VMware, Inc. All rights reserved. *
# * SPDX-License-Identifier: BSD-2-Clause
-# *************************************************************************
+# ******************************************************************************
+
swagger: "2.0"
info:
title: vCloud Director Workflow Execution API
@@ -44,6 +45,8 @@ paths:
tags:
- vroWorkflowExecution
summary: Start workflow execution
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
description: |
Instantiates a workflow run, by using the passed parameters. The workflow run is asynchronous, so the call returns a pointer to a task that can be used to track the workflow run.
operationId: startWorkflowExecution
@@ -205,8 +208,10 @@ paths:
get:
tags:
- vroWorkflowExecution
- summary: Get a list of supported parameter types
- description: Retrieves the list of supported parameter types
+ summary: This endpoint will not produce results. It is a placeholder to enforce code generation of ParameterTypes.
+ description: This endpoint will not produce results. It is a placeholder to enforce code generation of ParameterTypes.
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getParameterTypes
produces:
- application/json
@@ -224,8 +229,10 @@ paths:
get:
tags:
- vroWorkflowExecution
- summary: Get a list of supported presentation elements
- description: Retrieves the list of supported presentation elements
+ summary: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedPresentationElements.
+ description: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedPresentationElements.
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getSupportedPresentationElements
produces:
- application/json
@@ -243,8 +250,10 @@ paths:
get:
tags:
- vroWorkflowExecution
- summary: Get a list of supported decorators
- description: Retrieves the list of supported decorators
+ summary: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedDecorators.
+ description: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedDecorators.
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getSupportedDecorators
produces:
- application/json
@@ -262,8 +271,10 @@ paths:
get:
tags:
- vroWorkflowExecution
- summary: Get a list of supported constraints
- description: Retrieves the list of supported constraints
+ summary: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedConstraints.
+ description: This endpoint will not produce results. It is a placeholder to enforce code generation of SupportedConstraints.
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getSupportedconstraints
produces:
- application/json
@@ -283,6 +294,8 @@ paths:
- vroWorkflowPresentation
summary: Get presentation
description: 'Retrieves the definition of a workflow presentation. To retrieve the workflow presentation definition localized, add Accept-Language header, with the appropriate locale. In advance, localization resource should be present for the workflow, otherwise it defaults to the standard workflow presentation definition.'
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getWorkflowPresentation
produces:
- application/json
@@ -310,6 +323,8 @@ paths:
- vroWorkflowPresentation
summary: Get all presentations
description: 'Retrieves a list of the presentation instances for a workflow that you specify. To retrieve the list of workflow presentations, make an HTTP GET request at the workflow presentations list URL. The returned list contains all of the currently running workflow presentation instances, and all completed instances based on the data from the workflow executions. If the user has admin rights, all presentation instances for all users are returned.'
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getAllWorkflowPresentationInstances
produces:
- application/json
@@ -335,6 +350,8 @@ paths:
- vroWorkflowPresentation
summary: Start presentation
description: ' Creates a new instance of the presentation of a workflow, by using the passed parameters. To create a new instance of a workflow presentation, make an HTTP GET request at the URL that contains the instances of the workflow presentation. Presentation''s fields are populated with input parameter values and are validated. If there are any validation errors, they are collected and attached to each field. The presentation is marked as invalid. In order the returned workflow presentation to be localized, add Accept-Language header, with the appropriate locale. In advance, localization resource should be present for the workflow, otherwise it defaults to the standard workflow presentation.'
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: startWorkflowPresentation
consumes:
- application/json
@@ -374,6 +391,8 @@ paths:
- vroWorkflowPresentation
summary: Load Execution
description: 'Retrieves a specific workflow presentation instance. Presentation instances are removed after the workflow starts. If the presentation instance under requested executionId does not exists, a new presentation instance is created by using the parameters from the workflow execution with the same ID. To retrieve the workflow presentation localized, add Accept-Language header, with the appropriate locale. In advance, localization resource should be present for the workflow, otherwise it defaults to the standard workflow presentation.'
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: getWorkflowPresentationInstance
produces:
- application/json
@@ -403,6 +422,8 @@ paths:
tags:
- vroWorkflowPresentation
summary: Update presentation
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
description: 'Update a specific workflow presentation instance. Presentation fields are populated with input parameter values and are validated. If there are any validation errors, they are collected and attached to each field. The presentation is marked as invalid. If the parameter''s ''updated'' flag is set to true, the dependent field values are recalculated.'
operationId: updateWorkflowPresentationInstance
consumes:
@@ -444,6 +465,8 @@ paths:
- vroWorkflowPresentation
summary: Delete workflow presentation execution
description: 'Cancels the execution of a workflow presentation instance. This API call cancels only the workflow presentation execution. To cancel the workflow execution, use APIs under /cloudapi/workflows/{workflowId}/instances.'
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
operationId: deleteWorkflowPresenationInstance
parameters:
- name: workflowId
@@ -469,18 +492,22 @@ paths:
definitions:
ExecutionState:
type: string
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
enum:
- canceled
- completed
- running
- suspended
- waiting
- - waitingSignal
+ - waiting-signal
- failed
- initializing
ExecutionSummary:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
id:
type: string
@@ -497,6 +524,8 @@ definitions:
ExecutionContext:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
parameters:
type: array
@@ -505,6 +534,8 @@ definitions:
WsWorkflowExecution:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
businessState:
type: string
@@ -539,6 +570,8 @@ definitions:
WsParameter:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
description:
type: string
@@ -560,6 +593,8 @@ definitions:
PresentationExecutionsList:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
total:
type: integer
@@ -574,6 +609,8 @@ definitions:
Parameter:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
discriminator: inputType
properties:
inputType:
@@ -582,6 +619,8 @@ definitions:
- inputType
SdkObject:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -596,6 +635,8 @@ definitions:
type: string
SecureString:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -606,6 +647,8 @@ definitions:
type: boolean
NumberParam:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -614,6 +657,8 @@ definitions:
type: number
MimeAttachment:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -627,6 +672,8 @@ definitions:
type: string
Properties:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -637,6 +684,8 @@ definitions:
$ref: '#/definitions/KeyValuePair'
DateParam:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -646,6 +695,8 @@ definitions:
format: date-time
BooleanParam:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -654,6 +705,8 @@ definitions:
type: boolean
StringParam:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -662,6 +715,8 @@ definitions:
type: string
Regex:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -670,6 +725,8 @@ definitions:
type: string
EncryptedString:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -678,6 +735,8 @@ definitions:
type: string
ArrayParam:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -688,6 +747,8 @@ definitions:
$ref: '#/definitions/Parameter'
CompositeType:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -700,6 +761,8 @@ definitions:
type: string
CompositeValue:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -710,6 +773,8 @@ definitions:
$ref: '#/definitions/Parameter'
KeyValuePair:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Parameter'
- type: object
@@ -720,6 +785,8 @@ definitions:
$ref: '#/definitions/Parameter'
ParameterTypes:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
properties:
sdkObject:
@@ -752,6 +819,8 @@ definitions:
$ref: '#/definitions/ArrayParam'
SupportedPresentationElements:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
properties:
presentationElement:
@@ -766,6 +835,8 @@ definitions:
$ref: '#/definitions/PrimaryField'
SupportedDecorators:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
properties:
decorator:
@@ -780,6 +851,8 @@ definitions:
$ref: '#/definitions/DropDown'
SupportedConstraints:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
properties:
constraint:
@@ -798,12 +871,16 @@ definitions:
$ref: '#/definitions/NumberFormat'
Presentation:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
properties:
description:
type: string
id:
type: string
+ vroId:
+ type: string
inputParameters:
type: array
items:
@@ -820,6 +897,8 @@ definitions:
$ref: '#/definitions/StepInfo'
StepInfo:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/PresentationElement'
- type: object
@@ -833,6 +912,8 @@ definitions:
PresentationMessageInfo:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
code:
type: string
@@ -849,6 +930,8 @@ definitions:
PresentationElement:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
discriminator: elementType
properties:
elementType:
@@ -870,6 +953,8 @@ definitions:
PresentationExecution:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
description:
type: string
@@ -897,6 +982,8 @@ definitions:
Errors:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
allErrors:
type: array
@@ -930,6 +1017,8 @@ definitions:
FieldError:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
arguments:
type: array
@@ -954,6 +1043,8 @@ definitions:
ObjectError:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
properties:
arguments:
type: array
@@ -971,6 +1062,8 @@ definitions:
type: string
Group:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/PresentationElement'
- type: object
@@ -981,6 +1074,8 @@ definitions:
$ref: '#/definitions/PrimaryField'
Field:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/PresentationElement'
- type: object
@@ -1001,6 +1096,8 @@ definitions:
type: string
PrimaryField:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Field'
- type: object
@@ -1014,6 +1111,8 @@ definitions:
Decorator:
type: object
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
discriminator: decoratorType
properties:
decoratorType:
@@ -1022,6 +1121,8 @@ definitions:
- decoratorType
Chooser:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Decorator'
- type: object
@@ -1032,10 +1133,14 @@ definitions:
type: string
RefreshOnChange:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Decorator'
DropDown:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Decorator'
- type: object
@@ -1044,10 +1149,14 @@ definitions:
$ref: '#/definitions/ArrayParam'
MultiLine:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Decorator'
Constraint:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
type: object
discriminator: constraintType
properties:
@@ -1057,18 +1166,26 @@ definitions:
- constraintType
Mandatory:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
RestrictDuplicates:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
CustomValidator:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
NumberRange:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
- type: object
@@ -1079,6 +1196,8 @@ definitions:
type: number
NumberFormat:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
- type: object
@@ -1087,9 +1206,11 @@ definitions:
type: string
Regexp:
+ x-vcloud-deprecated-in: "36.0"
+ x-vcloud-deprecated-alternative: vRO Forms Overlay API Marked As Internal
allOf:
- $ref: '#/definitions/Constraint'
- type: object
properties:
expression:
- type: string
\ No newline at end of file
+ type: string
diff --git a/schemas/openapi/src/main/resources/schemas/wcp/tkgcluster.yaml b/schemas/openapi/src/main/resources/schemas/wcp/tkgcluster.yaml
new file mode 100644
index 00000000..079c7b84
--- /dev/null
+++ b/schemas/openapi/src/main/resources/schemas/wcp/tkgcluster.yaml
@@ -0,0 +1,240 @@
+# ******************************************************************************
+# * api-extension-template-vcloud-director
+# * Copyright 2020-2021 VMware, Inc. All rights reserved. *
+# * SPDX-License-Identifier: BSD-2-Clause
+# ******************************************************************************
+
+swagger: "2.0"
+info:
+ description: |
+ This is an "alpha" API that provides vCD tenants a unified way to manage
+ all flavors of Kubernetes clusters that vCD supports.
+ title: Kubernetes API
+
+paths:
+ tkgClusters:
+ post:
+ x-vcloud-added-in: "ALPHA"
+ tags:
+ - k8sCluster
+ summary: |
+ Creates a new Kubernetes cluster.
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ operationId: createK8sCluster
+ consumes:
+ - application/json
+ parameters:
+ - in: body
+ name: k8sCluster
+ description: |
+ Example Value for CSE Native cluster
+
+ {
+ "metadata": {
+ "name": "my-CSE-Native-cluster",
+ "site": "",
+ "orgName": "my-organization",
+ "virtualDataCenterName": "my-org-vdc"
+ },
+ "apiVersion": "cse.vmware.com/v2.0",
+ "kind": "native",
+ "spec": {
+ "expose": false,
+ "settings": {
+ "sshKey": null,
+ "network": null,
+ "ovdcNetwork": "network-in-my-org-vdc",
+ "rollbackOnFailure": true
+ },
+ "topology": {
+ "workers": {
+ "count": 1
+ },
+ "controlPlane": {
+ "count": 1
+ }
+ },
+ "distribution": {
+ "templateName": "ubuntu-16.04_k8-1.18_weave-2.6.5",
+ "templateRevision": 2
+ }
+ }
+ }
+
+ Example Value for TKGS cluster
+
+ {
+ "kind": "TanzuKubernetesCluster",
+ "metadata": {
+ "name": "my-TKGS-cluster",
+ "placementPolicy": "my-placement-policy",
+ "virtualDataCenterName": "my-org-vdc"
+ },
+ "spec": {
+ "distribution": {
+ "version": "v1.20.2"
+ },
+ "topology": {
+ "controlPlane": {
+ "class": "best-effort-xsmall",
+ "count": 1,
+ "storageClass": "my-storage-class"
+ },
+ "workers": {
+ "class": "best-effort-xsmall",
+ "count": 1,
+ "storageClass": "my-storage-class"
+ }
+ }
+ }
+ }
+
+ required: true
+ schema:
+ $ref: '#/definitions/Cluster'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ get:
+ x-vcloud-added-in: "ALPHA"
+ x-vcloud-multisite: true
+ tags:
+ - k8sCluster
+ summary: Retrieves all K8s clusters
+ description: |
+ Retrieves all K8s clusters
+ operationId: queryK8sClusters
+ parameters:
+ - $ref: "./common/query.yaml#/parameters/queryFilter"
+ - $ref: "./common/query.yaml#/parameters/querySortAsc"
+ - $ref: "./common/query.yaml#/parameters/querySortDesc"
+ - $ref: "./common/query.yaml#/parameters/queryPage"
+ - $ref: "./common/query.yaml#/parameters/queryPageSize"
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: '#/definitions/Clusters'
+
+ kubeconfig:
+ parameters:
+ - name: urn
+ in: path
+ required: true
+ type: string
+ description: |
+ A URN corresponding to a Kubernetes cluster previously created by
+ a POST to OpenAPI tkgClusters endpoint.
+ example: urn:vcloud:entity:vmware.tkgcluster:1.0.0:d3b61159-f4c2-47dc-9ada-090ec1d45703
+ post:
+ x-vcloud-added-in: "ALPHA"
+ tags:
+ - k8sCluster
+ summary: Generate kubeconfig file for corresponding cluster
+ operationId: generateKubeconfig
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+ tkgCluster:
+ parameters:
+ - name: urn
+ in: path
+ required: true
+ type: string
+ description: |
+ A URN corresponding to a Kubernetes cluster previously created by
+ a POST to OpenAPI tkgClusters endpoint.
+ example: urn:vcloud:entity:vmware.tkgcluster:1.0.0:d3b61159-f4c2-47dc-9ada-090ec1d45703
+ get:
+ x-vcloud-added-in: "ALPHA"
+ tags:
+ - k8sCluster
+ summary: Get specified Kubernetes Cluster
+ operationId: getK8sCluster
+ produces:
+ - application/json
+ responses:
+ 200:
+ schema:
+ $ref: '#/definitions/Cluster'
+ 404:
+ description: Not Found
+ put:
+ x-vcloud-added-in: "ALPHA"
+ tags:
+ - k8sCluster
+ summary: |
+ Update the desired state of the Kubernetes cluster.
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ operationId: updateK8sCluster
+ consumes:
+ - application/json
+ parameters:
+ - name: k8sCluster
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/Cluster'
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+ 400:
+ $ref: "./common/response.yaml#/components/responses/BadRequest"
+ 404:
+ $ref: "./common/response.yaml#/components/responses/NotFound"
+ delete:
+ tags:
+ - k8sCluster
+ x-vcloud-added-in: "ALPHA"
+ description: |
+ Deletes the Kubernetes cluster with the unique identifier (URN).
+ This operation is asynchronous and returns a task that
+ you can monitor to track the progress of the request.
+ operationId: deleteK8sCluster
+ responses:
+ 202:
+ $ref: "./common/response.yaml#/components/responses/Accepted"
+
+definitions:
+ Clusters:
+ x-vcloud-added-in: "ALPHA"
+ description: |
+ A list of Kubernetes clusters.
+ allOf:
+ - $ref: '#/definitions/Page'
+ - type: object
+ properties:
+ values:
+ type: array
+ description: The current page of Kubernetes clusters.
+ items:
+ $ref: '#/definitions/Cluster'
+
+ Cluster:
+ x-vcloud-added-in: "ALPHA"
+ description: |
+ A Kubernetes cluster.
+ type: object
+ properties:
+ kind:
+ type: string
+ apiVersion:
+ type: string
+ metadata:
+ type: object
+ additionalProperties:
+ type: object
+ spec:
+ type: object
+ additionalProperties:
+ type: object
+ status:
+ type: object
+ additionalProperties:
+ type: object
diff --git a/schemas/openapi/src/test/java/com/vmware/vcloud/rest/openapi/schemas/OpenApiVendorExtensionsValidator.java b/schemas/openapi/src/test/java/com/vmware/vcloud/rest/openapi/schemas/OpenApiVendorExtensionsValidator.java
new file mode 100644
index 00000000..0c9cbf70
--- /dev/null
+++ b/schemas/openapi/src/test/java/com/vmware/vcloud/rest/openapi/schemas/OpenApiVendorExtensionsValidator.java
@@ -0,0 +1,187 @@
+/* *****************************************************************************
+ * api-extension-template-vcloud-director
+ * Copyright 2019-2021 VMware, Inc. All rights reserved. *
+ * SPDX-License-Identifier: BSD-2-Clause
+ * *****************************************************************************/
+
+package com.vmware.vcloud.rest.openapi.schemas;
+
+/*-
+ * #%L
+ * vcd-openapi-schemas :: vCloud Director OpenAPI Definitions
+ * %%
+ * Copyright (C) 2018 - 2021 VMware
+ * %%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ * #L%
+ */
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import io.swagger.util.Yaml;
+
+
+/**
+ * Insert your comment for OpenApiVendorExtensionsValidator here
+ *
+ */
+public class OpenApiVendorExtensionsValidator {
+ private static final StringWriter MESSAGES = new StringWriter();
+ private static final BufferedWriter OUT = new BufferedWriter(MESSAGES);
+
+ private static final Path SCHEMAS = Path.of("schemas");
+
+ private static final class SwaggerObject {
+ final String filename;
+ final JsonNode node;
+
+ SwaggerObject(String filename, JsonNode swaggerObject) {
+ this.filename = filename;
+ this.node = swaggerObject;
+ }
+ }
+
+ private final Queue
+ No longer in use and has no effect.
+ No longer in use and has no effect.
+ No longer in use and has no effect.