Equinix Precision Time API

Precision Time

OpenAPI Specification

equinix-precision-time-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Equinix API Authentication Precision Time API
  description: 'Equinix APIs use the OAuth 2.0 for authentication and authorization. Equinix supports the resource owner password and the client credentials flow.

    To begin, obtain OAuth 2.0 client credentials from the Equinix Developer Console under "My Apps". Then your client application  requests an access token from the Equinix API Authorization endpoint, extracts the access_token from the response, and sends the Bearer token to the API that you want to access'
  termsOfService: https://www.equinix.com/about/legal/terms
  contact:
    name: Equinix API Support
    url: https://docs.equinix.com/api-support.htm
  version: '1.2'
servers:
- url: https://api.equinix.com
tags:
- name: Precision Time
  description: Precision Time
paths:
  /fabric/v4/timeServices:
    post:
      tags:
      - Precision Time
      summary: Create Time Service
      description: The API provides capability to create Precision Time service
      operationId: createTimeServices
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/precisionTimeServiceRequest'
            examples:
              ntpStandard:
                $ref: '#/components/examples/ntpStandardService'
              ptpStandard:
                $ref: '#/components/examples/ptpStandardService'
              ntpEnterprise:
                $ref: '#/components/examples/ntpEnterpriseService'
              ptpEnterprise:
                $ref: '#/components/examples/ptpEnterpriseService'
              ptpStandardWithAdvancedConfiguration:
                $ref: '#/components/examples/ptpStandardWithAdvancedConfiguration'
              ptpEnterpriseWithAdvancedConfiguration:
                $ref: '#/components/examples/ptpEnterpriseWithAdvancedConfiguration'
              ntpEnterpriseWithAdvancedConfiguration:
                $ref: '#/components/examples/ntpEnterpriseWithAdvancedConfiguration'
        required: true
      responses:
        '202':
          description: Successful Accepted operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/precisionTimeServiceResponse'
              examples:
                ntpStandard:
                  $ref: '#/components/examples/ntpStandardCreateResponse'
                ntpEnterprise:
                  $ref: '#/components/examples/ntpEnterpriseCreateResponse'
                ptpStandard:
                  $ref: '#/components/examples/ptpStandardCreateResponse'
                ptpEnterprise:
                  $ref: '#/components/examples/ptpEnterpriseCreateResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                InvalidName:
                  $ref: '#/components/examples/400-Invalid-Name'
                ValidateName:
                  $ref: '#/components/examples/400-Validate-Name'
                DuplicateName:
                  $ref: '#/components/examples/400-Duplicate-Name'
                MandatoryConnectionUuid:
                  $ref: '#/components/examples/400-Mandatory-ConnectionUUid'
                InvalidConnectionUuidFormat:
                  $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format'
                InvalidConnectionStatus:
                  $ref: '#/components/examples/400-Invalid-Connection-Status'
                ValidateConnectionUuid:
                  $ref: '#/components/examples/400-Validate-ConnectionUuid'
                InvalidConnectionLocation:
                  $ref: '#/components/examples/400-Invalid-Connection-Location'
                MandatoryPackageType:
                  $ref: '#/components/examples/400-Mandatory-PackageType'
                InvalidPackageType:
                  $ref: '#/components/examples/400-Invalid-PackageType'
                InvalidConnectionPackageType:
                  $ref: '#/components/examples/400-Invalid-Connection-PackageType'
                MandatoryPackage:
                  $ref: '#/components/examples/400-Mandatory-Package'
                InvalidPackage:
                  $ref: '#/components/examples/400-Invalid-Package'
                InvalidConnectionPackage:
                  $ref: '#/components/examples/400-Invalid-Connection-Package'
                MandatoryPrimaryIP:
                  $ref: '#/components/examples/400-Mandatory-PrimaryIP'
                InvalidPrimaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-PrimaryIP-Format'
                ValidatePrimaryIP:
                  $ref: '#/components/examples/400-Validate-PrimaryIP'
                MandatorySecondaryIP:
                  $ref: '#/components/examples/400-Mandatory-SecondaryIP'
                InvalidSecondaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-SecondaryIP-Format'
                ValidateSecondaryIP:
                  $ref: '#/components/examples/400-Validate-SecondaryIP'
                ValidateSameSubnet:
                  $ref: '#/components/examples/400-Validate-SameSubnet'
                MandatoryNetworkMask:
                  $ref: '#/components/examples/400-Mandatory-NetworkMask'
                InvalidNetworkMaskFormat:
                  $ref: '#/components/examples/400-Invalid-NetworkMask-Format'
                ValidateNetworkMask:
                  $ref: '#/components/examples/400-Validate-NetworkMask'
                InvalidDefaultGatewayFormat:
                  $ref: '#/components/examples/400-Invalid-DefaultGateway-Format'
                ValidateDefaultGateway:
                  $ref: '#/components/examples/400-Validate-DefaultGateway'
                InvalidTimeScale:
                  $ref: '#/components/examples/400-Invalid-TimeScale'
                InvalidDomain:
                  $ref: '#/components/examples/400-Invalid-Domain'
                InvalidPriority1:
                  $ref: '#/components/examples/400-Invalid-Priority1'
                InvalidPriority2:
                  $ref: '#/components/examples/400-Invalid-Priority2'
                InvalidLogAnnounceInterval:
                  $ref: '#/components/examples/400-Invalid-LogAnnounceInterval'
                ValidateLogAnnounceIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range'
                InvalidLogSyncInterval:
                  $ref: '#/components/examples/400-Invalid-LogSyncInterval'
                ValidateLogSyncIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogSyncInterval-Range'
                InvalidLogDelayReqInterval:
                  $ref: '#/components/examples/400-Invalid-LogDelayReqInterval'
                ValidateLogDelayReqIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range'
                InvalidTransportMode:
                  $ref: '#/components/examples/400-Invalid-TransportMode'
                InvalidGrantTime:
                  $ref: '#/components/examples/400-Invalid-GrantTime'
                ValidateGrantTimeRange:
                  $ref: '#/components/examples/400-Validate-GrantTime-Range'
                InvalidType:
                  $ref: '#/components/examples/400-Invalid-Type'
                InvalidId:
                  $ref: '#/components/examples/400-Invalid-Id'
                InvalidPassword:
                  $ref: '#/components/examples/400-Invalid-Password'
                ValidatePassword:
                  $ref: '#/components/examples/400-Validate-Password'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/timeServices/{serviceId}:
    get:
      tags:
      - Precision Time
      summary: Get Service By ID.
      description: The API provides capability to get Precision Time Service details
      operationId: getTimeServicesById
      parameters:
      - name: serviceId
        in: path
        description: Service UUID
        required: true
        schema:
          $ref: '#/components/schemas/ServiceId'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/precisionTimeServiceResponse'
              examples:
                ntpStandardOriginPort:
                  $ref: '#/components/examples/ntpStandardResponseASidePort'
                ntpStandardOriginVirtualDevice:
                  $ref: '#/components/examples/ntpStandardResponseASideVirtualDevice'
                ntpStandardOriginCloudRouter:
                  $ref: '#/components/examples/ntpStandardResponseASideCloudRouter'
                ntpEnterpriseOriginPort:
                  $ref: '#/components/examples/ntpEnterpriseWOMD5ResponseASidePort'
                ntpEnterpriseWithAdvConfigOriginPort:
                  $ref: '#/components/examples/ntpEnterpriseResponseASidePort'
                ntpEnterpriseWithAdvConfigOriginVirtualDevice:
                  $ref: '#/components/examples/ntpEnterpriseResponseASideVirtualDevice'
                ntpEnterpriseWithAdvConfigOriginCloudRouter:
                  $ref: '#/components/examples/ntpEnterpriseResponseASideCloudRouter'
                ptpStandardOriginPort:
                  $ref: '#/components/examples/ptpStandardResponse'
                ptpEnterpriseOriginPort:
                  $ref: '#/components/examples/ptpEnterpriseResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    put:
      tags:
      - Precision Time
      summary: Configure Service.
      description: The API provides capability to Configure/Fulfill the Precision Time Service.
      operationId: fulfillTimeServices
      parameters:
      - name: serviceId
        in: path
        description: Service UUID
        required: true
        schema:
          $ref: '#/components/schemas/ServiceId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/precisionTimeServiceRequest'
            examples:
              ntpStandard:
                $ref: '#/components/examples/configureStandardService'
              ptpStandard:
                $ref: '#/components/examples/configureStandardService'
              ntpEnterpriseWithAdvanceConfiguration:
                $ref: '#/components/examples/configureNtpEnterpriseAdvancedConfig'
              ptpEnterpriseWithAdvanceConfiguration:
                $ref: '#/components/examples/configurePtpWithAdvancedConfig'
        required: true
      responses:
        '202':
          description: Successful Accepted operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/precisionTimeServiceResponse'
              examples:
                ntpStandard:
                  $ref: '#/components/examples/ntpStandardConfigureResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                InvalidName:
                  $ref: '#/components/examples/400-Invalid-Name'
                ValidateName:
                  $ref: '#/components/examples/400-Validate-Name'
                DuplicateName:
                  $ref: '#/components/examples/400-Duplicate-Name'
                MandatoryConnectionUuid:
                  $ref: '#/components/examples/400-Mandatory-ConnectionUUid'
                InvalidConnectionUuidFormat:
                  $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format'
                InvalidConnectionStatus:
                  $ref: '#/components/examples/400-Invalid-Connection-Status'
                ValidateConnectionUuid:
                  $ref: '#/components/examples/400-Validate-ConnectionUuid'
                InvalidConnectionLocation:
                  $ref: '#/components/examples/400-Invalid-Connection-Location'
                MandatoryPackageType:
                  $ref: '#/components/examples/400-Mandatory-PackageType'
                InvalidPackageType:
                  $ref: '#/components/examples/400-Invalid-PackageType'
                InvalidConnectionPackageType:
                  $ref: '#/components/examples/400-Invalid-Connection-PackageType'
                MandatoryPackage:
                  $ref: '#/components/examples/400-Mandatory-Package'
                InvalidPackage:
                  $ref: '#/components/examples/400-Invalid-Package'
                InvalidConnectionPackage:
                  $ref: '#/components/examples/400-Invalid-Connection-Package'
                MandatoryPrimaryIP:
                  $ref: '#/components/examples/400-Mandatory-PrimaryIP'
                InvalidPrimaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-PrimaryIP-Format'
                ValidatePrimaryIP:
                  $ref: '#/components/examples/400-Validate-PrimaryIP'
                MandatorySecondaryIP:
                  $ref: '#/components/examples/400-Mandatory-SecondaryIP'
                InvalidSecondaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-SecondaryIP-Format'
                ValidateSecondaryIP:
                  $ref: '#/components/examples/400-Validate-SecondaryIP'
                ValidateSameSubnet:
                  $ref: '#/components/examples/400-Validate-SameSubnet'
                MandatoryNetworkMask:
                  $ref: '#/components/examples/400-Mandatory-NetworkMask'
                InvalidNetworkMaskFormat:
                  $ref: '#/components/examples/400-Invalid-NetworkMask-Format'
                ValidateNetworkMask:
                  $ref: '#/components/examples/400-Validate-NetworkMask'
                InvalidDefaultGatewayFormat:
                  $ref: '#/components/examples/400-Invalid-DefaultGateway-Format'
                ValidateDefaultGateway:
                  $ref: '#/components/examples/400-Validate-DefaultGateway'
                InvalidTimeScale:
                  $ref: '#/components/examples/400-Invalid-TimeScale'
                InvalidDomain:
                  $ref: '#/components/examples/400-Invalid-Domain'
                InvalidPriority1:
                  $ref: '#/components/examples/400-Invalid-Priority1'
                InvalidPriority2:
                  $ref: '#/components/examples/400-Invalid-Priority2'
                InvalidLogAnnounceInterval:
                  $ref: '#/components/examples/400-Invalid-LogAnnounceInterval'
                ValidateLogAnnounceIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range'
                InvalidLogSyncInterval:
                  $ref: '#/components/examples/400-Invalid-LogSyncInterval'
                ValidateLogSyncIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogSyncInterval-Range'
                InvalidLogDelayReqInterval:
                  $ref: '#/components/examples/400-Invalid-LogDelayReqInterval'
                ValidateLogDelayReqIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range'
                InvalidTransportMode:
                  $ref: '#/components/examples/400-Invalid-TransportMode'
                InvalidGrantTime:
                  $ref: '#/components/examples/400-Invalid-GrantTime'
                ValidateGrantTimeRange:
                  $ref: '#/components/examples/400-Validate-GrantTime-Range'
                InvalidType:
                  $ref: '#/components/examples/400-Invalid-Type'
                InvalidId:
                  $ref: '#/components/examples/400-Invalid-Id'
                InvalidPassword:
                  $ref: '#/components/examples/400-Invalid-Password'
                ValidatePassword:
                  $ref: '#/components/examples/400-Validate-Password'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    delete:
      tags:
      - Precision Time
      summary: Delete by ID.
      description: The API provides capability to delete Precision Time Service by service id.
      operationId: deleteTimeServiceById
      parameters:
      - name: serviceId
        in: path
        description: Service UUID
        required: true
        schema:
          $ref: '#/components/schemas/ServiceId'
      responses:
        '202':
          description: Successful Delete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/precisionTimeServiceResponse'
              examples:
                ntpStandard:
                  $ref: '#/components/examples/ntpStandardDeletingResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    patch:
      tags:
      - Precision Time
      summary: Update By ID.
      description: The API provides capability to update Precision Time Service by service id.
      operationId: updateTimeServicesById
      parameters:
      - name: serviceId
        in: path
        description: Service UUID
        required: true
        schema:
          $ref: '#/components/schemas/ServiceId'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              maxItems: 1
              minItems: 1
              type: array
              items:
                $ref: '#/components/schemas/precisionTimeChangeOperation'
            examples:
              updateName:
                $ref: '#/components/examples/updateName'
              updatePackageCode:
                $ref: '#/components/examples/updatePackageCode'
              updateNetworkInformation:
                $ref: '#/components/examples/updateNetworkInformation'
              updatePtpAdvancedConfiguration:
                $ref: '#/components/examples/updatePtpAdvancedConfiguration'
              updateNtpAdvancedConfiguration:
                $ref: '#/components/examples/updateNtpAdvancedConfiguration'
        required: true
      responses:
        '202':
          description: Successful Accepted operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/precisionTimeServiceResponse'
              examples:
                ntpStandard:
                  $ref: '#/components/examples/ntpStandardReprovisionResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                InvalidName:
                  $ref: '#/components/examples/400-Invalid-Name'
                ValidateName:
                  $ref: '#/components/examples/400-Validate-Name'
                DuplicateName:
                  $ref: '#/components/examples/400-Duplicate-Name'
                MandatoryConnectionUuid:
                  $ref: '#/components/examples/400-Mandatory-ConnectionUUid'
                InvalidConnectionUuidFormat:
                  $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format'
                InvalidConnectionStatus:
                  $ref: '#/components/examples/400-Invalid-Connection-Status'
                ValidateConnectionUuid:
                  $ref: '#/components/examples/400-Validate-ConnectionUuid'
                InvalidConnectionLocation:
                  $ref: '#/components/examples/400-Invalid-Connection-Location'
                MandatoryPackageType:
                  $ref: '#/components/examples/400-Mandatory-PackageType'
                InvalidPackageType:
                  $ref: '#/components/examples/400-Invalid-PackageType'
                InvalidConnectionPackageType:
                  $ref: '#/components/examples/400-Invalid-Connection-PackageType'
                MandatoryPackage:
                  $ref: '#/components/examples/400-Mandatory-Package'
                InvalidPackage:
                  $ref: '#/components/examples/400-Invalid-Package'
                InvalidConnectionPackage:
                  $ref: '#/components/examples/400-Invalid-Connection-Package'
                MandatoryPrimaryIP:
                  $ref: '#/components/examples/400-Mandatory-PrimaryIP'
                InvalidPrimaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-PrimaryIP-Format'
                ValidatePrimaryIP:
                  $ref: '#/components/examples/400-Validate-PrimaryIP'
                MandatorySecondaryIP:
                  $ref: '#/components/examples/400-Mandatory-SecondaryIP'
                InvalidSecondaryIPFormat:
                  $ref: '#/components/examples/400-Invalid-SecondaryIP-Format'
                ValidateSecondaryIP:
                  $ref: '#/components/examples/400-Validate-SecondaryIP'
                ValidateSameSubnet:
                  $ref: '#/components/examples/400-Validate-SameSubnet'
                MandatoryNetworkMask:
                  $ref: '#/components/examples/400-Mandatory-NetworkMask'
                InvalidNetworkMaskFormat:
                  $ref: '#/components/examples/400-Invalid-NetworkMask-Format'
                ValidateNetworkMask:
                  $ref: '#/components/examples/400-Validate-NetworkMask'
                InvalidDefaultGatewayFormat:
                  $ref: '#/components/examples/400-Invalid-DefaultGateway-Format'
                ValidateDefaultGateway:
                  $ref: '#/components/examples/400-Validate-DefaultGateway'
                InvalidTimeScale:
                  $ref: '#/components/examples/400-Invalid-TimeScale'
                InvalidDomain:
                  $ref: '#/components/examples/400-Invalid-Domain'
                InvalidPriority1:
                  $ref: '#/components/examples/400-Invalid-Priority1'
                InvalidPriority2:
                  $ref: '#/components/examples/400-Invalid-Priority2'
                InvalidLogAnnounceInterval:
                  $ref: '#/components/examples/400-Invalid-LogAnnounceInterval'
                ValidateLogAnnounceIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range'
                InvalidLogSyncInterval:
                  $ref: '#/components/examples/400-Invalid-LogSyncInterval'
                ValidateLogSyncIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogSyncInterval-Range'
                InvalidLogDelayReqInterval:
                  $ref: '#/components/examples/400-Invalid-LogDelayReqInterval'
                ValidateLogDelayReqIntervalRange:
                  $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range'
                InvalidTransportMode:
                  $ref: '#/components/examples/400-Invalid-TransportMode'
                InvalidGrantTime:
                  $ref: '#/components/examples/400-Invalid-GrantTime'
                ValidateGrantTimeRange:
                  $ref: '#/components/examples/400-Validate-GrantTime-Range'
                InvalidType:
                  $ref: '#/components/examples/400-Invalid-Type'
                InvalidId:
                  $ref: '#/components/examples/400-Invalid-Id'
                InvalidPassword:
                  $ref: '#/components/examples/400-Invalid-Password'
                ValidatePassword:
                  $ref: '#/components/examples/400-Validate-Password'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/timeServices/search:
    post:
      tags:
      - Precision Time
      summary: Search Time Services
      description: The API provides capability to get list of user's Time Services using search criteria, including optional filtering, pagination and sorting
      operationId: searchTimeServices
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeServicesSearchRequest'
            examples:
              SearchFilterByStatus:
                $ref: '#/components/examples/SearchTimeServicesFilterByStatus'
              SearchFilterByNameAndProtocol:
                $ref: '#/components/examples/SearchTimeServicesByNameAndProtocol'
              SearchFilterOrAnd:
                $ref: '#/components/examples/SearchTimeServicesFilterOrAnd'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceSearchResponse'
              examples:
                Example:
                  $ref: '#/components/examples/serviceSearchResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/service_400_invalid_sorting'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
  

# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/equinix/refs/heads/main/openapi/equinix-precision-time-api-openapi.yml