openapi: 3.0.1 info: title: VMware Cloud Provider Lifecycle Manager API version: "1.3" servers: - url: http://localhost:9443 description: Generated server url tags: - name: task description: Task Controller - name: login description: Login Controller - name: datacenter description: Datacenter Controller - name: environment description: Lifecycle Management Environment Controller - name: product description: Lifecycle Management Product Controller - name: about description: About CP LCM paths: /api/v2/task/{taskId}: x-vmw-doc-domain: v2 x-vmw-doc-resource: task get: tags: - task summary: Get a specific task. operationId: getTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 responses: "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/Task' "200": description: Details of requested tasks. content: '*/*': schema: $ref: '#/components/schemas/Task' x-vmw-doc-operation: get-task put: tags: - task summary: Cancel a task. operationId: updateTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: action in: query required: true schema: pattern: (?i)^(cancel)$ type: string responses: "200": description: Task ID for the task to cancel. "404": description: Task doesn't exist "401": description: Unauthorized access x-vmw-doc-operation: update-task /api/v2/lcm/environment/{environmentId}/product/{productId}/upgrade: x-vmw-doc-domain: v2 x-vmw-doc-resource: product put: tags: - product summary: Upgrade a deployed product in an LCM environment. operationId: upgradeProduct parameters: - name: action in: query required: false schema: type: string default: VALIDATE enum: - UPGRADE - VALIDATE - name: ignoreValidation in: query required: false schema: type: boolean default: false - name: disableRollback in: query required: false schema: type: boolean default: false - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpgradeSpec' required: true responses: "200": description: Task ID for the task updating the product. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: upgrade-product /api/v2/lcm/environment/{environmentId}/product/{productId}/node/{nodeId}: x-vmw-doc-domain: v2 x-vmw-doc-resource: product get: tags: - product summary: Get a product node by node id. operationId: getProductNodeSpecById parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 responses: "200": description: One product node. content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpecV2' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpecV2' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpecV2' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpecV2' x-vmw-doc-operation: get-product-node put: tags: - product summary: Redeploy a product node by node id. operationId: redeployProductNode parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: force in: query required: false schema: type: boolean default: false responses: "405": description: "Product does not support redeployment of nodes. In order to\ \ redeploy, delete the product from the environment or the entire environment." content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that redeploys a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: redeploy-product-node delete: tags: - product summary: Delete a product node by node id. operationId: deleteProductNode parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: force in: query required: false schema: type: boolean default: false responses: "405": description: "Product does not support deletion of nodes. In order to delete\ \ the single node, delete the product or the entire environment" content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that deletes a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: delete-product-node patch: tags: - product summary: Update a product node by node id. operationId: updateProductNode parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: ignoreValidation in: query required: false schema: type: boolean default: false - name: force in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpdateNodeSpec' required: true responses: "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that updates a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: update-product-node /api/v2/lcm/environment/{environmentId}/product/{productId}/certificate: x-vmw-doc-domain: v2 x-vmw-doc-resource: product get: tags: - product summary: Get product certificate's details. operationId: getCertificate parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string responses: "200": description: Product certificate's details. content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' "401": description: Unauthorized access content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' x-vmw-doc-operation: get-product-certificate put: tags: - product summary: Update a product certificate. operationId: configureCertificate parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' required: true responses: "200": description: Task ID for the task updating a product certificate. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product certificate spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: update-product-certificate /api/v2/lcm/datacenter/{datacenterId}: x-vmw-doc-domain: v2 x-vmw-doc-resource: datacenter get: tags: - datacenter summary: Get a specific datacenter component. operationId: getDcComponent parameters: - name: datacenterId in: path required: true schema: type: string responses: "200": description: Details of datacenter component. content: '*/*': schema: $ref: '#/components/schemas/DatacenterComponentSpec' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/DatacenterComponentSpec' "404": description: Datacenter component not found. content: '*/*': schema: $ref: '#/components/schemas/DatacenterComponentSpec' x-vmw-doc-operation: get-datacenter-component put: tags: - datacenter summary: Update a datacenter component. operationId: updateDcComponent parameters: - name: datacenterId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DatacenterComponentSpec' required: true responses: "200": description: Confirmation for update. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid datacenter spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Datacenter component not found. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: update-datacenter-component delete: tags: - datacenter summary: Delete a datacenter component. operationId: deleteDcComponent parameters: - name: datacenterId in: path required: true schema: type: string - name: force in: query required: true schema: type: boolean responses: "200": description: Confirmation for deleting of the datacenter component. "401": description: Unauthorized access "404": description: Datacenter component not found. x-vmw-doc-operation: delete-datacenter-component /api/v1/task/{taskId}: x-vmw-doc-domain: v1 x-vmw-doc-resource: task get: tags: - task summary: Get a specific task. operationId: getTask_1 parameters: - name: taskId in: path required: true schema: type: integer format: int64 responses: "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/Task' "200": description: Details of requested tasks. content: '*/*': schema: $ref: '#/components/schemas/Task' x-vmw-doc-operation: get-task put: tags: - task summary: Cancel a task. operationId: updateTask_1 parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: action in: query required: true schema: pattern: (?i)^(cancel)$ type: string responses: "200": description: Task ID for the task to cancel. "404": description: Task doesn't exist "401": description: Unauthorized access x-vmw-doc-operation: update-task /api/v1/lcm/environment/{environmentId}/product/{productId}/upgrade: x-vmw-doc-domain: v1 x-vmw-doc-resource: product put: tags: - product summary: Upgrade a deployed product in an LCM environment. operationId: upgradeProduct_1 parameters: - name: action in: query required: false schema: type: string default: VALIDATE enum: - UPGRADE - VALIDATE - name: ignoreValidation in: query required: false schema: type: boolean default: false - name: disableRollback in: query required: false schema: type: boolean default: false - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpgradeSpec' required: true responses: "200": description: Task ID for the task updating the product. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: upgrade-product /api/v1/lcm/environment/{environmentId}/product/{productId}/node/{nodeId}: x-vmw-doc-domain: v1 x-vmw-doc-resource: product get: tags: - product summary: Get a product node by node id. operationId: getProductNodeSpecById_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 responses: "200": description: One product node. content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpec' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpec' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpec' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/ProductNodeSpec' x-vmw-doc-operation: get-product-node put: tags: - product summary: Redeploy a product node by node id. operationId: redeployProductNode_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: force in: query required: false schema: type: boolean default: false responses: "405": description: "Product does not support redeployment of nodes. In order to\ \ redeploy, delete the product from the environment or the entire environment." content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that redeploys a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: redeploy-product-node delete: tags: - product summary: Delete a product node by node id. operationId: deleteProductNode_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: force in: query required: false schema: type: boolean default: false responses: "405": description: "Product does not support deletion of nodes. In order to delete\ \ the single node, delete the product or the entire environment" content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that deletes a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: delete-product-node patch: tags: - product summary: Update a product node by node id. operationId: updateProductNode_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: nodeId in: path required: true schema: type: integer format: int32 - name: ignoreValidation in: query required: false schema: type: boolean default: false - name: force in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductUpdateNodeSpec' required: true responses: "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that updates a product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: update-product-node /api/v1/lcm/environment/{environmentId}/product/{productId}/certificate: x-vmw-doc-domain: v1 x-vmw-doc-resource: product get: tags: - product summary: Get product certificate's details. operationId: getCertificate_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string responses: "200": description: Product certificate's details. content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' "401": description: Unauthorized access content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' x-vmw-doc-operation: get-product-certificate put: tags: - product summary: Update a product certificate. operationId: configureCertificate_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string requestBody: content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' required: true responses: "200": description: Task ID for the task updating a product certificate. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product certificate spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: update-product-certificate /api/v2/session: x-vmw-doc-domain: v2 x-vmw-doc-resource: login post: tags: - login summary: Perform login with specified credentials and generate session token. operationId: getSession requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginCredentials' required: true responses: "200": description: Session ID for logged in user. content: '*/*': schema: $ref: '#/components/schemas/SessionResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/SessionResponse' x-vmw-doc-operation: get-session /api/v2/login: x-vmw-doc-domain: v2 x-vmw-doc-resource: login post: tags: - login summary: Perform login with specified credentials and generate JWT token. operationId: getJwtToken requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginCredentials' required: true responses: "200": description: JWT token for logged in user. content: '*/*': schema: $ref: '#/components/schemas/JwtResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/JwtResponse' x-vmw-doc-operation: get-jwt-token /api/v2/lcm/environment: x-vmw-doc-domain: v2 x-vmw-doc-resource: environment get: tags: - environment summary: Get all deployed LCM environments. operationId: getEnvironmentList parameters: - name: pageSize in: query required: false schema: type: integer format: int32 - name: page in: query required: false schema: type: integer format: int32 - name: asc in: query required: false schema: type: boolean responses: "200": description: List of LCM environments. content: '*/*': schema: type: array items: $ref: '#/components/schemas/EnvironmentSpecV2' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/EnvironmentSpecV2' x-vmw-doc-operation: get-environments post: tags: - environment summary: Create a new LCM environment by deploying the specified products. operationId: createEnvironment parameters: - name: action in: query required: false schema: type: string default: VALIDATE enum: - DEPLOY - IMPORT - VALIDATE - name: ignoreValidation in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/EnvironmentSpecV2' required: true responses: "400": description: Invalid environment spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task creating the environment. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: create-environment /api/v2/lcm/environment/{environmentId}/product/{productId}/node: x-vmw-doc-domain: v2 x-vmw-doc-resource: product get: tags: - product summary: Get all product nodes. operationId: getAllProductNodes parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string responses: "200": description: List of product nodes. content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpecV2' "404": description: Environment or product doesn't exist content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpecV2' "400": description: Invalid product node spec content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpecV2' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpecV2' x-vmw-doc-operation: get-product-nodes post: tags: - product summary: Create a new product node. operationId: addProductNode parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: disableRollback in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductNodeSpecV2' required: true responses: "405": description: The number of deployed nodes reached the allowed maximum content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that adds a new product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: add-product-node /api/v2/lcm/datacenter: x-vmw-doc-domain: v2 x-vmw-doc-resource: datacenter get: tags: - datacenter summary: Get all configured datacenter components. operationId: getDcComponentList parameters: - name: pageSize in: query required: false schema: type: integer format: int32 - name: page in: query required: false schema: type: integer format: int32 - name: asc in: query required: false schema: type: boolean responses: "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/DatacenterComponentSpecDcBaseObject' "200": description: List of datacenter components. content: '*/*': schema: type: array items: $ref: '#/components/schemas/DatacenterComponentSpecDcBaseObject' x-vmw-doc-operation: get-datacenter-components post: tags: - datacenter summary: Add a new datacenter component operationId: addDatacenterComponent parameters: - name: action in: query required: false schema: type: string default: VALIDATE enum: - REGISTER - VALIDATE - UPDATE requestBody: content: application/json: schema: $ref: '#/components/schemas/DatacenterComponentSpec' required: true responses: "400": description: Invalid datacenter spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Confirmation for adding datacenter component content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: add-datacenter-component /api/v1/session: x-vmw-doc-domain: v1 x-vmw-doc-resource: login post: tags: - login summary: Perform login with specified credentials and generate session token. operationId: getSession_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginCredentials' required: true responses: "200": description: Session ID for logged in user. content: '*/*': schema: $ref: '#/components/schemas/SessionResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/SessionResponse' x-vmw-doc-operation: get-session /api/v1/login: x-vmw-doc-domain: v1 x-vmw-doc-resource: login post: tags: - login summary: Perform login with specified credentials and generate JWT token. operationId: getJwtToken_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/LoginCredentials' required: true responses: "200": description: JWT token for logged in user. content: '*/*': schema: $ref: '#/components/schemas/JwtResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/JwtResponse' x-vmw-doc-operation: get-jwt-token /api/v1/lcm/environment: x-vmw-doc-domain: v1 x-vmw-doc-resource: environment get: tags: - environment summary: Get all deployed LCM environments. operationId: getEnvironmentList_1 responses: "200": description: List of LCM environments. content: '*/*': schema: type: array items: $ref: '#/components/schemas/EnvironmentSpec' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/EnvironmentSpec' x-vmw-doc-operation: get-environments post: tags: - environment summary: Create a new LCM environment by deploying the specified products. operationId: createEnvironment_1 parameters: - name: action in: query required: false schema: type: string default: VALIDATE enum: - DEPLOY - IMPORT - VALIDATE - name: ignoreValidation in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/EnvironmentSpec' required: true responses: "400": description: Invalid environment spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task creating the environment. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: create-environment /api/v1/lcm/environment/{environmentId}/product/{productId}/node: x-vmw-doc-domain: v1 x-vmw-doc-resource: product get: tags: - product summary: Get all product nodes. operationId: getAllProductNodes_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string responses: "200": description: List of product nodes. content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpec' "404": description: Environment or product doesn't exist content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpec' "400": description: Invalid product node spec content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpec' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/ProductNodeSpec' x-vmw-doc-operation: get-product-nodes post: tags: - product summary: Create a new product node. operationId: addProductNode_1 parameters: - name: environmentId in: path required: true schema: type: string - name: productId in: path required: true schema: type: string - name: disableRollback in: query required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductNodeSpec' required: true responses: "405": description: The number of deployed nodes reached the allowed maximum content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "404": description: Environment or product doesn't exist content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "200": description: Task ID for the task that adds a new product node. content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "400": description: Invalid product node spec content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/TaskResponse' x-vmw-doc-operation: add-product-node /api/v2/task: x-vmw-doc-domain: v2 x-vmw-doc-resource: task get: tags: - task summary: Get all task for CP LCM requests. operationId: getTasks parameters: - name: pageSize in: query required: false schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 - name: filterKey in: query required: false schema: type: array items: type: string - name: filterValue in: query required: false schema: type: array items: type: array items: type: string - name: sortKey in: query required: false schema: type: string - name: asc in: query required: false schema: type: boolean responses: "200": description: List of tasks. content: '*/*': schema: type: array items: $ref: '#/components/schemas/Task' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/Task' x-vmw-doc-operation: get-tasks /api/v2/lcm/environment/{environmentId}: x-vmw-doc-domain: v2 x-vmw-doc-resource: environment get: tags: - environment summary: Get a deployed LCM environment by ID. operationId: getEnvironment parameters: - name: environmentId in: path required: true schema: type: string responses: "404": description: Requested environment not found content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpecV2' "200": description: Details of LCM environment. content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpecV2' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpecV2' x-vmw-doc-operation: get-environment delete: tags: - environment summary: Delete an environment with all its products. operationId: deleteEnvironment parameters: - name: environmentId in: path required: true schema: type: string responses: "200": description: Confirmation for deleting of the environment. "401": description: Unauthorized access x-vmw-doc-operation: delete-environment /api/v1/task: x-vmw-doc-domain: v1 x-vmw-doc-resource: task get: tags: - task summary: Get all task for CP LCM requests. operationId: getTasks_1 parameters: - name: pageSize in: query required: false schema: type: integer format: int64 - name: page in: query required: false schema: type: integer format: int64 - name: filterKey in: query required: false schema: type: array items: type: string - name: filterValue in: query required: false schema: type: array items: type: array items: type: string - name: sortKey in: query required: false schema: type: string - name: asc in: query required: false schema: type: boolean responses: "200": description: List of tasks. content: '*/*': schema: type: array items: $ref: '#/components/schemas/Task' "401": description: Unauthorized access content: '*/*': schema: type: array items: $ref: '#/components/schemas/Task' x-vmw-doc-operation: get-tasks /api/v1/lcm/environment/{environmentId}: x-vmw-doc-domain: v1 x-vmw-doc-resource: environment get: tags: - environment summary: Get a deployed LCM environment by ID. operationId: getEnvironment_1 parameters: - name: environmentId in: path required: true schema: type: string responses: "404": description: Requested environment not found content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpec' "200": description: Details of LCM environment. content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpec' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/EnvironmentSpec' x-vmw-doc-operation: get-environment /api/about: x-vmw-doc-domain: info x-vmw-doc-resource: about get: tags: - about summary: Show version information for CP LCM. operationId: getAbout responses: "200": description: Version information for CP LCM content: '*/*': schema: $ref: '#/components/schemas/About' "401": description: Unauthorized access content: '*/*': schema: $ref: '#/components/schemas/About' x-vmw-doc-operation: get-about components: schemas: ProductUpgradeSpec: required: - upgradeDetails type: object properties: upgradeDetails: $ref: '#/components/schemas/UpgradeDetailsSpec' UpgradeDetailsSpec: required: - targetVersion type: object properties: targetVersion: type: string additionalProperties: type: object additionalProperties: type: object TaskResponse: required: - taskId type: object properties: taskId: type: string precedingTasks: type: array items: type: integer format: int64 CertificateSpec: required: - certificate type: object properties: certificate: pattern: "^(-----BEGIN CERTIFICATE-----\\n[A-Za-z0-9+/\r\n]+={0,2}\\n-----END\ \ CERTIFICATE-----(\\n?))+$" type: string description: Certificate (single or chain) in PEM format. privateKey: pattern: "(^-----BEGIN( RSA| ENCRYPTED)? PRIVATE KEY-----\n[A-Za-z0-9+/\r\ \n]+={0,2}\n-----END( RSA| ENCRYPTED)? PRIVATE KEY-----(\n?)$)|(^ref:private_key:[a-zA-Z0-9]{20}$)" type: string description: Private key in PEM format. keyPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: The password for the private key validFrom: type: string validTo: type: string thumbprint: type: string DCNsxtSpec: type: object properties: certificate: $ref: '#/components/schemas/DataCenterCertificateSpec' transportZones: type: array items: $ref: '#/components/schemas/DcNsxtTransportZonesSpec' t0Gateways: type: array items: $ref: '#/components/schemas/DcNsxtT0GatewaysSpec' DCVRopsSpec: type: object properties: certificate: $ref: '#/components/schemas/DataCenterCertificateSpec' DataCenterCertificateSpec: type: object properties: cert: type: object properties: type: type: string subjectX500Principal: type: object properties: name: type: string encoded: type: array items: type: string format: byte issuerX500Principal: type: object properties: name: type: string encoded: type: array items: type: string format: byte signature: type: array items: type: string format: byte basicConstraints: type: integer format: int32 serialNumber: type: integer notBefore: type: string format: date-time notAfter: type: string format: date-time tbscertificate: type: array items: type: string format: byte sigAlgName: type: string sigAlgOID: type: string sigAlgParams: type: array items: type: string format: byte issuerUniqueID: type: array items: type: boolean subjectUniqueID: type: array items: type: boolean keyUsage: type: array items: type: boolean extendedKeyUsage: type: array items: type: string subjectAlternativeNames: type: array items: type: array items: type: object issuerAlternativeNames: type: array items: type: array items: type: object issuerDN: type: object properties: name: type: string subjectDN: type: object properties: name: type: string version: type: integer format: int32 criticalExtensionOIDs: uniqueItems: true type: array items: type: string nonCriticalExtensionOIDs: uniqueItems: true type: array items: type: string encoded: type: array items: type: string format: byte publicKey: type: object properties: encoded: type: array items: type: string format: byte algorithm: type: string format: type: string validFrom: type: string validTo: type: string thumbprint: type: string DatacenterComponentSpec: required: - fqdn - password - username type: object properties: properties: type: object additionalProperties: type: object componentName: type: string version: type: string datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI fqdn: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string username: type: string password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string content: $ref: '#/components/schemas/DcBase' purpose: type: string enum: - ANY - MANAGEMENT - RESOURCE DcBase: type: object properties: certificate: $ref: '#/components/schemas/DataCenterCertificateSpec' oneOf: - $ref: '#/components/schemas/DCNsxtSpec' - $ref: '#/components/schemas/DCVRopsSpec' - $ref: '#/components/schemas/DcVcenterSpec' DcNsxtT0GatewaysSpec: type: object properties: id: type: string description: NSX-T t0 gateway id. display_name: pattern: "^[a-zA-Z_\\-\\s0-9]{1,35}$" type: string description: NSX-T t0 gateway name. DcNsxtTransportZonesSpec: type: object properties: id: type: string description: NSX-T transport zone id. display_name: pattern: "^[a-zA-Z_\\-\\s0-9]{1,35}$" type: string description: NSX-T transport zone display name. DcVcenterNetworksSpec: type: object properties: portGroupName: type: string description: vCenter port group name. gateway: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: Gateway to be used for network's subnet. subnetMask: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: Subnet mask to be used for network's subnet. domainName: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Domain name to be used for network's subnet. searchPath: type: array description: Domain search path to be used for network's subnet. items: type: string description: Domain search path to be used for network's subnet. useDhcp: type: boolean description: Flag indicating whether to use DHCP in the subnet. dns: type: array description: List of DNS servers for network's subnet. items: type: string description: List of DNS servers for network's subnet. ntp: type: array description: List of NTP servers for network's subnet. items: type: string description: List of NTP servers for network's subnet. DcVcenterSpec: type: object properties: certificate: $ref: '#/components/schemas/DataCenterCertificateSpec' networks: type: array items: $ref: '#/components/schemas/DcVcenterNetworksSpec' clusters: type: array items: type: string resourcePools: type: array items: type: string datastores: type: array items: type: string datacenters: type: array items: type: string LoginCredentials: required: - password - username type: object properties: username: type: string password: type: string SessionResponse: type: object properties: JSESSIONID: type: string JwtResponse: type: object properties: token: type: string VcdIntegrationSpec: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. anyOf: - $ref: '#/components/schemas/VcdVcenterIntegration' - $ref: '#/components/schemas/VcdNsxtIntegration' - $ref: '#/components/schemas/VcdRmqIntegration' VropstaIntegrationSpec: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. anyOf: - $ref: '#/components/schemas/VropstaVcdIntegration' - $ref: '#/components/schemas/VropstaVropsIntegration' UsageIntegrationSpec: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. anyOf: - $ref: '#/components/schemas/UsageVcenterIntegration' - $ref: '#/components/schemas/UsageNsxtIntegration' - $ref: '#/components/schemas/UsageVropsIntegration' - $ref: '#/components/schemas/UsageVcdIntegration' BaseIntegrationSpec: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. anyOf: - $ref: '#/components/schemas/VropstaVcdIntegration' - $ref: '#/components/schemas/VropstaVropsIntegration' - $ref: '#/components/schemas/UsageVcenterIntegration' - $ref: '#/components/schemas/UsageNsxtIntegration' - $ref: '#/components/schemas/UsageVropsIntegration' - $ref: '#/components/schemas/UsageVcdIntegration' - $ref: '#/components/schemas/VcdVcenterIntegration' - $ref: '#/components/schemas/VcdNsxtIntegration' - $ref: '#/components/schemas/VcdRmqIntegration' DeploymentDetails: required: - clusterName - datacenterName - vcenterName type: object properties: vcenterName: type: string description: A name to identify the vCenter instance. datacenterName: type: string description: Datacenter to deploy in. clusterName: type: string description: Cluster to deploy in. resourcePool: type: string description: Resource pool to deploy in. vmFolder: type: string description: vmFolder to deploy in. datastoreNames: uniqueItems: true type: array description: Datastore to deploy in. items: type: string description: Datastore to deploy in. EnvironmentSpecV2: required: - environmentName - products type: object properties: properties: type: object additionalProperties: type: object environmentName: type: string description: "Name of an environment. If no ID is specified, this name will\ \ be normalized and used as ID." environmentId: type: string description: ID of an environment. environmentState: type: string products: type: array items: $ref: '#/components/schemas/ProductSpecV2' NicSpecV2: required: - ipAddress - networkName type: object properties: ipAddress: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: IP address to set for the NIC. networkName: type: string description: "Name of the network defined in the deployment infrastructure's\ \ vCenter networks. Note: This is not a VC port group but refers to the\ \ definition of the network that specifies the port group." staticRoutes: type: array description: List of static routes to configure for the NIC. items: type: string description: List of static routes to configure for the NIC. dcVcenterNetworksSpec: $ref: '#/components/schemas/DcVcenterNetworksSpec' description: List of NICs to configure for the VM. ProductNodeSpecV2: required: - hostName - rootPassword - vmName type: object properties: properties: type: object additionalProperties: type: object nodeId: type: integer format: int32 cpuNum: minimum: 1 type: integer description: Number of CPUs to configure the VM with. format: int32 ramMemory: minimum: 1024 type: integer description: Memory size (in MB) to configure the VM with. format: int32 hostName: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname of the node. vmName: pattern: "^[a-zA-Z0-9][a-zA-Z0-9\\-_.()\\[\\]{}]{0,79}$" type: string description: VM name of the node. deploymentOption: type: string description: Deployment option of the VM (values depend on the product's OVF properties). datastoreName: type: string description: "Datastore to use for the VM. If not defined, the first datastore\ \ of specified deployment infrastructure vCenter will be used." clusterName: type: string description: "vCenter cluster name to use for the VM. If not defined, the\ \ cluster defined for specified deployment infrastructure vCenter will\ \ be used." resourcePool: type: string description: "vCenter resource pool name to use for the VM. If not defined,\ \ the resource pool defined for specified deployment infrastructure vCenter\ \ will be used." datacenterName: type: string description: "Datacenter name to use for the VM. If not defined, the datacenter\ \ defined for specified deployment infrastructure vCenter will be used." rootPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: The password for root user (or similar admin user depending on OS). gateway: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: "The gateway to configure for the VM. If not set, the value\ \ of the first NIC's network will be used." deployment: $ref: '#/components/schemas/DeploymentDetails' nics: type: array description: List of NICs to configure for the VM. items: $ref: '#/components/schemas/NicSpecV2' description: List of nodes for the product ProductSpecV2: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object additionalProperties: type: object productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array description: List of integrations to configure for the product items: $ref: '#/components/schemas/BaseIntegrationSpec' certificate: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' description: Certificates for the product deployment: $ref: '#/components/schemas/DeploymentDetails' nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpecV2' anyOf: - $ref: '#/components/schemas/VcdProductSpecV2' - $ref: '#/components/schemas/UsageProductSpecV2' - $ref: '#/components/schemas/VropstaProductSpecV2' - $ref: '#/components/schemas/RmqProductSpecV2' RmqProductSpecV2: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" lbName: pattern: "^[^;'\"]{1,80}$" type: string description: The name of the load balancer for RabbitMQ. lbFqdn: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: The FQDN of the load balancer for RabbitMQ. lbIp: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: The IP address of the load balancer for RabbitMQ. portAmqpSsl: pattern: "^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([1-9][0-9]{0,3}))$" type: string description: "Port to be configured for AMQP ssl service. Default: 5671" portRmqMgmt: pattern: "^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([1-9][0-9]{0,3}))$" type: string description: "Port to be configured for RabbitMQ management service.\ \ Default: 15671" users: type: array description: List of user accounts to be created in RabbitMQ items: $ref: '#/components/schemas/VcplcmRmqUserProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array description: List of integrations to configure for the product items: $ref: '#/components/schemas/BaseIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' deployment: $ref: '#/components/schemas/DeploymentDetails' nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpecV2' UsageNsxtIntegration: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI UsageProductSpecV2: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" auditorPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: "The password to be used for auditor password. If not defined,\ \ the admin password will be used." proxy: $ref: '#/components/schemas/VcplcmUmProxyProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/UsageIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' deployment: $ref: '#/components/schemas/DeploymentDetails' nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpecV2' UsageVcdIntegration: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 productId: type: string description: ID of the integration. productType: type: string enum: - VCD - USAGE - VROPSTA - RMQ UsageVcenterIntegration: type: object properties: properties: type: object properties: externalSSO: type: boolean description: "Use an external Platform Service Controller (PSC) for\ \ authentication. Note: External PSC is currently not supported in\ \ VCP LCM, so default value is: false" vcfEdition: pattern: ^None|Basic|Standard|Enterprise$ type: string description: "The VCF edition to configure for vCenter collector (possible\ \ values: None, Basic, Standard, Enterprise). Default: None" integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI UsageVropsIntegration: type: object properties: properties: type: object properties: vcReferences: type: array description: A list of vCenter integration IDs (refering to a vCenter integration configured as VC collector in UM). This will be used to identify the auto discovered vROPS collector in UM. items: type: string description: A list of vCenter integration IDs (refering to a vCenter integration configured as VC collector in UM). This will be used to identify the auto discovered vROPS collector in UM. integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI VcdNsxtIntegration: type: object properties: properties: type: object properties: networkPools: type: object additionalProperties: type: string description: "Network pools, mapping VCD network pool name to NSXT\ \ transport zone." description: "Network pools, mapping VCD network pool name to NSXT transport\ \ zone." vcdExternalNetworks: type: object additionalProperties: $ref: '#/components/schemas/VcdNsxtIntegrationPropertiesExtNw' description: External networks nsxt_id: pattern: "^urn:vcloud:[0-9a-z]+:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" type: string description: VCD URN identifying the NSXT instance. integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI VcdNsxtIntegrationPropertiesExtNw: type: object properties: subnets: type: array description: List of subnets for external network. items: $ref: '#/components/schemas/VcdNsxtIntegrationPropertiesExtNwSubnet' description: pattern: "^[^;'\"]{1,80}$" type: string description: External network description. tier0Name: pattern: "^[^;'\"]{1,80}$" type: string description: Name of Tier 0 gateway this external network is backed by. tier0backingId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of Tier 0 gateway this external network is backed by. backingName: pattern: "^[^;'\"]{1,80}$" type: string description: Name of tier-0 router or logical switch this external network is backed by. backingId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of tier-0 router or logical switch this external network is backed by. backingType: pattern: ^NSXT_TIER0|NSXT_VRF_TIER0|IMPORTED_T_LOGICAL_SWITCH$ type: string description: The backing type of this external network. description: External networks VcdNsxtIntegrationPropertiesExtNwSubnet: type: object properties: gateway: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: The gateway defined for the external network. prefixLength: maximum: 31 minimum: 1 type: integer description: The subnet prefix for the external network format: int32 dnsSuffix: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: The DNS suffix for the external network. dnsServer1: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: The first DNS server for the external network. dnsServer2: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: The second DNS server for the external network. ipRanges: type: array description: List of IP ranges for the external network. items: $ref: '#/components/schemas/VcdNsxtIntegrationPropertiesExtNwSubnetIpRange' description: List of subnets for external network. VcdNsxtIntegrationPropertiesExtNwSubnetIpRange: type: object properties: startAddress: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: Start address (IP v4) of IP range. endAddress: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: End address (IP v4) of IP range. description: List of IP ranges for the external network. VcdProductPublicAddressProperties: type: object properties: restApiBaseUri: pattern: |- ^(?:(http|https)://)?([a-zA-Z0-9-._]+)(?::([0-9]+))?(/[a-zA-Z0-9-._/]+)*(\?([^=& ]+=[^=& ]+)(?:&(?:amp;)?([^=& ]+=[^=& ]+))*)?$ type: string description: The URL to be used for public access to VCD REST API (https) restApiBaseHttpUri: pattern: |- ^(?:(http|https)://)?([a-zA-Z0-9-._]+)(?::([0-9]+))?(/[a-zA-Z0-9-._/]+)*(\?([^=& ]+=[^=& ]+)(?:&(?:amp;)?([^=& ]+=[^=& ]+))*)?$ type: string description: The URL to be used for public access to VCD REST API (http) tenantPortalExternalAddress: pattern: |- ^(?:(http|https)://)?([a-zA-Z0-9-._]+)(?::([0-9]+))?(/[a-zA-Z0-9-._/]+)*(\?([^=& ]+=[^=& ]+)(?:&(?:amp;)?([^=& ]+=[^=& ]+))*)?$ type: string description: The URL to be used for public access to tenant portal (https) tenantPortalExternalHttpAddress: pattern: |- ^(?:(http|https)://)?([a-zA-Z0-9-._]+)(?::([0-9]+))?(/[a-zA-Z0-9-._/]+)*(\?([^=& ]+=[^=& ]+)(?:&(?:amp;)?([^=& ]+=[^=& ]+))*)?$ type: string description: The URL to be used for public access to tenant portal (http) consoleProxyExternalAddress: pattern: |- ^(?:(http|https)://)?([a-zA-Z0-9-._]+)(?::([0-9]+))?(/[a-zA-Z0-9-._/]+)*(\?([^=& ]+=[^=& ]+)(?:&(?:amp;)?([^=& ]+=[^=& ]+))*)?$ type: string description: The address to be configured for public access to VCD console proxy. VcdProductSpecV2: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: required: - dbPassword - nfsMount type: object properties: installationId: maximum: 63 minimum: 1 type: integer description: "The installation ID is used to generate unique MAC addresses\ \ for VMs running in the VCD instance. Default: 1" format: int32 systemName: pattern: "^[^;'\"]{1,80}$" type: string description: "The system name is used for the vCenter Server folder\ \ to create for this vCloud Director installation. Default: vcd1" dbPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: The password to use for the integrated VCD Postgres database. adminEmail: pattern: "^[a-zA-Z0-9\\._\\-]+@[a-zA-Z0-9\\._\\-]+\\.[a-zA-Z0-9]{2,}$" type: string description: The email address of the system administrator. adminFullName: pattern: "^[^;'\"]{1,80}$" type: string description: "The full name of the system administrator. Default: vCD\ \ Admin" adminUsername: pattern: "^[^;'\"]{1,80}$" type: string description: "The username to use for the system administrator. Default:\ \ administrator" nfsMount: pattern: "^[^;'\":]+:(\\/[^;'\":]*)+$" type: string description: "The NFS share to be used for VCD cells transfer storage.\ \ Format: nfs_ip_address:nfs_mount_path" deploymentOption: pattern: "^[^;'\"]{1,80}$" type: string description: "The deployment option to use for the VCD cell ('primary-large',\ \ 'primary-extralarge', 'primary-medium', 'standby-large', 'standby-extralarge',\ \ 'standby-medium', 'primary-small', 'standby-small', 'cell', 'large',\ \ 'small', 'medium', 'extralarge'. Default: primary-large" diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" enableSsh: type: boolean description: "Option to activate or deactivate SSH for VCD cells. Default:\ \ true" expireRootPassword: type: boolean description: "Option to enable prompt for a new root password after\ \ deployment. Default: false" clusterFailoverMode: pattern: AUTOMATIC|MANUAL type: string description: "The VCD database cluster failover mode. Note: This cannot\ \ be configured by VCP LCM in version 1.1.0. Instead, it is discovered\ \ only from the environment." keystorePassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: "The store password used for creating certificate keystore.\ \ Note: only valid for VCD 10.1.x - 10.2.x" publicAddress: $ref: '#/components/schemas/VcdProductPublicAddressProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/VcdIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' http: $ref: '#/components/schemas/CertificateSpec' consoleproxy: $ref: '#/components/schemas/CertificateSpec' management: $ref: '#/components/schemas/CertificateSpec' restApi: $ref: '#/components/schemas/CertificateSpec' tenantPortal: $ref: '#/components/schemas/CertificateSpec' deployment: $ref: '#/components/schemas/DeploymentDetails' nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpecV2' VcdRmqIntegration: type: object properties: properties: type: object properties: amqpExchange: pattern: "^[^;'\"]{1,80}$" type: string description: AMQP exchange name. amqpVHost: pattern: "^[^;'\"]{1,80}$" type: string description: AMQP virtual host. amqpUseSSL: type: boolean description: Use SSL for AMQP connection. amqpSslAcceptAll: type: boolean description: Auto accept AMQP servers ssl certificate. amqpPrefix: pattern: "^[^;'\"]{1,80}$" type: string description: AMQP prefix. integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 productId: type: string description: ID of the integration. productType: type: string enum: - VCD - USAGE - VROPSTA - RMQ VcdVcenterIntegration: type: object properties: properties: type: object properties: providerVdcs: type: object additionalProperties: $ref: '#/components/schemas/VcdVcenterIntegrationPropertiesPvdc' description: "Provider VDCs to create - key: PVDC name, value: definition\ \ of PVDC." vc_id: pattern: "^urn:vcloud:[0-9a-z]+:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" type: string description: VCD URN identifying the vCenter instance. integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI VcdVcenterIntegrationPropertiesPvdc: required: - storageProfile type: object properties: description: pattern: "^[^;'\"]{1,80}$" type: string description: Description of the PVDC. highestSupportedHardwareVersion: pattern: "^vmx-[1-9][0-9]*$" type: string description: "The hardware version to set for the PVDC. Default: vmx-14" clusterName: pattern: "^[^;'\"]{1,80}$" type: string description: The name of the vCenter cluster to use for PVDC creation. If not specified the resource pool will be searched in all available clusters. resourcePoolname: pattern: "^[^;'\"]{1,80}$" type: string description: "The name of the vCenter resource pool to use for PVDC creation.\ \ If no cluster is specified the resource pool will be searched in all\ \ available clusters. If no resource pool is specified, the root resource\ \ pool of the cluster will be used." nsxIntegration: pattern: "^[^;'\"]{1,80}$" type: string description: "The name of the NSX integration to that specifies details\ \ for network pool name. If no NSX integration is defined, PVDC will not\ \ be configured." storageProfile: type: array description: The list of storage profiles to be used for PVDC. items: type: string description: The list of storage profiles to be used for PVDC. networkPoolname: pattern: "^[^;'\"]{1,80}$" type: string description: The name of the network pool to be used for PVDC. The network pool is defined in the referenced NSX integration. isEnabled: type: boolean description: "Defines whether the PVDC to be created should be enabled or\ \ not. Default: true" description: "Provider VDCs to create - key: PVDC name, value: definition of\ \ PVDC." VcplcmRmqUserProperties: required: - password - username type: object properties: username: pattern: "^[^;'\"]{1,80}$" type: string description: Username of the user to create password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for the user to create description: List of user accounts to be created in RabbitMQ VcplcmUmProxyProperties: required: - host - port - type type: object properties: type: pattern: ^none|http|https$ type: string description: "Proxy protocol type: none, http and https" host: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Proxy hostname or IP address port: maximum: 65535 minimum: 1 type: integer description: Proxy listening port format: int32 user: type: string description: Proxy user password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: User's password description: Properties needed to configure a Proxy server. VropstaProductSpecV2: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/VropstaIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' deployment: $ref: '#/components/schemas/DeploymentDetails' nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpecV2' VropstaVcdIntegration: type: object properties: properties: type: object properties: tenantAppProxy: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: The URL to use for public access to vROPS Tenant App. amqp: $ref: '#/components/schemas/VropstaVcdIntegrationPropertiesAmqp' credentials: $ref: '#/components/schemas/VropstaVcdIntegrationPropertiesCredentials' integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 productId: type: string description: ID of the integration. productType: type: string enum: - VCD - USAGE - VROPSTA - RMQ VropstaVcdIntegrationPropertiesAmqp: required: - amqpHost type: object properties: amqpHost: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: The hostname or IP address of the AMQP host. amqpPort: pattern: "^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([1-9][0-9]{0,3}))$" type: string description: "Port of the AMQP service to configure in vROPS Tenant App.\ \ Default: 5672" amqpVHost: pattern: "^[^;'\"]{1,80}$" type: string description: "The AMQP virtual host path to use for AMQP service. Default:\ \ /" amqpUseSSL: pattern: ^true|false$ type: string description: "Definition whether to use SSL for AMQP service or plain-text.\ \ Default: false (plain-text)" description: The AMQP settings for vROPS Tenant App. VropstaVcdIntegrationPropertiesCredentials: type: object properties: vcdAmqp: $ref: '#/components/schemas/VropstaVcdIntegrationPropertiesCredentialsVcdAmqp' tenantAppAmqp: $ref: '#/components/schemas/VropstaVcdIntegrationPropertiesCredentialsTenantAppAmqp' description: Credentials to use for the VCD integration (for configuring AMQP access). VropstaVcdIntegrationPropertiesCredentialsTenantAppAmqp: type: object properties: username: pattern: "^[^;'\"]{1,80}$" type: string description: Username to use for vROPS Tenant App AMQP password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for AMQP user to use vROPS Tenant App AMQP description: Credentials for vROPS Tenant App AMQP VropstaVcdIntegrationPropertiesCredentialsVcdAmqp: type: object properties: password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for the user used for VCD AMQP integration description: Credentials for VCD AMQP (should match the AMQP service configured in VCD). VropstaVropsIntegration: type: object properties: properties: type: object additionalProperties: type: object integrationId: pattern: "^[^;'\"]{1,80}$" type: string description: ID of an integration. integrationUsername: pattern: "^[^;'\"]{1,80}$" type: string description: Username for an integration. integrationPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password for an integration. ref: pattern: "([A-Za-z0-9\\-\\_\\.\\:\\@]+)" type: string description: Reference to the registered entity. hostname: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the integration port: maximum: 65535 minimum: 1 type: integer description: Port to connect to the integration's endpoint. format: int32 datacenterComponentId: type: string description: ID of the integration. datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI DeploymentInfrastructure: required: - vcenter type: object properties: vcenter: $ref: '#/components/schemas/VcenterSpec' nsxt: $ref: '#/components/schemas/NsxtSpec' EnvironmentSpec: required: - deploymentInfrastructures - environmentName - products type: object properties: properties: type: object additionalProperties: type: object environmentName: type: string description: "Name of an environment. If no ID is specified, this name will\ \ be normalized and used as ID." environmentId: type: string description: ID of an environment. environmentState: type: string deploymentInfrastructures: type: object additionalProperties: $ref: '#/components/schemas/DeploymentInfrastructure' products: type: array items: $ref: '#/components/schemas/ProductSpec' NetworkSpec: required: - gateway - portGroupName - subnetMask type: object properties: portGroupName: type: string description: vCenter port group name. gateway: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: Gateway to be used for network's subnet. subnetMask: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: Subnet mask to be used for network's subnet. domainName: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Domain name to be used for network's subnet. searchPath: type: array description: Domain search path to be used for network's subnet. items: type: string description: Domain search path to be used for network's subnet. useDhcp: type: boolean description: Flag indicating whether to use DHCP in the subnet. dns: type: array description: List of DNS servers for network's subnet. items: type: string description: List of DNS servers for network's subnet. ntp: type: array description: List of NTP servers for network's subnet. items: type: string description: List of NTP servers for network's subnet. description: List of networks (defining port groups and related subnets) used for deployments. NicSpec: required: - ipAddress - networkName type: object properties: ipAddress: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: IP address to set for the NIC. networkName: type: string description: "Name of the network defined in the deployment infrastructure's\ \ vCenter networks. Note: This is not a VC port group but refers to the\ \ definition of the network that specifies the port group." staticRoutes: type: array description: List of static routes to configure for the NIC. items: type: string description: List of static routes to configure for the NIC. description: List of NICs to configure for the VM. NsxtSpec: required: - nsxCliPassword - nsxManagerIp - nsxRootPassword - nsxVip type: object properties: nsxVip: type: string nsxManagerIp: type: string nsxRootPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string nsxCliPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string ProductNodeSpec: required: - hostName - nics - rootPassword - vmName type: object properties: properties: type: object additionalProperties: type: object nodeId: type: integer format: int32 cpuNum: minimum: 1 type: integer description: Number of CPUs to configure the VM with. format: int32 ramMemory: minimum: 1024 type: integer description: Memory size (in MB) to configure the VM with. format: int32 hostName: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname of the node. vmName: pattern: "^[a-zA-Z0-9][a-zA-Z0-9\\-_.()\\[\\]{}]{0,79}$" type: string description: VM name of the node. deploymentOption: type: string description: Deployment option of the VM (values depend on the product's OVF properties). datastoreName: type: string description: "Datastore to use for the VM. If not defined, the first datastore\ \ of specified deployment infrastructure vCenter will be used." clusterName: type: string description: "vCenter cluster name to use for the VM. If not defined, the\ \ cluster defined for specified deployment infrastructure vCenter will\ \ be used." resourcePool: type: string description: "vCenter resource pool name to use for the VM. If not defined,\ \ the resource pool defined for specified deployment infrastructure vCenter\ \ will be used." datacenterName: type: string description: "Datacenter name to use for the VM. If not defined, the datacenter\ \ defined for specified deployment infrastructure vCenter will be used." rootPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: The password for root user (or similar admin user depending on OS). gateway: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: "The gateway to configure for the VM. If not set, the value\ \ of the first NIC's network will be used." nics: type: array description: List of NICs to configure for the VM. items: $ref: '#/components/schemas/NicSpec' description: List of nodes for the product ProductSpec: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object additionalProperties: type: object productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array description: List of integrations to configure for the product items: $ref: '#/components/schemas/BaseIntegrationSpec' certificate: type: object additionalProperties: $ref: '#/components/schemas/CertificateSpec' description: Certificates for the product infraReference: type: string nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpec' anyOf: - $ref: '#/components/schemas/VcdProductSpec' - $ref: '#/components/schemas/UsageProductSpec' - $ref: '#/components/schemas/VropstaProductSpec' - $ref: '#/components/schemas/RmqProductSpec' RmqProductSpec: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" lbName: pattern: "^[^;'\"]{1,80}$" type: string description: The name of the load balancer for RabbitMQ. lbFqdn: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: The FQDN of the load balancer for RabbitMQ. lbIp: pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" type: string description: The IP address of the load balancer for RabbitMQ. portAmqpSsl: pattern: "^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([1-9][0-9]{0,3}))$" type: string description: "Port to be configured for AMQP ssl service. Default: 5671" portRmqMgmt: pattern: "^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([1-9][0-9]{0,3}))$" type: string description: "Port to be configured for RabbitMQ management service.\ \ Default: 15671" users: type: array description: List of user accounts to be created in RabbitMQ items: $ref: '#/components/schemas/VcplcmRmqUserProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array description: List of integrations to configure for the product items: $ref: '#/components/schemas/BaseIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' infraReference: type: string nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpec' UsageProductSpec: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" auditorPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: "The password to be used for auditor password. If not defined,\ \ the admin password will be used." proxy: $ref: '#/components/schemas/VcplcmUmProxyProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/UsageIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' infraReference: type: string nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpec' VcdProductSpec: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: required: - dbPassword - nfsMount type: object properties: installationId: maximum: 63 minimum: 1 type: integer description: "The installation ID is used to generate unique MAC addresses\ \ for VMs running in the VCD instance. Default: 1" format: int32 systemName: pattern: "^[^;'\"]{1,80}$" type: string description: "The system name is used for the vCenter Server folder\ \ to create for this vCloud Director installation. Default: vcd1" dbPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: The password to use for the integrated VCD Postgres database. adminEmail: pattern: "^[a-zA-Z0-9\\._\\-]+@[a-zA-Z0-9\\._\\-]+\\.[a-zA-Z0-9]{2,}$" type: string description: The email address of the system administrator. adminFullName: pattern: "^[^;'\"]{1,80}$" type: string description: "The full name of the system administrator. Default: vCD\ \ Admin" adminUsername: pattern: "^[^;'\"]{1,80}$" type: string description: "The username to use for the system administrator. Default:\ \ administrator" nfsMount: pattern: "^[^;'\":]+:(\\/[^;'\":]*)+$" type: string description: "The NFS share to be used for VCD cells transfer storage.\ \ Format: nfs_ip_address:nfs_mount_path" deploymentOption: pattern: "^[^;'\"]{1,80}$" type: string description: "The deployment option to use for the VCD cell ('primary-large',\ \ 'primary-extralarge', 'primary-medium', 'standby-large', 'standby-extralarge',\ \ 'standby-medium', 'primary-small', 'standby-small', 'cell', 'large',\ \ 'small', 'medium', 'extralarge'. Default: primary-large" diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" enableSsh: type: boolean description: "Option to activate or deactivate SSH for VCD cells. Default:\ \ true" expireRootPassword: type: boolean description: "Option to enable prompt for a new root password after\ \ deployment. Default: false" clusterFailoverMode: pattern: AUTOMATIC|MANUAL type: string description: "The VCD database cluster failover mode. Note: This cannot\ \ be configured by VCP LCM in version 1.1.0. Instead, it is discovered\ \ only from the environment." keystorePassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: "The store password used for creating certificate keystore.\ \ Note: only valid for VCD 10.1.x - 10.2.x" publicAddress: $ref: '#/components/schemas/VcdProductPublicAddressProperties' productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/VcdIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' http: $ref: '#/components/schemas/CertificateSpec' consoleproxy: $ref: '#/components/schemas/CertificateSpec' management: $ref: '#/components/schemas/CertificateSpec' restApi: $ref: '#/components/schemas/CertificateSpec' tenantPortal: $ref: '#/components/schemas/CertificateSpec' infraReference: type: string nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpec' VcenterSpec: required: - clusterName - datacenterName - datastores - networks - vcenterHost - vcenterName - vcenterPassword - vcenterUsername type: object properties: vcenterName: type: string description: A name to identify the vCenter instance. vcenterHost: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string description: Hostname or IP address of the vCenter instance. vcenterUsername: type: string description: Username to connect to the vCenter instance. vcenterPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Password to connect to the vCenter instance. datacenterName: type: string description: Datacenter to deploy in. clusterName: type: string description: Cluster to deploy in. datastores: uniqueItems: true type: array description: List of datastores to use for deployments. items: type: string description: List of datastores to use for deployments. networks: type: object additionalProperties: $ref: '#/components/schemas/NetworkSpec' description: List of networks (defining port groups and related subnets) used for deployments. folderName: type: string description: vCenter folder to deploy in. resourcePool: type: string description: Resource pool to deploy in. VropstaProductSpec: required: - adminPassword - nodes - productId - productType - version type: object properties: properties: type: object properties: diskMode: pattern: ^thin|thick|eagerZeroedThick$ type: string description: "The mode to use for creating the virtual disk of the VM\ \ (thin, thick, eagerZeroedThick). Default: thin" productType: type: string description: "Product type, defining the type of application to integrate\ \ with (VCD, USAGE, RMQ, VROPSTA)." enum: - VCD - USAGE - VROPSTA - RMQ productId: type: string version: pattern: "^[0-9]+(\\.[0-9]+){0,3}([._\\-a-zA-Z0-9]+)?$" type: string description: Version of the product to deploy or import. buildNumber: type: string description: "Build number of the product, to be set automatically during\ \ discovery." productInternalId: type: string description: "An internal ID of the product, to be set automatically during\ \ discovery." license: pattern: "(^([a-zA-Z0-9]{5}-){4}[a-zA-Z0-9]{5}$)|(^ref:license:[a-zA-Z0-9]{20}$)" type: string description: License for the product adminPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string description: Admin password for the product's administrator account integrations: type: array items: $ref: '#/components/schemas/VropstaIntegrationSpec' certificate: type: object properties: product: $ref: '#/components/schemas/CertificateSpec' infraReference: type: string nodes: type: array description: List of nodes for the product items: $ref: '#/components/schemas/ProductNodeSpec' ProductUpdateNodeSpec: type: object properties: cpuNum: minimum: 1 type: integer format: int32 ramMemory: minimum: 1024 type: integer format: int32 rootPassword: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string SubTask: type: object properties: name: type: string status: type: string enum: - NOT_STARTED - IN_PROGRESS - SUCCESS - ERROR - CANCELLED message: type: object nextSubTasks: type: object additionalProperties: type: string ignoreStatus: type: boolean Task: type: object properties: id: type: integer format: int64 taskType: type: string enum: - ENVIRONMENT_DEPLOY - ENVIRONMENT_IMPORT - ENVIRONMENT_VALIDATE - UPGRADE - UPGRADE_VALIDATE - CERTIFICATE_UPDATE - NODE_ADD - NODE_UPDATE - NODE_REDEPLOY - NODE_DELETE - DATACENTER_REGISTER - DATACENTER_VALIDATE - DATACENTER_UPDATE subTasks: type: object additionalProperties: $ref: '#/components/schemas/SubTask' message: type: object status: type: string enum: - NOT_STARTED - IN_PROGRESS - SUCCESS - ERROR - CANCELLED taskName: type: string environmentId: type: string nextTaskId: type: integer format: int64 writeOnly: true next_tasks: type: array items: type: integer format: int64 DatacenterComponentSpecDcBaseObject: required: - fqdn - password - username type: object properties: properties: type: object additionalProperties: type: object componentName: type: string version: type: string datacenterComponentType: type: string enum: - VCENTER - NSXT - VRSLCM - VROPS - VRLI fqdn: pattern: "^([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?\\.)*[a-zA-Z0-9]([a-zA-Z0-9\\\ -]*[a-zA-Z0-9])?$" type: string username: type: string password: pattern: "(^[^'\"]{2,24}$)|(^ref:password:[a-zA-Z0-9]{20}$)" type: string content: $ref: '#/components/schemas/DcBaseObject' purpose: type: string enum: - ANY - MANAGEMENT - RESOURCE DcBaseObject: type: object properties: certificate: $ref: '#/components/schemas/DataCenterCertificateSpec' oneOf: - $ref: '#/components/schemas/DCNsxtSpec' - $ref: '#/components/schemas/DCVRopsSpec' - $ref: '#/components/schemas/DcVcenterSpec' About: required: - apiVersions - productVersion type: object properties: productVersion: type: string buildNumber: type: string interopVersion: type: string interopBuildNumber: type: string apiVersions: type: array items: $ref: '#/components/schemas/ApiVersion' ApiVersion: type: object properties: apiVersion: type: string deprecated: type: boolean