openapi: 3.0.0 info: contact: name: VMware description: Service Mesh APIs. license: name: Copyright (c) 2016-2017 VMware, Inc. All rights reserved. termsOfService: https://hcx.vmware.com/terms-and-conditions title: Service Mesh APIs version: "1.0" servers: - url: https://{server}/hybridity/api/interconnect variables: server: default: api.example.com description: server host name tags: - description: ServiceMesh Apis name: serviceMesh paths: /serviceMesh: get: description: List all service meshes operationId: getAllServiceMesh responses: 200: content: application/json: schema: $ref: '#/components/schemas/serviceMeshListResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: List all service meshes tags: - serviceMesh post: description: Create service mesh operationId: createServiceMesh requestBody: content: application/json: schema: $ref: '#/components/schemas/serviceMesh' description: Service mesh as request body. required: true responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Create service mesh tags: - serviceMesh /serviceMesh/{serviceMeshId}/resync: post: description: Resync the service mesh with any changes in local or remote compute profiles operationId: resyncServiceMesh parameters: - description: Service Mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Resync the service mesh with any changes in local or remote compute profiles tags: - serviceMesh /serviceMesh/query: post: description: List all service meshes operationId: getAllServiceMeshByFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/serviceMeshFilter' description: Service Mesh filter object. required: true responses: 200: content: application/json: schema: $ref: '#/components/schemas/serviceMeshListResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: List all service meshes tags: - serviceMesh /serviceMesh/{serviceMeshId}: delete: description: Delete a service mesh. operationId: deleteServiceMesh parameters: - description: Service mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple - description: force delete query param explode: true in: query name: force required: false schema: default: "false" type: string style: form responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 400: description: Bad Request 401: description: Unauthorized 403: description: Forbidden 404: description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity summary: Delete a service mesh. tags: - serviceMesh get: description: Get a service mesh. operationId: getServiceMesh parameters: - description: ServiceMesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple responses: 200: content: application/json: schema: $ref: '#/components/schemas/serviceMeshGetResponse' description: Accepted 404: description: Not Found 401: description: Unauthorized 403: description: Forbidden 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Get a service mesh. tags: - serviceMesh put: description: Update a service mesh. operationId: modifyServiceMesh parameters: - description: ServiceMesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/serviceMesh' description: ServiceMesh as request body. required: true responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 400: description: Bad Request 401: description: Unauthorized 403: description: Forbidden 404: description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Update a service mesh. tags: - serviceMesh /serviceMesh/{serviceMeshId}/preview: post: description: Preview a service mesh. operationId: previewServiceMesh parameters: - description: Service Mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 404: description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity summary: Preview a service mesh. tags: - serviceMesh /serviceMesh/{serviceMeshId}/diagnose: post: description: Run diagnosis on a service mesh. operationId: diagnoseServiceMesh parameters: - description: Service Mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple responses: 202: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Accepted 401: description: Unauthorized 403: description: Forbidden 404: description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/serviceMeshPostResponse' description: Unprocessable Entity summary: Run diagnosis on a service mesh. tags: - serviceMesh /serviceMesh/{serviceMeshId}/diagnostics/query: post: description: Get the list of diagnostics runs (summary) of a service mesh matching the filters. operationId: getDiagnosticsSummary parameters: - description: Service Mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/serviceMeshDiagFilter' description: Filter object. required: true responses: 200: content: application/json: schema: $ref: '#/components/schemas/serviceMeshDiagResponseList' description: OK 401: description: Unauthorized 403: description: Forbidden 404: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Unprocessable Entity 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Get the list of diagnostics runs (summary) of a service mesh matching the filters. tags: - serviceMesh /serviceMesh/{serviceMeshId}/diagnostics/{serviceMeshDiagId}: get: description: Get the list of diagnostics run of a service mesh. operationId: getDiagnosticsDetails parameters: - description: Service Mesh ID explode: false in: path name: serviceMeshId required: true schema: type: string style: simple - description: Service Mesh diagnostics run ID explode: false in: path name: serviceMeshDiagId required: true schema: type: string style: simple responses: 200: content: application/json: schema: $ref: '#/components/schemas/serviceMeshDiagResponse' description: OK 401: description: Unauthorized 403: description: Forbidden 404: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Not Found 422: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Unprocessable Entity 500: content: application/json: schema: $ref: '#/components/schemas/errorResponse' description: Internal Server Error summary: Get the full details of diagnostics run of a service mesh. tags: - serviceMesh components: schemas: errorResponse: properties: errors: items: $ref: '#/components/schemas/error' type: array type: object serviceMeshPostResponse: example: data: serviceMeshId: serviceMeshId interconnectTaskId: interconnectTaskId warnings: - message: message - message: message errors: - code: code message: message - code: code message: message properties: data: $ref: '#/components/schemas/serviceMeshPostResponseData' warnings: items: $ref: '#/components/schemas/warning' type: array errors: items: $ref: '#/components/schemas/error' type: array type: object serviceMeshPostResponseData: example: serviceMeshId: serviceMeshId interconnectTaskId: interconnectTaskId properties: interconnectTaskId: type: string serviceMeshId: type: string type: object serviceMeshGetResponse: allOf: - $ref: '#/components/schemas/serviceMesh' - properties: state: type: string lastTaskDetails: properties: interconnectTaskId: type: string type: type: string status: type: string type: object status: type: object type: object serviceMeshListResponse: example: items: - null - null properties: items: items: $ref: '#/components/schemas/serviceMeshGetResponse' type: array type: object serviceMeshFilter: properties: filter: $ref: '#/components/schemas/serviceMeshFilter_filter' type: object serviceMeshDiagFilter: properties: filter: $ref: '#/components/schemas/serviceMeshDiagFilter_filter' paging: $ref: '#/components/schemas/serviceMeshDiagFilter_paging' required: - filter type: object serviceMeshDiagResponse: example: data: reason: reason serviceMeshId: serviceMeshId applianceIds: - applianceIds - applianceIds startTime: 0 details: '{}' endTime: 6 message: message diagId: diagId status: SUCCESS triggeredBy: triggeredBy warnings: - message: message - message: message errors: - code: code message: message - code: code message: message properties: data: $ref: '#/components/schemas/serviceMeshDiagResponseData' warnings: items: $ref: '#/components/schemas/warning' type: array errors: items: $ref: '#/components/schemas/error' type: array type: object serviceMeshDiagResponseList: example: paging: totalSize: 5 offset: 1 pageSize: 5 items: - reason: reason serviceMeshId: serviceMeshId applianceIds: - applianceIds - applianceIds startTime: 0 details: '{}' endTime: 6 message: message diagId: diagId status: SUCCESS triggeredBy: triggeredBy - reason: reason serviceMeshId: serviceMeshId applianceIds: - applianceIds - applianceIds startTime: 0 details: '{}' endTime: 6 message: message diagId: diagId status: SUCCESS triggeredBy: triggeredBy errors: - code: code message: message - code: code message: message properties: errors: items: $ref: '#/components/schemas/error' type: array items: items: $ref: '#/components/schemas/serviceMeshDiagResponseData' type: array paging: $ref: '#/components/schemas/serviceMeshDiagResponseList_paging' type: object serviceMesh: additionalProperties: false properties: serviceMeshId: type: string name: type: string updateAvailable: type: boolean switchPairCount: items: $ref: '#/components/schemas/switchPair' minItems: 1 type: array wanoptConfig: $ref: '#/components/schemas/wanoptConfig' services: items: $ref: '#/components/schemas/service' minItems: 1 type: array computeProfiles: items: $ref: '#/components/schemas/serviceMeshComputeProfile' minItems: 2 type: array trafficEnggCfg: $ref: '#/components/schemas/trafficEnggCfg' required: - computeProfiles - name - services type: object error: example: code: code message: message properties: code: type: string message: type: string type: object warning: example: message: message properties: message: type: string type: object switchPair: properties: switches: items: $ref: '#/components/schemas/switch' maxItems: 2 minItems: 2 type: array l2cApplianceCount: type: number required: - l2cApplianceCount - switches type: object switch: additionalProperties: false properties: cmpId: type: string id: type: string type: type: string name: type: string maxMtu: type: number l2cApplianceCount: type: number host: $ref: '#/components/schemas/switchHost' status: $ref: '#/components/schemas/status' required: - cmpId - id - type type: object switchHost: additionalProperties: false properties: id: type: string name: type: string required: - id type: object status: additionalProperties: false properties: state: type: string errorMessage: type: string required: - state type: object wanoptConfig: additionalProperties: false properties: uplinkMaxBandwidth: maximum: 10000000 minimum: 5000 type: number required: - uplinkMaxBandwidth type: object service: properties: name: type: string required: - name type: object serviceMeshComputeProfile: additionalProperties: false properties: endpointId: type: string endpointName: type: string computeProfileId: type: string computeProfileName: type: string locationType: type: string networks: items: $ref: '#/components/schemas/serviceMeshComputeProfileNetwork' minItems: 0 type: array required: - endpointId type: object serviceMeshComputeProfileNetwork: properties: id: type: string name: type: string tags: items: type: string minItems: 1 type: array type: object trafficEnggCfg: additionalProperties: false description: Service Mesh traffic engineering configuration options. properties: isAppPathResiliencyEnabled: description: The HCX Service Mesh builds multiple transport tunnels to establish path diversity to the target, and intelligently directs HCX service traffic using the optimal path for performance and resiliency. type: boolean isTcpFlowConditioningEnabled: description: The HCX Service Mesh dynamically manages the TCP segment size to reduce packet fragmentation, optimizing transport performance and efficiency for HCX Network Extension traffic. type: boolean type: object serviceMeshDiagResponseData: example: reason: reason serviceMeshId: serviceMeshId applianceIds: - applianceIds - applianceIds startTime: 0 details: '{}' endTime: 6 message: message diagId: diagId status: SUCCESS triggeredBy: triggeredBy properties: diagId: type: string serviceMeshId: type: string applianceIds: description: If present, contains the applianceIds that are specifically mentioned to run diagnostics. If not present, the diagnostics represent the entire service mesh. items: type: string type: array startTime: format: int64 type: integer endTime: format: int64 type: integer status: enum: - SUCCESS - FAILED type: string message: type: string triggeredBy: description: SYSTEM if auto triggered or the user name if manually tirggered. type: string reason: type: string details: description: will be part of the specific detailed diagnostic query. For summary, this field will not be present. type: object type: object serviceMeshFilter_filter: properties: serviceMeshId: type: string computeProfileId: type: string endpointId: items: type: string type: array name: type: string serviceMeshDiagFilter_filter: properties: status: description: If status(es) is specified, API returns the matching diagnostics runs with the specified status. items: enum: - SUCCESS - FAILED type: string type: array startTime: default: 0 description: If startTime (in millis) is specified, API returns the matching diagnostics runs that are started on or after this time (inclusive). format: int64 type: integer endTime: description: If endTime (in millis) is specified, API returns the matching diagnostics runs that are started on or before this time (inclusive). format: int64 type: integer serviceMeshDiagFilter_paging: properties: offset: default: 1 description: If offset is specified, API returns the diagnostics runs that are starting at the offset. Starts with 1. If not specified or <= 0, its set to defaults. type: integer pageSize: default: 100 description: If pageSize is specified, API returns the matching diagnostics runs that are limited to page size. Set to defaults if not specified or <= 0 or > 100 (strict limit). type: integer serviceMeshDiagResponseList_paging: example: totalSize: 5 offset: 1 pageSize: 5 properties: offset: type: integer pageSize: type: integer totalSize: type: integer securitySchemes: x-hm-authorization: description: Obtained from /hybridity/api/session in: header name: x-hm-authorization type: apiKey