From 6141bb7a8d863fb7da361a31015a5e2176c63cfb Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 17 Feb 2026 09:46:56 +0000
Subject: [PATCH 1/5] sync: fetch 2026-02-17 spec and apply patches
---
.../fabricv4/oas3.fetched/openapi.yaml | 2192 +++++++++++++++--
1 file changed, 1976 insertions(+), 216 deletions(-)
diff --git a/spec/services/fabricv4/oas3.fetched/openapi.yaml b/spec/services/fabricv4/oas3.fetched/openapi.yaml
index f9004d48..6abf222f 100644
--- a/spec/services/fabricv4/oas3.fetched/openapi.yaml
+++ b/spec/services/fabricv4/oas3.fetched/openapi.yaml
@@ -9,7 +9,7 @@ info:
license:
name: Equinix Inc
url: https://developer.equinix.com/agreement
- version: "4.26"
+ version: "4.27"
externalDocs:
description: Find more information on Equinix Docs Portal
url: https://docs.equinix.com/fabric/
@@ -23,6 +23,8 @@ tags:
description: Cloud Events
- name: Cloud Routers
description: Cloud Routers
+ - name: Company Profiles
+ description: Company Profiles Beta
- name: Connections
description: Connections
- name: Metrics
@@ -295,11 +297,40 @@ paths:
$ref: "#/components/schemas/AssetId"
- name: name
in: query
- description: |
- Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
+ description: "Name of the metric types: \n- `equinix.fabric.connection.bandwidth_rx.usage`\n- `equinix.fabric.connection.bandwidth_tx.usage`\n- `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count`\n- `equinix.fabric.port.bandwidth_rx.usage`\n- `equinix.fabric.port.bandwidth_tx.usage`\n- `equinix.fabric.port.packets_dropped_rx.count`\n- `equinix.fabric.port.packets_dropped_tx.count`\n- `equinix.fabric.port.packets_erred_rx.count`\n- `equinix.fabric.port.packets_erred_tx.count`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg`\n"
required: true
schema:
- $ref: "#/components/schemas/MetricTypeQueryParams"
+ pattern: ^equinix\.fabric\.(connection|port|metro)\..+
+ type: string
+ examples:
+ connectionRxUsageExample:
+ value: equinix.fabric.connection.bandwidth_rx.usage
+ connectionTxUsageExample:
+ value: equinix.fabric.connection.bandwidth_tx.usage
+ connectionRxPacketAsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
+ connectionTxPacketAsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
+ connectionRxPacketZsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
+ connectionTxPacketZsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
+ portRxUsageExample:
+ value: equinix.fabric.port.bandwidth_rx.usage
+ portTxUsageExample:
+ value: equinix.fabric.port.bandwidth_tx.usage
+ portRxPacketDroppedExample:
+ value: equinix.fabric.port.packets_dropped_rx.count
+ portTxPacketDroppedExample:
+ value: equinix.fabric.port.packets_dropped_tx.count
+ portRxPacketErredExample:
+ value: equinix.fabric.port.packets_erred_rx.count
+ portTxPacketErredExample:
+ value: equinix.fabric.port.packets_erred_tx.count
+ metroLatencyExample:
+ value: equinix.fabric.metro.sv_dc.latency
+ metroJitterExample:
+ value: equinix.fabric.metro.sv_dc.jitter_avg
- name: fromDateTime
in: query
description: Start date and time
@@ -370,6 +401,90 @@ paths:
examples:
example:
$ref: "#/components/examples/500"
+ /fabric/v4/metrics:
+ get:
+ tags:
+ - Metrics
+ summary: Get Metrics by Name
+ description: This API provides capability to retrieve Metrics by specific wildcard metric types
+ operationId: getMetricByName
+ parameters:
+ - name: name
+ in: query
+ description: "Name of the metric types with wildcard: \n- `equinix.fabric.metro.*.latency`\n- `equinix.fabric.metro.*.jitter_avg`\n"
+ required: true
+ schema:
+ pattern: ^equinix\.fabric\.metro\.\*\..+
+ type: string
+ examples:
+ metroLatencyExample:
+ value: equinix.fabric.metro.*.latency
+ metroJitterExample:
+ value: equinix.fabric.metro.*.jitter_avg
+ - name: value
+ in: query
+ description: value
+ required: true
+ schema:
+ $ref: "#/components/schemas/Value"
+ - name: offset
+ in: query
+ description: offset
+ required: false
+ schema:
+ $ref: "#/components/schemas/Offset"
+ - name: limit
+ in: query
+ description: limit
+ required: false
+ schema:
+ $ref: "#/components/schemas/Limit_1"
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetMetricsByNameResponse"
+ examples:
+ Example:
+ $ref: "#/components/examples/get-metrics-by-name"
+ "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"
+ "500":
+ description: Internal server error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ examples:
+ example:
+ $ref: "#/components/examples/500"
/fabric/v4/metrics/search:
post:
tags:
@@ -537,7 +652,7 @@ paths:
Vd2Colo:
$ref: "#/components/examples/Vd2Colo"
Vd2Colo-vlanTag:
- $ref: "#/components/examples/Vd2ColoVlanTag"
+ $ref: "#/components/examples/Vd2Colo-VlanTag"
Vd2Colo-vlanCTag:
$ref: "#/components/examples/Vd2Colo-VlanCTag"
Vd2ColoUntagged:
@@ -564,6 +679,8 @@ paths:
$ref: "#/components/examples/Fcr2Sp-Aws"
Fcr2Sp-Oracle:
$ref: "#/components/examples/Fcr2Sp-Oracle"
+ Fcr2Sp-Alibaba:
+ $ref: "#/components/examples/Fcr2Sp-Alibaba"
Fcr2Vd:
$ref: "#/components/examples/Fcr2Vd"
Fcr2Vd-Redundant-Secondary:
@@ -679,7 +796,7 @@ paths:
Vd2Sp:
$ref: "#/components/examples/Vd2Sp-Response"
Vd2Token:
- $ref: "#/components/examples/Vd2ServiceToken_Response"
+ $ref: "#/components/examples/Vd2ServiceToken-Response"
Vd2Colo:
$ref: "#/components/examples/Vd2Colo-Response"
Vd2Colo-tag:
@@ -2622,6 +2739,8 @@ paths:
$ref: "#/components/examples/VirtualPortProduct"
virtualPortProductUPP:
$ref: "#/components/examples/VirtualPortProductUPP"
+ virtualPortProductIX:
+ $ref: "#/components/examples/VirtualPortProductIX"
precisionTimeProductNtpStandardPackageCode:
$ref: "#/components/examples/PrecisionTimeNtpStandardPackage"
precisionTimeProductNtpEnterprisePackageCode:
@@ -2649,6 +2768,8 @@ paths:
$ref: "#/components/examples/VirtualPort"
virtualPortUPP:
$ref: "#/components/examples/VirtualPortUPP"
+ virtualPortIX:
+ $ref: "#/components/examples/VirtualPortIX"
precisionTimeService:
$ref: "#/components/examples/PrecisionTimeService"
"400":
@@ -2882,7 +3003,7 @@ paths:
tags:
- Service Profiles
summary: Create Profile
- description: Create Service Profile creates Equinix Fabric™ Service Profile.
+ description: Create Service Profile creates Equinix Fabric? Service Profile.
operationId: createServiceProfile
parameters: []
requestBody:
@@ -3276,7 +3397,7 @@ paths:
content:
application/json-patch+json:
schema:
- $ref: "#/components/schemas/JsonPatch"
+ $ref: "#/components/schemas/JsonPatch_1"
examples:
ServiceProfilePatchRequest:
$ref: "#/components/examples/ServiceProfilePatchRequest"
@@ -3668,7 +3789,7 @@ paths:
tags:
- Service Tokens
summary: Create Service Token
- description: Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+ description: Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
operationId: createServiceToken
parameters:
- name: dryRun
@@ -4087,7 +4208,7 @@ paths:
tags:
- Ports
summary: Create Port
- description: Creates Equinix Fabric™ Port.
+ description: Creates Equinix Fabric? Port.
operationId: createPort
parameters:
- name: dryRun
@@ -8461,6 +8582,10 @@ paths:
$ref: "#/components/examples/UpdateName"
UpdateNotificationEmail:
$ref: "#/components/examples/UpdateNotifications"
+ UpdateTermLength:
+ $ref: "#/components/examples/UpdateTermLength"
+ UpdatePackageAndTermLength:
+ $ref: "#/components/examples/UpdatePackageAndTermLength"
required: true
responses:
"200":
@@ -12739,6 +12864,752 @@ paths:
examples:
example:
$ref: "#/components/examples/500"
+ /fabric/v4/companyProfiles:
+ post:
+ tags:
+ - Company Profiles
+ summary: Create Company Profile
+ description: Create a new company profile Beta
+ operationId: createCompanyProfile
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileRequest"
+ required: true
+ responses:
+ "201":
+ description: Company profile created successfully
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Company Profile by UUID
+ description: Get company profile details by UUID Beta
+ operationId: getCompanyProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Delete Company Profile
+ description: Delete company profile by UUID Beta
+ operationId: deleteCompanyProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ /fabric/v4/companyProfiles/search:
+ post:
+ tags:
+ - Company Profiles
+ summary: Search Company Profiles
+ description: Search company profiles based on filter criteria Beta
+ operationId: searchCompanyProfile
+ parameters:
+ - name: viewPoint
+ in: query
+ description: Viewpoint for the request, either 'aSide' or 'zSide'
+ required: false
+ schema:
+ type: string
+ default: aSide
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileSearchRequest"
+ required: true
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileSearchResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Service Profiles
+ description: Get all service profiles attached to a company profile Beta
+ operationId: getCompanyProfileServiceProfiles
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ServiceProfileListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Service Profile
+ description: Attach a service profile to a company profile Beta
+ operationId: attachServiceProfileToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: serviceProfileId
+ in: path
+ description: Service Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachServiceProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Service Profile
+ description: Detach a service profile from a company profile Beta
+ operationId: detachServiceProfileFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: serviceProfileId
+ in: path
+ description: Service Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachServiceProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/tags":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Tags
+ description: Get all tags attached to a company profile Beta
+ operationId: getTags
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Tag
+ description: Attach a tag to a company profile Beta
+ operationId: attachTagToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: tagId
+ in: path
+ description: Tag UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachTagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Tag
+ description: Detach a tag from a company profile Beta
+ operationId: detachTagFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: tagId
+ in: path
+ description: Tag UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachTagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/privateServices":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Private Services
+ description: Get all private services attached to a company profile Beta
+ operationId: getCompanyProfilePrivateServices
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrivateServiceListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Private Service
+ description: Attach a private service to a company profile Beta
+ operationId: attachPrivateServiceToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: privateServiceId
+ in: path
+ description: Private Service UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachPrivateServiceResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Private Service
+ description: Detach a private service from a company profile Beta
+ operationId: detachPrivateServiceFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: privateServiceId
+ in: path
+ description: Private Service UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachPrivateServiceResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/logos/{uuid}":
+ get:
+ tags:
+ - Logos
+ summary: Get Logo
+ description: Get Logo by UUID
+ operationId: getLogoByUuid
+ parameters:
+ - name: uuid
+ in: path
+ description: UUID of the Logo
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "200":
+ description: Successful Get operation
+ content:
+ multipart/mixed:
+ schema:
+ type: string
+ format: binary
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Logos
+ summary: Delete Logo
+ description: Delete Logo by UUID
+ operationId: deleteLogoByUuid
+ parameters:
+ - name: uuid
+ in: path
+ description: UUID of the Logo
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "202":
+ description: Successful Delete operation
+ content:
+ application/json; charset=UTF-8:
+ schema:
+ $ref: "#/components/schemas/LogoResponse"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ /fabric/v4/tags:
+ get:
+ tags:
+ - Tags
+ summary: List Tags
+ description: Get all Tags
+ operationId: listTags
+ parameters:
+ - name: type
+ in: query
+ description: Filter by tag type
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: offset
+ in: query
+ description: Offset for pagination
+ required: false
+ schema:
+ type: integer
+ format: int32
+ default: 0
+ - name: limit
+ in: query
+ description: Limit for pagination
+ required: false
+ schema:
+ maximum: 100
+ type: integer
+ format: int32
+ default: 20
+ responses:
+ "200":
+ description: Successful List operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ post:
+ tags:
+ - Tags
+ summary: Create Tag
+ description: Create Tag for Equinix Fabric?.
+ operationId: createTag
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagRequest"
+ required: true
+ responses:
+ "201":
+ description: Successful Create operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
components:
schemas:
CloudEventAssetType:
@@ -12747,6 +13618,7 @@ components:
- ports
- connections
- routers
+ - metros
- serviceTokens
- networks
- projects
@@ -12914,10 +13786,6 @@ components:
- ports
- connections
- metros
- MetricTypeQueryParams:
- type: string
- description: Name of the metric types
- example: equinix.fabric.port.bandwidth_rx.usage
Limit_1:
type: integer
description: Pagination limit
@@ -12933,6 +13801,20 @@ components:
description: Data returned from the API call.
items:
$ref: "#/components/schemas/Metric"
+ Value:
+ type: string
+ description: Which value to retrieve
+ example: last
+ GetMetricsByNameResponse:
+ type: object
+ properties:
+ pagination:
+ $ref: "#/components/schemas/Pagination"
+ data:
+ type: array
+ description: Data returned from the API call.
+ items:
+ $ref: "#/components/schemas/Metric"
MetricsSearchRequest:
required:
- filter
@@ -14279,7 +15161,7 @@ components:
type: string
description: Service Profile UUID
format: uuid
- JsonPatch:
+ JsonPatch_1:
type: array
items:
$ref: "#/components/schemas/JsonPatchOperation"
@@ -14478,7 +15360,7 @@ components:
description: List of Fabric Metros.
items:
$ref: "#/components/schemas/Metro"
- description: GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
Metro:
type: object
properties:
@@ -14523,7 +15405,7 @@ components:
description: List of supported geographic boundaries of a Fabric Metro.
items:
$ref: "#/components/schemas/GeoScopeType"
- description: GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
GeoCoordinates:
type: object
properties:
@@ -14567,6 +15449,10 @@ components:
- CANADA
- CONUS
- JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
MetroErrorList:
type: array
items:
@@ -18034,6 +18920,8 @@ components:
$ref: "#/components/schemas/Notification"
webUrl:
type: string
+ contactUrl:
+ type: string
CompanyProfileResponse:
type: object
properties:
@@ -18057,6 +18945,10 @@ components:
type: string
state:
$ref: "#/components/schemas/CompanyProfileState"
+ metros:
+ type: array
+ items:
+ $ref: "#/components/schemas/CompanyMetro"
logo:
$ref: "#/components/schemas/CompanyLogo"
tags:
@@ -18077,6 +18969,10 @@ components:
$ref: "#/components/schemas/Notification"
webUrl:
type: string
+ contactUrl:
+ type: string
+ change:
+ $ref: "#/components/schemas/CompanyProfileChange"
changeLog:
$ref: "#/components/schemas/Changelog"
PatchOperation:
@@ -18092,6 +18988,8 @@ components:
description: The operation to perform
enum:
- replace
+ - add
+ - remove
path:
minLength: 1
pattern: ^/
@@ -18101,13 +18999,6 @@ components:
value:
type: object
description: The value to update the field to
- CompanyProfileUpdateResponse:
- type: object
- properties:
- companyProfile:
- $ref: "#/components/schemas/CompanyProfileResponse"
- change:
- $ref: "#/components/schemas/CompanyProfileChange"
CompanyProfileSearchRequest:
type: object
properties:
@@ -18115,6 +19006,8 @@ components:
$ref: "#/components/schemas/CompanyProfileSearchFilter"
pagination:
$ref: "#/components/schemas/Pagination"
+ sort:
+ $ref: "#/components/schemas/Sort"
CompanyProfileSearchFilter:
type: object
properties:
@@ -18141,6 +19034,14 @@ components:
OperatorEnum:
type: string
description: Comparison operators for filtering
+ Sort:
+ type: object
+ properties:
+ property:
+ type: string
+ description: Property to sort by
+ direction:
+ $ref: "#/components/schemas/CompanyProfileSortDirection"
CompanyProfileSearchResponse:
required:
- data
@@ -18220,6 +19121,9 @@ components:
displayName:
type: string
example: Environment
+ weight:
+ type: integer
+ example: 10000
description: Equinix Fabric Tag Response Object
AttachTagResponse:
required:
@@ -18283,6 +19187,9 @@ components:
attachmentStatus:
type: string
description: Status of the attachment operation
+ extensionType:
+ type: string
+ description: Extension type of logo
LogoRequest:
required:
- description
@@ -18332,6 +19239,9 @@ components:
status:
type: string
example: CREATED
+ extensionType:
+ type: string
+ example: png
changelog:
$ref: "#/components/schemas/Changelog"
description: Equinix Fabric Logo Response Object
@@ -18835,7 +19745,6 @@ components:
ConnectionRouteTableEntry:
required:
- changeLog
- - state
- type
type: object
properties:
@@ -19132,6 +20041,37 @@ components:
value:
$ref: "#/components/schemas/RoutingProtocolBase"
description: Routing Protocol change operation data
+ PlatformChangelog:
+ type: object
+ properties:
+ createdBy:
+ type: string
+ description: Created by User Key
+ example: johnsmith
+ createdDateTime:
+ type: string
+ description: Created by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ updatedBy:
+ type: string
+ description: Updated by User Key
+ example: johnsmith
+ updatedDateTime:
+ type: string
+ description: Updated by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ deletedBy:
+ type: string
+ description: Deleted by User Key
+ example: johnsmith
+ deletedDateTime:
+ type: string
+ description: Deleted by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ description: Change log
SortDirection:
type: string
description: Sorting direction
@@ -19383,7 +20323,7 @@ components:
type: object
properties:
purchaseOrder:
- $ref: "#/components/schemas/PortOrder_purchaseOrder"
+ $ref: "#/components/schemas/PortOrderPurchaseOrder"
orderId:
type: string
description: Order Identification
@@ -19399,7 +20339,7 @@ components:
format: uuid
deprecated: true
signature:
- $ref: "#/components/schemas/PortOrder_signature"
+ $ref: "#/components/schemas/PortOrderSignature"
PortOperation:
type: object
properties:
@@ -20345,9 +21285,7 @@ components:
maximum: 9000
minimum: 16
type: integer
- description: |
- Ping Command DataBytes.
- This field is only applicable for commands of type `PING_COMMAND`.
+ description: "Ping Command DataBytes. \nThis field is only applicable for commands of type `PING_COMMAND`.\n"
example: 100
default: 64
probes:
@@ -20396,9 +21334,7 @@ components:
maximum: 9000
minimum: 16
type: integer
- description: |
- Ping Command DataBytes.
- This field is only applicable for commands of type `PING_COMMAND`.
+ description: "Ping Command DataBytes. \nThis field is only applicable for commands of type `PING_COMMAND`.\n"
example: 100
default: 64
interval:
@@ -21088,6 +22024,13 @@ components:
type: object
CompanyProfileState:
type: object
+ CompanyMetro:
+ type: object
+ properties:
+ href:
+ type: string
+ metroCode:
+ type: string
CompanyLogo:
type: object
properties:
@@ -21095,6 +22038,8 @@ components:
type: string
uuid:
type: string
+ extensionType:
+ type: string
CompanyServiceProfile:
type: object
properties:
@@ -21112,6 +22057,8 @@ components:
CompanyProfileChange:
type: object
properties:
+ uuid:
+ type: string
type:
type: string
status:
@@ -21119,8 +22066,18 @@ components:
createdDateTime:
type: string
format: date-time
+ updatedDateTime:
+ type: string
+ format: date-time
data:
$ref: "#/components/schemas/CompanyProfileChangeItem"
+ CompanyProfileSortDirection:
+ type: string
+ description: Sorting direction
+ default: ASC
+ enum:
+ - DESC
+ - ASC
ConnectionPriority:
type: string
description: Connection priority in redundancy group
@@ -21272,6 +22229,7 @@ components:
- DRAFT
- CANCELLED
- PENDING_INTERFACE_CONFIGURATION
+ - PENDING_ACTIVATION
RouteTableEntryType:
type: string
description: Route table entry type
@@ -21415,6 +22373,8 @@ components:
$ref: "#/components/schemas/VirtualPortConfiguration"
package:
$ref: "#/components/schemas/VirtualPortPackage"
+ serviceCode:
+ $ref: "#/components/schemas/VirtualPortServiceCode"
description: Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity.
TimeServicePrice:
type: object
@@ -21439,6 +22399,66 @@ components:
items:
$ref: "#/components/schemas/AccessPointSelector"
description: Connection link protocol,virtual device or network configuration
+ PortOrderPurchaseOrder:
+ type: object
+ properties:
+ number:
+ type: string
+ description: purchase order number
+ amount:
+ type: string
+ description: purchase order amount
+ startDate:
+ type: string
+ format: date-time
+ endDate:
+ type: string
+ format: date-time
+ attachmentId:
+ type: string
+ format: uuid
+ selectionType:
+ type: string
+ deprecated: true
+ enum:
+ - EXEMPTION
+ - EXISTING
+ - NEW
+ - BLANKET
+ type:
+ type: string
+ enum:
+ - EXEMPTION
+ - EXISTING
+ - NEW
+ - BLANKET
+ description: purchase order
+ PortOrderSignature:
+ type: object
+ properties:
+ signatory:
+ type: string
+ description: Port signature Type
+ enum:
+ - DELEGATE
+ - SELF
+ - ACCOUNT_SUPPORT
+ delegate:
+ $ref: "#/components/schemas/PortOrderSignatureDelegate"
+ description: Port signature details
+ PortOrderSignatureDelegate:
+ type: object
+ properties:
+ firstName:
+ type: string
+ description: first name of delegate
+ lastName:
+ type: string
+ description: last Name of delegate
+ email:
+ type: string
+ description: email of delegate
+ description: order delegate details
PortDeviceRedundancy:
type: object
properties:
@@ -22013,6 +23033,9 @@ components:
code:
$ref: "#/components/schemas/VirtualPortPackageCode"
description: Virtual Port Package
+ VirtualPortServiceCode:
+ type: string
+ description: Port service code.
TimeServicePriceConnection:
type: object
properties:
@@ -22368,6 +23391,36 @@ components:
items:
$ref: "#/components/schemas/ValidateRequest_filter_and"
description: Filters
+ Response_incomplete_details:
+ type: object
+ properties:
+ reason:
+ type: string
+ description: The reason why the response is incomplete.
+ enum:
+ - max_output_tokens
+ - content_filter
+ description: |
+ Details about why the response is incomplete.
+ nullable: true
+ ResponseUsage_input_tokens_details:
+ required:
+ - cached_tokens
+ type: object
+ properties:
+ cached_tokens:
+ type: integer
+ description: "The number of tokens that were retrieved from the cache. \n[More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).\n"
+ description: A detailed breakdown of the input tokens.
+ ResponseUsage_output_tokens_details:
+ required:
+ - reasoning_tokens
+ type: object
+ properties:
+ reasoning_tokens:
+ type: integer
+ description: The number of reasoning tokens.
+ description: A detailed breakdown of the output tokens.
Metric_resource:
type: object
properties:
@@ -22380,6 +23433,9 @@ components:
type:
type: string
description: Metric resource type
+ state:
+ type: string
+ description: Metric resource state
name:
type: string
description: Metric resource name
@@ -22413,66 +23469,6 @@ components:
href:
type: string
example: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809
- PortOrder_purchaseOrder:
- type: object
- properties:
- number:
- type: string
- description: purchase order number
- amount:
- type: string
- description: purchase order amount
- startDate:
- type: string
- format: datetime
- endDate:
- type: string
- format: datetime
- attachmentId:
- type: string
- format: uuid
- selectionType:
- type: string
- deprecated: true
- enum:
- - EXEMPTION
- - EXISTING
- - NEW
- - BLANKET
- type:
- type: string
- enum:
- - EXEMPTION
- - EXISTING
- - NEW
- - BLANKET
- description: purchase order
- PortOrder_signature_delegate:
- type: object
- properties:
- firstName:
- type: string
- description: name of delegate
- lastName:
- type: string
- description: last Name of delegate
- email:
- type: string
- description: email of delegate
- description: delegate oder details
- PortOrder_signature:
- type: object
- properties:
- signatory:
- type: string
- description: Port signature Type
- enum:
- - DELEGATE
- - SELF
- - ACCOUNT_SUPPORT
- delegate:
- $ref: "#/components/schemas/PortOrder_signature_delegate"
- description: Port signature Type
RouteTableEntry_connection:
type: object
properties:
@@ -22885,6 +23881,9 @@ components:
resource:
href: https://api.equinix.com/fabric/v4/ports/0689734d-25c6-40d1-a9ff-3e4edea07a72
uuid: 0689734d-25c6-40d1-a9ff-3e4edea07a72
+ type: XF_PORT
+ state: PROVISIONED
+ name: my-port-name
summary:
mean: 102.15384615384616
max: 107
@@ -22952,6 +23951,46 @@ components:
value: 251
- endDateTime: 2025-05-14T14:57:46.000Z
value: 243
+ get-metrics-by-name:
+ value:
+ pagination:
+ offset: 0
+ limit: 5000
+ total: 3
+ data:
+ - type: GAUGE
+ name: equinix.fabric.metro.at_am.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Amsterdam intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 94.8
+ - type: GAUGE
+ name: equinix.fabric.metro.at_ba.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Barcelona intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 111
+ - type: GAUGE
+ name: equinix.fabric.metro.at_bg.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Bogota intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 69.8
search-metrics:
value:
filter:
@@ -23820,7 +24859,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: NETWORK
@@ -24070,7 +25109,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: SP
@@ -24102,7 +25141,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: SP
@@ -24131,7 +25170,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24147,7 +25186,7 @@ components:
emails:
- test@equinix.com
- test1@equinix.com
- Vd2ColoVlanTag:
+ Vd2Colo-VlanTag:
value:
type: EVPL_VC
bandwidth: 1000
@@ -24160,7 +25199,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24190,7 +25229,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24220,7 +25259,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24252,7 +25291,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
serviceToken:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5
@@ -24525,6 +25564,35 @@ components:
- test@equinix.com
project:
projectId: "567"
+ Fcr2Sp-Alibaba:
+ value:
+ type: IP_VC
+ name: My-FCR-AlibabaConnection
+ bandwidth: 50
+ redundancy:
+ priority: PRIMARY
+ aSide:
+ accessPoint:
+ type: CLOUD_ROUTER
+ router:
+ uuid: 66a21614-1c4a-11ec-9621-0242ac130002
+ zSide:
+ accessPoint:
+ type: SP
+ profile:
+ type: L2_PROFILE
+ uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5
+ location:
+ metroCode: SV
+ authenticationKey: xx-xx-xx
+ sellerRegion: us-west-1
+ project:
+ projectId: "567"
+ notifications:
+ - type: ALL
+ emails:
+ - test@equinix.com
+ - test1@equinix.com
Fcr2Vd:
value:
type: IP_VC
@@ -24545,7 +25613,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
project:
projectId: "567"
notifications:
@@ -24574,7 +25642,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
project:
projectId: "567"
notifications:
@@ -25908,7 +26976,7 @@ components:
providerStatus: NOT_AVAILABLE
changeLog:
createdDateTime: 2022-10-05T19:37:12.748Z
- Vd2ServiceToken_Response:
+ Vd2ServiceToken-Response:
value:
href: https://api.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8
type: EVPL_VC
@@ -26010,6 +27078,9 @@ components:
virtualDevice:
type: EDGE
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
+ linkProtocol:
+ type: DOT1Q
+ vlanTag: 15229
interface:
uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d
type: NETWORK
@@ -27537,8 +28608,8 @@ components:
role: LEAF
Vd2IAProfile-Response:
value:
- type: IA_VC
href: https://uatapi.npclouda.equinix.com/fabric/v4/connections/ce42ca81-538d-4f38-b020-d45fb48d20c7
+ type: IA_VC
uuid: ce42ca81-538d-4f38-b020-d45fb48d20c7
name: vd2eia-connection-1
operation:
@@ -27585,8 +28656,8 @@ components:
uuid: 32d81829-0bf8-45d5-84e2-7289a553dbb6
Vd2NETWORK-Response:
value:
- type: EVPLAN_VC
href: https://api.equinix.com/fabric/v4/connections/e1f165fd-29bb-4c15-8ec7-56242677e6fc
+ type: EVPLAN_VC
uuid: e1f165fd-29bb-4c15-8ec7-56242677e6fc
name: vd2network-connection
operation:
@@ -27636,8 +28707,8 @@ components:
location: null
Vd2AwsSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/f0a954e7-bdc5-4727-90cc-869f990e289f
+ type: EVPL_VC
uuid: f0a954e7-bdc5-4727-90cc-869f990e289f
name: vd2aws-connection-1
operation:
@@ -27687,8 +28758,8 @@ components:
authenticationKey: xxxx-xxx-xxx
Vd2AzureSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/3da14bba-d81c-4497-93c3-3f4a3cb0bc40
+ type: EVPL_VC
uuid: 3da14bba-d81c-4497-93c3-3f4a3cb0bc40
name: vd2azure-connection-1
operation:
@@ -27737,8 +28808,8 @@ components:
authenticationKey: xxxx-xxx-xxxx
Vd2OracleSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/53c89f1a-0be7-44a1-9c03-28059632a72d
+ type: EVPL_VC
uuid: 53c89f1a-0be7-44a1-9c03-28059632a72d
name: vd2oracle-connection-1
operation:
@@ -27788,8 +28859,8 @@ components:
authenticationKey: ocid1.virtualcircuit.oc1
Vd2AlibabaSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/66ed4e8a-584c-4027-9788-748fecb5ce35
+ type: EVPL_VC
uuid: 66ed4e8a-584c-4027-9788-748fecb5ce35
name: vd2alibaba-connection-1
operation:
@@ -27838,8 +28909,8 @@ components:
authenticationKey: xxxx-xxx-xxxx
Vd2GoogleSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/50ae793c-b466-4d71-9724-c32b5e402bbe
+ type: EVPL_VC
uuid: 50ae793c-b466-4d71-9724-c32b5e402bbe
name: vd2googleSp-connection-1
operation:
@@ -30345,6 +31416,238 @@ components:
bfd:
enabled: true
interval: "100"
+ AllPeeringProtocolResponse:
+ value:
+ pagination:
+ offset: 0
+ limit: 10
+ total: 1
+ data:
+ - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: PROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ Peering_400:
+ value:
+ - errorCode: EQ-3067103
+ errorMessage: Peering Protocol does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId
+ correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec
+ details: Peering Protocol Service does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId
+ Peering_401:
+ value:
+ - errorCode: EQ-3067106
+ errorMessage: User not found in request or invalid.
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ Peering_403:
+ value:
+ - errorCode: EQ-3067102
+ errorMessage: Operation not allowed
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Operation not allowed for current user
+ Peering_404:
+ value:
+ - errorCode: EQ-3067101
+ errorMessage: Peering Protocol not found; it may not exist or could have already been deleted.
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Peering Protocol Service not found or already deleted
+ Peering_500:
+ value:
+ - errorCode: EQ-3067104
+ errorMessage: Internal Server Error
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Internal Server Error
+ PeeringProtocolCreateRequest:
+ value:
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ domainName: gw01.sin.example.net
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY12345
+ prefixes:
+ - 203.0.113.0/24
+ bgpIpv6:
+ domainName: gw01.sin.example.net
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY123456
+ prefixes:
+ - 2001:DB8:123::/48
+ PeeringProtocolResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: PROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ PeeringProtocolDeleteResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: DEPROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ rcMd5AuthKey: TESTMD5KEY123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ PeeringProtocolPatchRequest:
+ value:
+ - op: replace
+ path: /macAddress
+ value: 00:1A:2B:3C:4D:5E
+ PeeringProtocolPatchResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: REPROVISIONING
+ macAddress: 00:1A:2B:3C:4D:5E
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
ConnectionSearchDirection:
value:
filter:
@@ -31508,6 +32811,34 @@ components:
operator: =
values:
- "false"
+ VirtualPortProductIX:
+ value:
+ filter:
+ and:
+ - property: /type
+ operator: =
+ values:
+ - VIRTUAL_PORT_PRODUCT
+ - property: /port/location/ibx
+ operator: =
+ values:
+ - DA1
+ - property: /port/type
+ operator: =
+ values:
+ - XF_PORT
+ - property: /port/bandwidth
+ operator: =
+ values:
+ - "1000"
+ - property: /port/serviceCode
+ operator: =
+ values:
+ - IX
+ - property: /port/connectivitySource/type
+ operator: =
+ values:
+ - COLO
PrecisionTimeNtpStandardPackage:
value:
filter:
@@ -31745,6 +33076,36 @@ components:
serviceType: EPL
package:
code: UNLIMITED_PLUS
+ VirtualPortIX:
+ value:
+ pagination:
+ offset: 0
+ limit: 1
+ total: 1
+ data:
+ - type: VIRTUAL_PORT_PRODUCT
+ code: IX00008.PROD
+ name: Equinix Internet Exchange Port Product
+ description: Internet Exchange Port
+ account:
+ accountNumber: 200001
+ charges:
+ - type: MONTHLY_RECURRING
+ price: 500
+ - type: NON_RECURRING
+ price: 100
+ currency: USD
+ port:
+ type: XF_PORT
+ location:
+ ibx: DA1
+ lag:
+ enabled: false
+ physicalPortsQuantity: 1
+ bandwidth: 1000
+ connectivitySource:
+ type: COLO
+ serviceCode: IX
PrecisionTimeService:
value:
pagination:
@@ -33614,6 +34975,12 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33643,6 +35010,8 @@ components:
- uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: SELF
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33699,6 +35068,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33757,6 +35132,8 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: SELF
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33800,10 +35177,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: COLO
@@ -33831,10 +35204,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
RemoteMetroConnectBulkCreate:
value:
data:
@@ -33861,10 +35230,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: REMOTE
@@ -33888,10 +35253,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
ColoMetroConnectBulkCreateWithOrder:
value:
data:
@@ -33920,14 +35281,16 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: COLO
@@ -33953,14 +35316,16 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
ColoMetroConnectBulkResponseExample:
value:
data:
@@ -34257,6 +35622,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34319,6 +35690,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34404,6 +35781,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34462,6 +35845,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34587,6 +35976,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34646,6 +36041,12 @@ components:
order:
purchaseOrderNumber: 126758
orderNumber: 1-139105284200
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: Tom
+ lastName: Lim
+ email: tom.lim@company.com
project:
projectId: 66a2d2f7-b79b-49bc-8642-d2b3c1c138b4
account:
@@ -34732,6 +36133,14 @@ components:
services:
- type: ETHERNET_IP_SERVICE
- type: TIME_SERVICE
+ geoScopes:
+ - CANADA
+ - CONUS
+ - JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
400_metros:
value:
- errorCode: EQ-3036013
@@ -34810,6 +36219,14 @@ components:
services:
- type: ETHERNET_IP_SERVICE
- type: TIME_SERVICE
+ geoScopes:
+ - CANADA
+ - CONUS
+ - JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
400_metroCode:
value:
- errorCode: EQ-3036013
@@ -38961,6 +40378,19 @@ components:
emails:
- testEmail1@equinix.com
- testEmail2@equinix.com
+ UpdateTermLength:
+ value:
+ - op: replace
+ path: /order/termLength
+ value: 12
+ UpdatePackageAndTermLength:
+ value:
+ - op: replace
+ path: /package/code
+ value: PREMIUM
+ - op: replace
+ path: /order/termLength
+ value: 12
CloudRouterPatchResponseExample:
value:
href: https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d
@@ -38992,6 +40422,13 @@ components:
status: REQUESTED
createdDateTime: 2022-04-19T04:20:55.471Z
updatedDateTime: 2022-04-19T04:20:55.471Z
+ data:
+ - op: replace
+ path: /package/code
+ value: PREMIUM
+ - op: replace
+ path: /order/termLength
+ value: 12
changeLog:
createdBy: abc@xyz.com
createdByFullName: abc
@@ -39131,15 +40568,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -39313,15 +40742,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -39383,15 +40804,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -44064,18 +45477,12 @@ components:
correlationId: 11091aa7-322a-461e-b6af-40fd10543c94
additionalInfo:
- reason: Only accept DESC and ASC for sorting direction.
- PrivateLinkAttachDomain:
- value:
- subdomains:
- - equinixjira
PrivateLinkAttachDomainAttachResponse:
value:
href: /fabric/v4/privateLinks/23cd19ab-d3bb-478b-9f25-bd12a3af1914/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: ATTACHING
PrivateLink_400_InvalidAttachState:
value:
@@ -44089,8 +45496,6 @@ components:
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: DETACHING
PrivateLinkAttachDomainSearchFilterByStatus:
value:
@@ -44128,8 +45533,6 @@ components:
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: ATTACHED
PrivateLinkAttachService:
value:
@@ -44194,11 +45597,9 @@ components:
type: PRIVATE_SERVICE
name: Atlassian Private Service
description: Atlassian Private Service in SV
- domains:
- - name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44210,14 +45611,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONING
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44265,14 +45661,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONED
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44290,14 +45681,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: DEPROVISIONING
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44371,14 +45757,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONED
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44400,7 +45781,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44417,7 +45798,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONING
project:
@@ -44462,7 +45843,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONED
project:
@@ -44486,7 +45867,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: DEPROVISIONED
project:
@@ -44548,7 +45929,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONED
project:
@@ -44616,11 +45997,390 @@ components:
- errorCode: EQ-3222002
errorMessage: ENA is disabled for this user and/or user's organization
correlationId: 123e4567-e89b-12d3-a456-426614174000
- 500-internal-server-error:
+ 500-reactions-internal-server-error:
value:
- errorCode: EQ-3222100
errorMessage: Failed to store reaction
correlationId: 123e4567-e89b-12d3-a456-426614174000
+ standard-request:
+ value:
+ input:
+ - content:
+ - text: Which of my connections are at risk of exceeding their bandwidth limits?
+ type: input_text
+ role: user
+ type: message
+ string-input:
+ value:
+ input: Which of my connections are at risk of exceeding their bandwidth limits?
+ standard-streaming-request:
+ value:
+ input:
+ - content:
+ - text: Use the equinix_intelligence_search_docs tool to answer my questions about What is VPN
+ type: input_text
+ role: user
+ type: message
+ stream: true
+ response-chaining:
+ value:
+ input:
+ - content:
+ - text: Which of my connections are at risk of exceeding their bandwidth limits?
+ type: input_text
+ role: user
+ type: message
+ previous_response_id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ related-prompts-request:
+ value:
+ input:
+ - content:
+ - text: Use the equinix_intelligence_search_docs tool to answer my questions about What is VPN
+ type: input_text
+ role: user
+ type: message
+ metadata:
+ prompt_source: user/related_prompt
+ include_related_prompts: "true"
+ response_created:
+ summary: response.created
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: in_progress
+ sequence_number: 0
+ type: response.created
+ response_in_progress:
+ summary: response.in_progress
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: in_progress
+ sequence_number: 1
+ type: response.in_progress
+ response_output_item_added:
+ summary: response.output_item.added
+ value:
+ item:
+ id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ output_index: 0
+ sequence_number: 2
+ type: response.output_item.added
+ response_content_part_added:
+ summary: response.content_part.added
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ output_index: 0
+ part:
+ annotations: []
+ text: ""
+ type: output_text
+ sequence_number: 3
+ type: response.content_part.added
+ response_output_text_delta:
+ summary: response.output_text.delta
+ value:
+ content_index: 0
+ delta: I can retrieve that ? I just need one
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ logprobs: []
+ output_index: 0
+ sequence_number: 5
+ type: response.output_text.delta
+ response_output_text_done:
+ summary: response.output_text.done
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ logprobs: []
+ output_index: 0
+ sequence_number: 24
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: response.output_text.done
+ response_content_part_done:
+ summary: response.content_part.done
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ output_index: 0
+ part:
+ annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ sequence_number: 25
+ type: response.content_part.done
+ response_output_item_done:
+ summary: response.output_item.done
+ value:
+ item:
+ id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ output_index: 0
+ sequence_number: 26
+ type: response.output_item.done
+ response_completed:
+ summary: response.completed
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ metadata:
+ related_prompt_1: List streams
+ related_prompt_2: Get stream stream state & project
+ related_prompt_3: Search streams by name '' stream
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: completed
+ sequence_number: 27
+ type: response.completed
+ standard-response:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations: []
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ response-with-related-prompt:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ metadata:
+ related_prompt_1: Get Network Edge service IPsec/IKE example
+ related_prompt_2: Pair Network Edge service VPN with FCR router BGP config
+ related_prompt_3: Compare Equinix Fabric service vs VPN for metro SV (cost/latency/SLAs)
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations: []
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ response-with-annotations:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations:
+ - start_index: 0
+ end_index: 0
+ type: url_citation
+ title: ""
+ url: https://docs.equinix.com/managed-solutions/regional/united-kingdom/gms-uk-ips-infrastructure-platform-service
+ - start_index: 0
+ end_index: 0
+ type: url_citation
+ title: ""
+ url: https://docs.equinix.com/connecting-to-service-provider/fabric-connect-akamai
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ 500-responses-internal-server-error:
+ value:
+ - errorCode: EQ-3222201
+ errorMessage: |
+ I'm so sorry, we were unable to process your prompt due to a system level issue. Equinix Networking Assistant needs some tender, loving care. Please report this error to maintainers with error code EQ-3222201.
+ correlationId: 123e4567-e89b-12d3-a456-426614174000
+ response-deleted:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ deleted: true
+ object: response
+ input-items:
+ summary: Standard input items response
+ value:
+ data:
+ - id: msg_16fb930e-c71a-4cfc-9b5d-4871c6a98aef
+ content:
+ - annotations: []
+ text: |-
+ Results ? connections in DC with Fabric Cloud Router (FCR), active (limit 20)
+ .....
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ - id: msg_3920f72c-5172-42d1-8f5b-7eafd490411e
+ content:
+ - text: Show connections in DC with FCRs; active, either side, limit 20
+ type: input_text
+ role: user
+ first_id: msg_16fb930e-c71a-4cfc-9b5d-4871c6a98aef
+ has_more: false
+ last_id: msg_3920f72c-5172-42d1-8f5b-7eafd490411e
+ object: list
headers:
ETag:
description: response header - identifier for a specific version of a resource.
From d2af8933f8b057b308c88b0e59add1806892c53a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 17 Feb 2026 09:46:56 +0000
Subject: [PATCH 2/5] sync: patch spec with 2026-02-17 spec
---
.../fabricv4/oas3.patched/openapi.yaml | 2192 +++++++++++++++--
1 file changed, 1976 insertions(+), 216 deletions(-)
diff --git a/spec/services/fabricv4/oas3.patched/openapi.yaml b/spec/services/fabricv4/oas3.patched/openapi.yaml
index b243c140..1a5e3c71 100644
--- a/spec/services/fabricv4/oas3.patched/openapi.yaml
+++ b/spec/services/fabricv4/oas3.patched/openapi.yaml
@@ -9,7 +9,7 @@ info:
license:
name: Equinix Inc
url: https://developer.equinix.com/agreement
- version: "4.26"
+ version: "4.27"
externalDocs:
description: Find more information on Equinix Docs Portal
url: https://docs.equinix.com/fabric/
@@ -23,6 +23,8 @@ tags:
description: Cloud Events
- name: Cloud Routers
description: Cloud Routers
+ - name: Company Profiles
+ description: Company Profiles Beta
- name: Connections
description: Connections
- name: Metrics
@@ -295,11 +297,40 @@ paths:
$ref: "#/components/schemas/AssetId"
- name: name
in: query
- description: |
- Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
+ description: "Name of the metric types: \n- `equinix.fabric.connection.bandwidth_rx.usage`\n- `equinix.fabric.connection.bandwidth_tx.usage`\n- `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count`\n- `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count`\n- `equinix.fabric.port.bandwidth_rx.usage`\n- `equinix.fabric.port.bandwidth_tx.usage`\n- `equinix.fabric.port.packets_dropped_rx.count`\n- `equinix.fabric.port.packets_dropped_tx.count`\n- `equinix.fabric.port.packets_erred_rx.count`\n- `equinix.fabric.port.packets_erred_tx.count`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency`\n- `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg`\n"
required: true
schema:
- $ref: "#/components/schemas/MetricTypeQueryParams"
+ pattern: ^equinix\.fabric\.(connection|port|metro)\..+
+ type: string
+ examples:
+ connectionRxUsageExample:
+ value: equinix.fabric.connection.bandwidth_rx.usage
+ connectionTxUsageExample:
+ value: equinix.fabric.connection.bandwidth_tx.usage
+ connectionRxPacketAsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
+ connectionTxPacketAsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
+ connectionRxPacketZsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
+ connectionTxPacketZsideDroppedExample:
+ value: equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
+ portRxUsageExample:
+ value: equinix.fabric.port.bandwidth_rx.usage
+ portTxUsageExample:
+ value: equinix.fabric.port.bandwidth_tx.usage
+ portRxPacketDroppedExample:
+ value: equinix.fabric.port.packets_dropped_rx.count
+ portTxPacketDroppedExample:
+ value: equinix.fabric.port.packets_dropped_tx.count
+ portRxPacketErredExample:
+ value: equinix.fabric.port.packets_erred_rx.count
+ portTxPacketErredExample:
+ value: equinix.fabric.port.packets_erred_tx.count
+ metroLatencyExample:
+ value: equinix.fabric.metro.sv_dc.latency
+ metroJitterExample:
+ value: equinix.fabric.metro.sv_dc.jitter_avg
- name: fromDateTime
in: query
description: Start date and time
@@ -370,6 +401,90 @@ paths:
examples:
example:
$ref: "#/components/examples/500"
+ /fabric/v4/metrics:
+ get:
+ tags:
+ - Metrics
+ summary: Get Metrics by Name
+ description: This API provides capability to retrieve Metrics by specific wildcard metric types
+ operationId: getMetricByName
+ parameters:
+ - name: name
+ in: query
+ description: "Name of the metric types with wildcard: \n- `equinix.fabric.metro.*.latency`\n- `equinix.fabric.metro.*.jitter_avg`\n"
+ required: true
+ schema:
+ pattern: ^equinix\.fabric\.metro\.\*\..+
+ type: string
+ examples:
+ metroLatencyExample:
+ value: equinix.fabric.metro.*.latency
+ metroJitterExample:
+ value: equinix.fabric.metro.*.jitter_avg
+ - name: value
+ in: query
+ description: value
+ required: true
+ schema:
+ $ref: "#/components/schemas/Value"
+ - name: offset
+ in: query
+ description: offset
+ required: false
+ schema:
+ $ref: "#/components/schemas/Offset"
+ - name: limit
+ in: query
+ description: limit
+ required: false
+ schema:
+ $ref: "#/components/schemas/Limit_1"
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetMetricsByNameResponse"
+ examples:
+ Example:
+ $ref: "#/components/examples/get-metrics-by-name"
+ "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"
+ "500":
+ description: Internal server error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ examples:
+ example:
+ $ref: "#/components/examples/500"
/fabric/v4/metrics/search:
post:
tags:
@@ -537,7 +652,7 @@ paths:
Vd2Colo:
$ref: "#/components/examples/Vd2Colo"
Vd2Colo-vlanTag:
- $ref: "#/components/examples/Vd2ColoVlanTag"
+ $ref: "#/components/examples/Vd2Colo-VlanTag"
Vd2Colo-vlanCTag:
$ref: "#/components/examples/Vd2Colo-VlanCTag"
Vd2ColoUntagged:
@@ -564,6 +679,8 @@ paths:
$ref: "#/components/examples/Fcr2Sp-Aws"
Fcr2Sp-Oracle:
$ref: "#/components/examples/Fcr2Sp-Oracle"
+ Fcr2Sp-Alibaba:
+ $ref: "#/components/examples/Fcr2Sp-Alibaba"
Fcr2Vd:
$ref: "#/components/examples/Fcr2Vd"
Fcr2Vd-Redundant-Secondary:
@@ -679,7 +796,7 @@ paths:
Vd2Sp:
$ref: "#/components/examples/Vd2Sp-Response"
Vd2Token:
- $ref: "#/components/examples/Vd2ServiceToken_Response"
+ $ref: "#/components/examples/Vd2ServiceToken-Response"
Vd2Colo:
$ref: "#/components/examples/Vd2Colo-Response"
Vd2Colo-tag:
@@ -2622,6 +2739,8 @@ paths:
$ref: "#/components/examples/VirtualPortProduct"
virtualPortProductUPP:
$ref: "#/components/examples/VirtualPortProductUPP"
+ virtualPortProductIX:
+ $ref: "#/components/examples/VirtualPortProductIX"
precisionTimeProductNtpStandardPackageCode:
$ref: "#/components/examples/PrecisionTimeNtpStandardPackage"
precisionTimeProductNtpEnterprisePackageCode:
@@ -2649,6 +2768,8 @@ paths:
$ref: "#/components/examples/VirtualPort"
virtualPortUPP:
$ref: "#/components/examples/VirtualPortUPP"
+ virtualPortIX:
+ $ref: "#/components/examples/VirtualPortIX"
precisionTimeService:
$ref: "#/components/examples/PrecisionTimeService"
"400":
@@ -2882,7 +3003,7 @@ paths:
tags:
- Service Profiles
summary: Create Profile
- description: Create Service Profile creates Equinix Fabric™ Service Profile.
+ description: Create Service Profile creates Equinix Fabric? Service Profile.
operationId: createServiceProfile
parameters: []
requestBody:
@@ -3276,7 +3397,7 @@ paths:
content:
application/json-patch+json:
schema:
- $ref: "#/components/schemas/JsonPatch"
+ $ref: "#/components/schemas/JsonPatch_1"
examples:
ServiceProfilePatchRequest:
$ref: "#/components/examples/ServiceProfilePatchRequest"
@@ -3668,7 +3789,7 @@ paths:
tags:
- Service Tokens
summary: Create Service Token
- description: Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+ description: Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
operationId: createServiceToken
parameters:
- name: dryRun
@@ -4087,7 +4208,7 @@ paths:
tags:
- Ports
summary: Create Port
- description: Creates Equinix Fabric™ Port.
+ description: Creates Equinix Fabric? Port.
operationId: createPort
parameters:
- name: dryRun
@@ -8461,6 +8582,10 @@ paths:
$ref: "#/components/examples/UpdateName"
UpdateNotificationEmail:
$ref: "#/components/examples/UpdateNotifications"
+ UpdateTermLength:
+ $ref: "#/components/examples/UpdateTermLength"
+ UpdatePackageAndTermLength:
+ $ref: "#/components/examples/UpdatePackageAndTermLength"
required: true
responses:
"200":
@@ -12739,6 +12864,752 @@ paths:
examples:
example:
$ref: "#/components/examples/500"
+ /fabric/v4/companyProfiles:
+ post:
+ tags:
+ - Company Profiles
+ summary: Create Company Profile
+ description: Create a new company profile Beta
+ operationId: createCompanyProfile
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileRequest"
+ required: true
+ responses:
+ "201":
+ description: Company profile created successfully
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Company Profile by UUID
+ description: Get company profile details by UUID Beta
+ operationId: getCompanyProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Delete Company Profile
+ description: Delete company profile by UUID Beta
+ operationId: deleteCompanyProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ /fabric/v4/companyProfiles/search:
+ post:
+ tags:
+ - Company Profiles
+ summary: Search Company Profiles
+ description: Search company profiles based on filter criteria Beta
+ operationId: searchCompanyProfile
+ parameters:
+ - name: viewPoint
+ in: query
+ description: Viewpoint for the request, either 'aSide' or 'zSide'
+ required: false
+ schema:
+ type: string
+ default: aSide
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileSearchRequest"
+ required: true
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CompanyProfileSearchResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Service Profiles
+ description: Get all service profiles attached to a company profile Beta
+ operationId: getCompanyProfileServiceProfiles
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ServiceProfileListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Service Profile
+ description: Attach a service profile to a company profile Beta
+ operationId: attachServiceProfileToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: serviceProfileId
+ in: path
+ description: Service Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachServiceProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Service Profile
+ description: Detach a service profile from a company profile Beta
+ operationId: detachServiceProfileFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: serviceProfileId
+ in: path
+ description: Service Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachServiceProfileResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/tags":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Tags
+ description: Get all tags attached to a company profile Beta
+ operationId: getTags
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Tag
+ description: Attach a tag to a company profile Beta
+ operationId: attachTagToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: tagId
+ in: path
+ description: Tag UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachTagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Tag
+ description: Detach a tag from a company profile Beta
+ operationId: detachTagFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: tagId
+ in: path
+ description: Tag UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachTagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/privateServices":
+ get:
+ tags:
+ - Company Profiles
+ summary: Get Private Services
+ description: Get all private services attached to a company profile Beta
+ operationId: getCompanyProfilePrivateServices
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrivateServiceListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId}":
+ put:
+ tags:
+ - Company Profiles
+ summary: Attach Private Service
+ description: Attach a private service to a company profile Beta
+ operationId: attachPrivateServiceToProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: privateServiceId
+ in: path
+ description: Private Service UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachPrivateServiceResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Company Profiles
+ summary: Detach Private Service
+ description: Detach a private service from a company profile Beta
+ operationId: detachPrivateServiceFromProfile
+ parameters:
+ - name: companyProfileId
+ in: path
+ description: Company Profile UUID
+ required: true
+ schema:
+ type: string
+ - name: privateServiceId
+ in: path
+ description: Private Service UUID
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AttachPrivateServiceResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "/fabric/v4/logos/{uuid}":
+ get:
+ tags:
+ - Logos
+ summary: Get Logo
+ description: Get Logo by UUID
+ operationId: getLogoByUuid
+ parameters:
+ - name: uuid
+ in: path
+ description: UUID of the Logo
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "200":
+ description: Successful Get operation
+ content:
+ multipart/mixed:
+ schema:
+ type: string
+ format: binary
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ delete:
+ tags:
+ - Logos
+ summary: Delete Logo
+ description: Delete Logo by UUID
+ operationId: deleteLogoByUuid
+ parameters:
+ - name: uuid
+ in: path
+ description: UUID of the Logo
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "202":
+ description: Successful Delete operation
+ content:
+ application/json; charset=UTF-8:
+ schema:
+ $ref: "#/components/schemas/LogoResponse"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ /fabric/v4/tags:
+ get:
+ tags:
+ - Tags
+ summary: List Tags
+ description: Get all Tags
+ operationId: listTags
+ parameters:
+ - name: type
+ in: query
+ description: Filter by tag type
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: offset
+ in: query
+ description: Offset for pagination
+ required: false
+ schema:
+ type: integer
+ format: int32
+ default: 0
+ - name: limit
+ in: query
+ description: Limit for pagination
+ required: false
+ schema:
+ maximum: 100
+ type: integer
+ format: int32
+ default: 20
+ responses:
+ "200":
+ description: Successful List operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagListResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ post:
+ tags:
+ - Tags
+ summary: Create Tag
+ description: Create Tag for Equinix Fabric?.
+ operationId: createTag
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagRequest"
+ required: true
+ responses:
+ "201":
+ description: Successful Create operation
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TagResponse"
+ "400":
+ description: Bad request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ErrorList"
components:
schemas:
CloudEventAssetType:
@@ -12747,6 +13618,7 @@ components:
- ports
- connections
- routers
+ - metros
- serviceTokens
- networks
- projects
@@ -12914,10 +13786,6 @@ components:
- ports
- connections
- metros
- MetricTypeQueryParams:
- type: string
- description: Name of the metric types
- example: equinix.fabric.port.bandwidth_rx.usage
Limit_1:
type: integer
description: Pagination limit
@@ -12933,6 +13801,20 @@ components:
description: Data returned from the API call.
items:
$ref: "#/components/schemas/Metric"
+ Value:
+ type: string
+ description: Which value to retrieve
+ example: last
+ GetMetricsByNameResponse:
+ type: object
+ properties:
+ pagination:
+ $ref: "#/components/schemas/Pagination"
+ data:
+ type: array
+ description: Data returned from the API call.
+ items:
+ $ref: "#/components/schemas/Metric"
MetricsSearchRequest:
required:
- filter
@@ -14279,7 +15161,7 @@ components:
type: string
description: Service Profile UUID
format: uuid
- JsonPatch:
+ JsonPatch_1:
type: array
items:
$ref: "#/components/schemas/JsonPatchOperation"
@@ -14478,7 +15360,7 @@ components:
description: List of Fabric Metros.
items:
$ref: "#/components/schemas/Metro"
- description: GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
Metro:
type: object
properties:
@@ -14523,7 +15405,7 @@ components:
description: List of supported geographic boundaries of a Fabric Metro.
items:
$ref: "#/components/schemas/GeoScopeType"
- description: GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ description: GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
GeoCoordinates:
type: object
properties:
@@ -14567,6 +15449,10 @@ components:
- CANADA
- CONUS
- JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
MetroErrorList:
type: array
items:
@@ -18034,6 +18920,8 @@ components:
$ref: "#/components/schemas/Notification"
webUrl:
type: string
+ contactUrl:
+ type: string
CompanyProfileResponse:
type: object
properties:
@@ -18057,6 +18945,10 @@ components:
type: string
state:
$ref: "#/components/schemas/CompanyProfileState"
+ metros:
+ type: array
+ items:
+ $ref: "#/components/schemas/CompanyMetro"
logo:
$ref: "#/components/schemas/CompanyLogo"
tags:
@@ -18077,6 +18969,10 @@ components:
$ref: "#/components/schemas/Notification"
webUrl:
type: string
+ contactUrl:
+ type: string
+ change:
+ $ref: "#/components/schemas/CompanyProfileChange"
changeLog:
$ref: "#/components/schemas/Changelog"
PatchOperation:
@@ -18092,6 +18988,8 @@ components:
description: The operation to perform
enum:
- replace
+ - add
+ - remove
path:
minLength: 1
pattern: ^/
@@ -18101,13 +18999,6 @@ components:
value:
type: object
description: The value to update the field to
- CompanyProfileUpdateResponse:
- type: object
- properties:
- companyProfile:
- $ref: "#/components/schemas/CompanyProfileResponse"
- change:
- $ref: "#/components/schemas/CompanyProfileChange"
CompanyProfileSearchRequest:
type: object
properties:
@@ -18115,6 +19006,8 @@ components:
$ref: "#/components/schemas/CompanyProfileSearchFilter"
pagination:
$ref: "#/components/schemas/Pagination"
+ sort:
+ $ref: "#/components/schemas/Sort"
CompanyProfileSearchFilter:
type: object
properties:
@@ -18141,6 +19034,14 @@ components:
OperatorEnum:
type: string
description: Comparison operators for filtering
+ Sort:
+ type: object
+ properties:
+ property:
+ type: string
+ description: Property to sort by
+ direction:
+ $ref: "#/components/schemas/CompanyProfileSortDirection"
CompanyProfileSearchResponse:
required:
- data
@@ -18220,6 +19121,9 @@ components:
displayName:
type: string
example: Environment
+ weight:
+ type: integer
+ example: 10000
description: Equinix Fabric Tag Response Object
AttachTagResponse:
required:
@@ -18283,6 +19187,9 @@ components:
attachmentStatus:
type: string
description: Status of the attachment operation
+ extensionType:
+ type: string
+ description: Extension type of logo
LogoRequest:
required:
- description
@@ -18332,6 +19239,9 @@ components:
status:
type: string
example: CREATED
+ extensionType:
+ type: string
+ example: png
changelog:
$ref: "#/components/schemas/Changelog"
description: Equinix Fabric Logo Response Object
@@ -18833,7 +19743,6 @@ components:
ConnectionRouteTableEntry:
required:
- changeLog
- - state
- type
type: object
properties:
@@ -19130,6 +20039,37 @@ components:
value:
$ref: "#/components/schemas/RoutingProtocolBase"
description: Routing Protocol change operation data
+ PlatformChangelog:
+ type: object
+ properties:
+ createdBy:
+ type: string
+ description: Created by User Key
+ example: johnsmith
+ createdDateTime:
+ type: string
+ description: Created by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ updatedBy:
+ type: string
+ description: Updated by User Key
+ example: johnsmith
+ updatedDateTime:
+ type: string
+ description: Updated by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ deletedBy:
+ type: string
+ description: Deleted by User Key
+ example: johnsmith
+ deletedDateTime:
+ type: string
+ description: Deleted by Date and Time
+ format: date-time
+ example: 2020-11-06T07:00:00Z
+ description: Change log
SortDirection:
type: string
description: Sorting direction
@@ -19381,7 +20321,7 @@ components:
type: object
properties:
purchaseOrder:
- $ref: "#/components/schemas/PortOrder_purchaseOrder"
+ $ref: "#/components/schemas/PortOrderPurchaseOrder"
orderId:
type: string
description: Order Identification
@@ -19397,7 +20337,7 @@ components:
format: uuid
deprecated: true
signature:
- $ref: "#/components/schemas/PortOrder_signature"
+ $ref: "#/components/schemas/PortOrderSignature"
PortOperation:
type: object
properties:
@@ -20343,9 +21283,7 @@ components:
maximum: 9000
minimum: 16
type: integer
- description: |
- Ping Command DataBytes.
- This field is only applicable for commands of type `PING_COMMAND`.
+ description: "Ping Command DataBytes. \nThis field is only applicable for commands of type `PING_COMMAND`.\n"
example: 100
default: 64
probes:
@@ -20394,9 +21332,7 @@ components:
maximum: 9000
minimum: 16
type: integer
- description: |
- Ping Command DataBytes.
- This field is only applicable for commands of type `PING_COMMAND`.
+ description: "Ping Command DataBytes. \nThis field is only applicable for commands of type `PING_COMMAND`.\n"
example: 100
default: 64
interval:
@@ -21086,6 +22022,13 @@ components:
type: object
CompanyProfileState:
type: object
+ CompanyMetro:
+ type: object
+ properties:
+ href:
+ type: string
+ metroCode:
+ type: string
CompanyLogo:
type: object
properties:
@@ -21093,6 +22036,8 @@ components:
type: string
uuid:
type: string
+ extensionType:
+ type: string
CompanyServiceProfile:
type: object
properties:
@@ -21110,6 +22055,8 @@ components:
CompanyProfileChange:
type: object
properties:
+ uuid:
+ type: string
type:
type: string
status:
@@ -21117,8 +22064,18 @@ components:
createdDateTime:
type: string
format: date-time
+ updatedDateTime:
+ type: string
+ format: date-time
data:
$ref: "#/components/schemas/CompanyProfileChangeItem"
+ CompanyProfileSortDirection:
+ type: string
+ description: Sorting direction
+ default: ASC
+ enum:
+ - DESC
+ - ASC
ConnectionPriority:
type: string
description: Connection priority in redundancy group
@@ -21270,6 +22227,7 @@ components:
- DRAFT
- CANCELLED
- PENDING_INTERFACE_CONFIGURATION
+ - PENDING_ACTIVATION
RouteTableEntryType:
type: string
description: Route table entry type
@@ -21413,6 +22371,8 @@ components:
$ref: "#/components/schemas/VirtualPortConfiguration"
package:
$ref: "#/components/schemas/VirtualPortPackage"
+ serviceCode:
+ $ref: "#/components/schemas/VirtualPortServiceCode"
description: Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity.
TimeServicePrice:
type: object
@@ -21437,6 +22397,66 @@ components:
items:
$ref: "#/components/schemas/AccessPointSelector"
description: Connection link protocol,virtual device or network configuration
+ PortOrderPurchaseOrder:
+ type: object
+ properties:
+ number:
+ type: string
+ description: purchase order number
+ amount:
+ type: string
+ description: purchase order amount
+ startDate:
+ type: string
+ format: date-time
+ endDate:
+ type: string
+ format: date-time
+ attachmentId:
+ type: string
+ format: uuid
+ selectionType:
+ type: string
+ deprecated: true
+ enum:
+ - EXEMPTION
+ - EXISTING
+ - NEW
+ - BLANKET
+ type:
+ type: string
+ enum:
+ - EXEMPTION
+ - EXISTING
+ - NEW
+ - BLANKET
+ description: purchase order
+ PortOrderSignature:
+ type: object
+ properties:
+ signatory:
+ type: string
+ description: Port signature Type
+ enum:
+ - DELEGATE
+ - SELF
+ - ACCOUNT_SUPPORT
+ delegate:
+ $ref: "#/components/schemas/PortOrderSignatureDelegate"
+ description: Port signature details
+ PortOrderSignatureDelegate:
+ type: object
+ properties:
+ firstName:
+ type: string
+ description: first name of delegate
+ lastName:
+ type: string
+ description: last Name of delegate
+ email:
+ type: string
+ description: email of delegate
+ description: order delegate details
PortDeviceRedundancy:
type: object
properties:
@@ -22011,6 +23031,9 @@ components:
code:
$ref: "#/components/schemas/VirtualPortPackageCode"
description: Virtual Port Package
+ VirtualPortServiceCode:
+ type: string
+ description: Port service code.
TimeServicePriceConnection:
type: object
properties:
@@ -22366,6 +23389,36 @@ components:
items:
$ref: "#/components/schemas/ValidateRequest_filter_and"
description: Filters
+ Response_incomplete_details:
+ type: object
+ properties:
+ reason:
+ type: string
+ description: The reason why the response is incomplete.
+ enum:
+ - max_output_tokens
+ - content_filter
+ description: |
+ Details about why the response is incomplete.
+ nullable: true
+ ResponseUsage_input_tokens_details:
+ required:
+ - cached_tokens
+ type: object
+ properties:
+ cached_tokens:
+ type: integer
+ description: "The number of tokens that were retrieved from the cache. \n[More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).\n"
+ description: A detailed breakdown of the input tokens.
+ ResponseUsage_output_tokens_details:
+ required:
+ - reasoning_tokens
+ type: object
+ properties:
+ reasoning_tokens:
+ type: integer
+ description: The number of reasoning tokens.
+ description: A detailed breakdown of the output tokens.
Metric_resource:
type: object
properties:
@@ -22378,6 +23431,9 @@ components:
type:
type: string
description: Metric resource type
+ state:
+ type: string
+ description: Metric resource state
name:
type: string
description: Metric resource name
@@ -22411,66 +23467,6 @@ components:
href:
type: string
example: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809
- PortOrder_purchaseOrder:
- type: object
- properties:
- number:
- type: string
- description: purchase order number
- amount:
- type: string
- description: purchase order amount
- startDate:
- type: string
- format: datetime
- endDate:
- type: string
- format: datetime
- attachmentId:
- type: string
- format: uuid
- selectionType:
- type: string
- deprecated: true
- enum:
- - EXEMPTION
- - EXISTING
- - NEW
- - BLANKET
- type:
- type: string
- enum:
- - EXEMPTION
- - EXISTING
- - NEW
- - BLANKET
- description: purchase order
- PortOrder_signature_delegate:
- type: object
- properties:
- firstName:
- type: string
- description: name of delegate
- lastName:
- type: string
- description: last Name of delegate
- email:
- type: string
- description: email of delegate
- description: delegate oder details
- PortOrder_signature:
- type: object
- properties:
- signatory:
- type: string
- description: Port signature Type
- enum:
- - DELEGATE
- - SELF
- - ACCOUNT_SUPPORT
- delegate:
- $ref: "#/components/schemas/PortOrder_signature_delegate"
- description: Port signature Type
RouteTableEntry_connection:
type: object
properties:
@@ -22883,6 +23879,9 @@ components:
resource:
href: https://api.equinix.com/fabric/v4/ports/0689734d-25c6-40d1-a9ff-3e4edea07a72
uuid: 0689734d-25c6-40d1-a9ff-3e4edea07a72
+ type: XF_PORT
+ state: PROVISIONED
+ name: my-port-name
summary:
mean: 102.15384615384616
max: 107
@@ -22950,6 +23949,46 @@ components:
value: 251
- endDateTime: 2025-05-14T14:57:46.000Z
value: 243
+ get-metrics-by-name:
+ value:
+ pagination:
+ offset: 0
+ limit: 5000
+ total: 3
+ data:
+ - type: GAUGE
+ name: equinix.fabric.metro.at_am.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Amsterdam intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 94.8
+ - type: GAUGE
+ name: equinix.fabric.metro.at_ba.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Barcelona intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 111
+ - type: GAUGE
+ name: equinix.fabric.metro.at_bg.latency
+ unit: ms
+ resource:
+ href: https://uatapi.equinix.com/fabric/v4/metros/AT
+ type: XF_METRO
+ code: AT
+ description: Atlanta to Bogota intermetro latency, average in milliseconds
+ datapoints:
+ - endDateTime: 2026-02-03T23:05:04Z
+ value: 69.8
search-metrics:
value:
filter:
@@ -23818,7 +24857,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: NETWORK
@@ -24068,7 +25107,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: SP
@@ -24100,7 +25139,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: SP
@@ -24129,7 +25168,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24145,7 +25184,7 @@ components:
emails:
- test@equinix.com
- test1@equinix.com
- Vd2ColoVlanTag:
+ Vd2Colo-VlanTag:
value:
type: EVPL_VC
bandwidth: 1000
@@ -24158,7 +25197,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24188,7 +25227,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24218,7 +25257,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
accessPoint:
type: COLO
@@ -24250,7 +25289,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
zSide:
serviceToken:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5
@@ -24523,6 +25562,35 @@ components:
- test@equinix.com
project:
projectId: "567"
+ Fcr2Sp-Alibaba:
+ value:
+ type: IP_VC
+ name: My-FCR-AlibabaConnection
+ bandwidth: 50
+ redundancy:
+ priority: PRIMARY
+ aSide:
+ accessPoint:
+ type: CLOUD_ROUTER
+ router:
+ uuid: 66a21614-1c4a-11ec-9621-0242ac130002
+ zSide:
+ accessPoint:
+ type: SP
+ profile:
+ type: L2_PROFILE
+ uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5
+ location:
+ metroCode: SV
+ authenticationKey: xx-xx-xx
+ sellerRegion: us-west-1
+ project:
+ projectId: "567"
+ notifications:
+ - type: ALL
+ emails:
+ - test@equinix.com
+ - test1@equinix.com
Fcr2Vd:
value:
type: IP_VC
@@ -24543,7 +25611,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
project:
projectId: "567"
notifications:
@@ -24572,7 +25640,7 @@ components:
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
interface:
type: NETWORK
- id: 45645
+ id: 3
project:
projectId: "567"
notifications:
@@ -25906,7 +26974,7 @@ components:
providerStatus: NOT_AVAILABLE
changeLog:
createdDateTime: 2022-10-05T19:37:12.748Z
- Vd2ServiceToken_Response:
+ Vd2ServiceToken-Response:
value:
href: https://api.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8
type: EVPL_VC
@@ -26008,6 +27076,9 @@ components:
virtualDevice:
type: EDGE
uuid: 20d32a80-0d61-4333-bc03-707b591ae2f4
+ linkProtocol:
+ type: DOT1Q
+ vlanTag: 15229
interface:
uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d
type: NETWORK
@@ -27535,8 +28606,8 @@ components:
role: LEAF
Vd2IAProfile-Response:
value:
- type: IA_VC
href: https://uatapi.npclouda.equinix.com/fabric/v4/connections/ce42ca81-538d-4f38-b020-d45fb48d20c7
+ type: IA_VC
uuid: ce42ca81-538d-4f38-b020-d45fb48d20c7
name: vd2eia-connection-1
operation:
@@ -27583,8 +28654,8 @@ components:
uuid: 32d81829-0bf8-45d5-84e2-7289a553dbb6
Vd2NETWORK-Response:
value:
- type: EVPLAN_VC
href: https://api.equinix.com/fabric/v4/connections/e1f165fd-29bb-4c15-8ec7-56242677e6fc
+ type: EVPLAN_VC
uuid: e1f165fd-29bb-4c15-8ec7-56242677e6fc
name: vd2network-connection
operation:
@@ -27634,8 +28705,8 @@ components:
location: null
Vd2AwsSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/f0a954e7-bdc5-4727-90cc-869f990e289f
+ type: EVPL_VC
uuid: f0a954e7-bdc5-4727-90cc-869f990e289f
name: vd2aws-connection-1
operation:
@@ -27685,8 +28756,8 @@ components:
authenticationKey: xxxx-xxx-xxx
Vd2AzureSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/3da14bba-d81c-4497-93c3-3f4a3cb0bc40
+ type: EVPL_VC
uuid: 3da14bba-d81c-4497-93c3-3f4a3cb0bc40
name: vd2azure-connection-1
operation:
@@ -27735,8 +28806,8 @@ components:
authenticationKey: xxxx-xxx-xxxx
Vd2OracleSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/53c89f1a-0be7-44a1-9c03-28059632a72d
+ type: EVPL_VC
uuid: 53c89f1a-0be7-44a1-9c03-28059632a72d
name: vd2oracle-connection-1
operation:
@@ -27786,8 +28857,8 @@ components:
authenticationKey: ocid1.virtualcircuit.oc1
Vd2AlibabaSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/66ed4e8a-584c-4027-9788-748fecb5ce35
+ type: EVPL_VC
uuid: 66ed4e8a-584c-4027-9788-748fecb5ce35
name: vd2alibaba-connection-1
operation:
@@ -27836,8 +28907,8 @@ components:
authenticationKey: xxxx-xxx-xxxx
Vd2GoogleSP-Response:
value:
- type: EVPL_VC
href: https://api.equinix.com/fabric/v4/connections/50ae793c-b466-4d71-9724-c32b5e402bbe
+ type: EVPL_VC
uuid: 50ae793c-b466-4d71-9724-c32b5e402bbe
name: vd2googleSp-connection-1
operation:
@@ -30343,6 +31414,238 @@ components:
bfd:
enabled: true
interval: "100"
+ AllPeeringProtocolResponse:
+ value:
+ pagination:
+ offset: 0
+ limit: 10
+ total: 1
+ data:
+ - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: PROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ Peering_400:
+ value:
+ - errorCode: EQ-3067103
+ errorMessage: Peering Protocol does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId
+ correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec
+ details: Peering Protocol Service does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId
+ Peering_401:
+ value:
+ - errorCode: EQ-3067106
+ errorMessage: User not found in request or invalid.
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ Peering_403:
+ value:
+ - errorCode: EQ-3067102
+ errorMessage: Operation not allowed
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Operation not allowed for current user
+ Peering_404:
+ value:
+ - errorCode: EQ-3067101
+ errorMessage: Peering Protocol not found; it may not exist or could have already been deleted.
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Peering Protocol Service not found or already deleted
+ Peering_500:
+ value:
+ - errorCode: EQ-3067104
+ errorMessage: Internal Server Error
+ correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515
+ details: Internal Server Error
+ PeeringProtocolCreateRequest:
+ value:
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ domainName: gw01.sin.example.net
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY12345
+ prefixes:
+ - 203.0.113.0/24
+ bgpIpv6:
+ domainName: gw01.sin.example.net
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY123456
+ prefixes:
+ - 2001:DB8:123::/48
+ PeeringProtocolResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: PROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ PeeringProtocolDeleteResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: DEPROVISIONING
+ macAddress: 00:11:22:33:44:55
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5KEY12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ rcMd5AuthKey: TESTMD5KEY123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
+ PeeringProtocolPatchRequest:
+ value:
+ - op: replace
+ path: /macAddress
+ value: 00:1A:2B:3C:4D:5E
+ PeeringProtocolPatchResponse:
+ value:
+ href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011
+ uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011
+ type: BGP
+ name: ix_bgp
+ description: ix_bgp
+ customerAsn: 5555
+ vlan: 99
+ routeServerAsn: 24115
+ state: REPROVISIONING
+ macAddress: 00:1A:2B:3C:4D:5E
+ bgpIpv4:
+ customerPeerIp: 12.1.1.1
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 10.1.1.1
+ secondaryRouteServerIp: 10.1.1.2
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key12345
+ prefixes:
+ - 203.0.113.0/24
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ bgpIpv6:
+ customerPeerIp: 2001:db8:c59b::22
+ domainName: gw01.sin.example.net
+ primaryRouteServerIp: 2001:db8:c59b::33
+ secondaryRouteServerIp: 2001:db8:c59b::322
+ asSet: AS-EC-SV
+ mlpeEnabled: true
+ md5AuthKey: TESTMD5Key123456
+ prefixes:
+ - 2001:DB8:123::/48
+ maxPrefixLimit: 300
+ prependSelfEnabled: true
+ routeCollector:
+ asn: 1238
+ ipV4: 10.255.255.254
+ ipV6: 2001:db8:85a3::8a2e:370:7334
+ changelog:
+ createdBy: "12345"
+ createdDateTime: 2025-08-30T07:21:39Z
ConnectionSearchDirection:
value:
filter:
@@ -31506,6 +32809,34 @@ components:
operator: =
values:
- "false"
+ VirtualPortProductIX:
+ value:
+ filter:
+ and:
+ - property: /type
+ operator: =
+ values:
+ - VIRTUAL_PORT_PRODUCT
+ - property: /port/location/ibx
+ operator: =
+ values:
+ - DA1
+ - property: /port/type
+ operator: =
+ values:
+ - XF_PORT
+ - property: /port/bandwidth
+ operator: =
+ values:
+ - "1000"
+ - property: /port/serviceCode
+ operator: =
+ values:
+ - IX
+ - property: /port/connectivitySource/type
+ operator: =
+ values:
+ - COLO
PrecisionTimeNtpStandardPackage:
value:
filter:
@@ -31743,6 +33074,36 @@ components:
serviceType: EPL
package:
code: UNLIMITED_PLUS
+ VirtualPortIX:
+ value:
+ pagination:
+ offset: 0
+ limit: 1
+ total: 1
+ data:
+ - type: VIRTUAL_PORT_PRODUCT
+ code: IX00008.PROD
+ name: Equinix Internet Exchange Port Product
+ description: Internet Exchange Port
+ account:
+ accountNumber: 200001
+ charges:
+ - type: MONTHLY_RECURRING
+ price: 500
+ - type: NON_RECURRING
+ price: 100
+ currency: USD
+ port:
+ type: XF_PORT
+ location:
+ ibx: DA1
+ lag:
+ enabled: false
+ physicalPortsQuantity: 1
+ bandwidth: 1000
+ connectivitySource:
+ type: COLO
+ serviceCode: IX
PrecisionTimeService:
value:
pagination:
@@ -33612,6 +34973,12 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33641,6 +35008,8 @@ components:
- uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: SELF
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33697,6 +35066,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33755,6 +35130,8 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: SELF
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -33798,10 +35175,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: COLO
@@ -33829,10 +35202,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
RemoteMetroConnectBulkCreate:
value:
data:
@@ -33859,10 +35228,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: REMOTE
@@ -33886,10 +35251,6 @@ components:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
ColoMetroConnectBulkCreateWithOrder:
value:
data:
@@ -33918,14 +35279,16 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
- type: FABRIC_MC
bandwidth: 10000
connectionDestinationType: COLO
@@ -33951,14 +35314,16 @@ components:
ibx: SV2
order:
purchaseOrderNumber: 156576
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
accountNumber: 270848
- notifications:
- - type: ALL
- emails:
- - test@test.com
ColoMetroConnectBulkResponseExample:
value:
data:
@@ -34255,6 +35620,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34317,6 +35688,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34402,6 +35779,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34460,6 +35843,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34585,6 +35974,12 @@ components:
order:
purchaseOrderNumber: 156576
orderNumber: 1-129105284100
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: John
+ lastName: Doe
+ email: john.doe@company.com
project:
projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931
account:
@@ -34644,6 +36039,12 @@ components:
order:
purchaseOrderNumber: 126758
orderNumber: 1-139105284200
+ signature:
+ signatory: DELEGATE
+ delegate:
+ firstName: Tom
+ lastName: Lim
+ email: tom.lim@company.com
project:
projectId: 66a2d2f7-b79b-49bc-8642-d2b3c1c138b4
account:
@@ -34730,6 +36131,14 @@ components:
services:
- type: ETHERNET_IP_SERVICE
- type: TIME_SERVICE
+ geoScopes:
+ - CANADA
+ - CONUS
+ - JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
400_metros:
value:
- errorCode: EQ-3036013
@@ -34808,6 +36217,14 @@ components:
services:
- type: ETHERNET_IP_SERVICE
- type: TIME_SERVICE
+ geoScopes:
+ - CANADA
+ - CONUS
+ - JAPAN
+ - UK
+ - AUSTRALIA
+ - BRAZIL
+ - SWITZERLAND
400_metroCode:
value:
- errorCode: EQ-3036013
@@ -38959,6 +40376,19 @@ components:
emails:
- testEmail1@equinix.com
- testEmail2@equinix.com
+ UpdateTermLength:
+ value:
+ - op: replace
+ path: /order/termLength
+ value: 12
+ UpdatePackageAndTermLength:
+ value:
+ - op: replace
+ path: /package/code
+ value: PREMIUM
+ - op: replace
+ path: /order/termLength
+ value: 12
CloudRouterPatchResponseExample:
value:
href: https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d
@@ -38990,6 +40420,13 @@ components:
status: REQUESTED
createdDateTime: 2022-04-19T04:20:55.471Z
updatedDateTime: 2022-04-19T04:20:55.471Z
+ data:
+ - op: replace
+ path: /package/code
+ value: PREMIUM
+ - op: replace
+ path: /order/termLength
+ value: 12
changeLog:
createdBy: abc@xyz.com
createdByFullName: abc
@@ -39129,15 +40566,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -39311,15 +40740,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -39381,15 +40802,7 @@ components:
count: 5
interval: 1000
response:
- output: |-
- PING 8.8.8.8 (8.8.8.8): 100 data bytes
- 108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms
- 108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms
- 108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms
- 108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms
- --- 8.8.8.8 ping statistics ---
- 4 packets transmitted, 4 packets received, 0.0% packet loss
- round-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms
+ output: "PING 8.8.8.8 (8.8.8.8): 100 data bytes\n108 bytes from 8.8.8.8: icmp_seq=0 ttl=117 time=9.839 ms\n108 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=16.051 ms\n108 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.271 ms\n108 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=26.771 ms \n--- 8.8.8.8 ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 9.271/15.483/26.771/7.039 ms"
outputStructuredPing:
destinationIp: 8.8.8.8
destinationName: 8.8.8.8
@@ -44062,18 +45475,12 @@ components:
correlationId: 11091aa7-322a-461e-b6af-40fd10543c94
additionalInfo:
- reason: Only accept DESC and ASC for sorting direction.
- PrivateLinkAttachDomain:
- value:
- subdomains:
- - equinixjira
PrivateLinkAttachDomainAttachResponse:
value:
href: /fabric/v4/privateLinks/23cd19ab-d3bb-478b-9f25-bd12a3af1914/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: ATTACHING
PrivateLink_400_InvalidAttachState:
value:
@@ -44087,8 +45494,6 @@ components:
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: DETACHING
PrivateLinkAttachDomainSearchFilterByStatus:
value:
@@ -44126,8 +45531,6 @@ components:
uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
type: PRIVATE_DOMAIN
name: atlassian.net
- subdomains:
- - equinixjira
attachmentStatus: ATTACHED
PrivateLinkAttachService:
value:
@@ -44192,11 +45595,9 @@ components:
type: PRIVATE_SERVICE
name: Atlassian Private Service
description: Atlassian Private Service in SV
- domains:
- - name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44208,14 +45609,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONING
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44263,14 +45659,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONED
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44288,14 +45679,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: DEPROVISIONING
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44369,14 +45755,9 @@ components:
name: Atlassian Private Service
description: Atlassian Private Service in SV
state: PROVISIONED
- domains:
- - href: https://api.equinix.com/fabric/v4/privateDomains/20f3ef8e-d670-4236-86fa-bb0038adcfc3
- uuid: 20f3ef8e-d670-4236-86fa-bb0038adcfc3
- type: PRIVATE_DOMAIN
- name: atlassian.net
- subdomains:
- - equinixjira
- sourceDomainNames:
+ endpoints:
+ - equinixjira.atlassian.net
+ sourceDomains:
- equinix.com
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44398,7 +45779,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
project:
projectId: 71b55fef-fd2e-402f-ae3c-01d5f00bf2d4
@@ -44415,7 +45796,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONING
project:
@@ -44460,7 +45841,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONED
project:
@@ -44484,7 +45865,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: DEPROVISIONED
project:
@@ -44546,7 +45927,7 @@ components:
target:
privateService:
uuid: e18c15f4-c8aa-4c18-9e35-a7e9b288201d
- geoScope: CONUS
+ geoScope: GLOBAL
prioritization: LATENCY
state: PROVISIONED
project:
@@ -44614,11 +45995,390 @@ components:
- errorCode: EQ-3222002
errorMessage: ENA is disabled for this user and/or user's organization
correlationId: 123e4567-e89b-12d3-a456-426614174000
- 500-internal-server-error:
+ 500-reactions-internal-server-error:
value:
- errorCode: EQ-3222100
errorMessage: Failed to store reaction
correlationId: 123e4567-e89b-12d3-a456-426614174000
+ standard-request:
+ value:
+ input:
+ - content:
+ - text: Which of my connections are at risk of exceeding their bandwidth limits?
+ type: input_text
+ role: user
+ type: message
+ string-input:
+ value:
+ input: Which of my connections are at risk of exceeding their bandwidth limits?
+ standard-streaming-request:
+ value:
+ input:
+ - content:
+ - text: Use the equinix_intelligence_search_docs tool to answer my questions about What is VPN
+ type: input_text
+ role: user
+ type: message
+ stream: true
+ response-chaining:
+ value:
+ input:
+ - content:
+ - text: Which of my connections are at risk of exceeding their bandwidth limits?
+ type: input_text
+ role: user
+ type: message
+ previous_response_id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ related-prompts-request:
+ value:
+ input:
+ - content:
+ - text: Use the equinix_intelligence_search_docs tool to answer my questions about What is VPN
+ type: input_text
+ role: user
+ type: message
+ metadata:
+ prompt_source: user/related_prompt
+ include_related_prompts: "true"
+ response_created:
+ summary: response.created
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: in_progress
+ sequence_number: 0
+ type: response.created
+ response_in_progress:
+ summary: response.in_progress
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: in_progress
+ sequence_number: 1
+ type: response.in_progress
+ response_output_item_added:
+ summary: response.output_item.added
+ value:
+ item:
+ id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: ""
+ type: output_text
+ role: assistant
+ status: in_progress
+ type: message
+ output_index: 0
+ sequence_number: 2
+ type: response.output_item.added
+ response_content_part_added:
+ summary: response.content_part.added
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ output_index: 0
+ part:
+ annotations: []
+ text: ""
+ type: output_text
+ sequence_number: 3
+ type: response.content_part.added
+ response_output_text_delta:
+ summary: response.output_text.delta
+ value:
+ content_index: 0
+ delta: I can retrieve that ? I just need one
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ logprobs: []
+ output_index: 0
+ sequence_number: 5
+ type: response.output_text.delta
+ response_output_text_done:
+ summary: response.output_text.done
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ logprobs: []
+ output_index: 0
+ sequence_number: 24
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: response.output_text.done
+ response_content_part_done:
+ summary: response.content_part.done
+ value:
+ content_index: 0
+ item_id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ output_index: 0
+ part:
+ annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ sequence_number: 25
+ type: response.content_part.done
+ response_output_item_done:
+ summary: response.output_item.done
+ value:
+ item:
+ id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ output_index: 0
+ sequence_number: 26
+ type: response.output_item.done
+ response_completed:
+ summary: response.completed
+ value:
+ response:
+ id: resp_4542cc2f-7e4c-4694-a5fb-7797a150d0e0
+ created_at: 1765358850.078279
+ metadata:
+ related_prompt_1: List streams
+ related_prompt_2: Get stream stream state & project
+ related_prompt_3: Search streams by name '' stream
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_155f9af1-2931-4258-ae22-c34d2b138e4d
+ content:
+ - annotations: []
+ text: |-
+ I can retrieve that ? I just need one detail from you.
+
+ What I need
+ - Provide the stream UUID (preferred) ? e.g., the stream's unique ID.
+ - Or, if you don't have the UUID, tell me the stream name (or confirm you want me to list your streams so you can pick one).
+
+ Options I can perform for you
+ - If you give a stream UUID ? I'll fetch the stream details and return the stream state and project ID.
+ - If you give a stream name ? I can search/list streams matching that name (you may need to pick the correct one) and then fetch details.
+ - If you ask me to list streams now ? I can return a paged list of your streams so you can choose which to inspect.
+
+ Tell me which option you prefer and, if available, paste the stream UUID (or stream name).
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ status: completed
+ sequence_number: 27
+ type: response.completed
+ standard-response:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations: []
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ response-with-related-prompt:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ metadata:
+ related_prompt_1: Get Network Edge service IPsec/IKE example
+ related_prompt_2: Pair Network Edge service VPN with FCR router BGP config
+ related_prompt_3: Compare Equinix Fabric service vs VPN for metro SV (cost/latency/SLAs)
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations: []
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ response-with-annotations:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ created_at: 1765339923
+ model: ena-agent
+ object: response
+ output:
+ - id: msg_14af23c6-15ea-4f11-8fa6-0cc80ffba850
+ content:
+ - annotations:
+ - start_index: 0
+ end_index: 0
+ type: url_citation
+ title: ""
+ url: https://docs.equinix.com/managed-solutions/regional/united-kingdom/gms-uk-ips-infrastructure-platform-service
+ - start_index: 0
+ end_index: 0
+ type: url_citation
+ title: ""
+ url: https://docs.equinix.com/connecting-to-service-provider/fabric-connect-akamai
+ text: Output data from Equinix Networking Assistant in response to prompt
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: false
+ tool_choice: none
+ tools: []
+ safety_identifier:
+ status: completed
+ text:
+ format:
+ type: text
+ usage:
+ input_tokens: 86146
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 1803
+ output_tokens_details:
+ reasoning_tokens: 960
+ total_tokens: 87949
+ user:
+ 500-responses-internal-server-error:
+ value:
+ - errorCode: EQ-3222201
+ errorMessage: |
+ I'm so sorry, we were unable to process your prompt due to a system level issue. Equinix Networking Assistant needs some tender, loving care. Please report this error to maintainers with error code EQ-3222201.
+ correlationId: 123e4567-e89b-12d3-a456-426614174000
+ response-deleted:
+ value:
+ id: resp_08b22a5f-63c6-4892-8cd6-2a4b1ef591c0
+ deleted: true
+ object: response
+ input-items:
+ summary: Standard input items response
+ value:
+ data:
+ - id: msg_16fb930e-c71a-4cfc-9b5d-4871c6a98aef
+ content:
+ - annotations: []
+ text: |-
+ Results ? connections in DC with Fabric Cloud Router (FCR), active (limit 20)
+ .....
+ type: output_text
+ role: assistant
+ status: completed
+ type: message
+ - id: msg_3920f72c-5172-42d1-8f5b-7eafd490411e
+ content:
+ - text: Show connections in DC with FCRs; active, either side, limit 20
+ type: input_text
+ role: user
+ first_id: msg_16fb930e-c71a-4cfc-9b5d-4871c6a98aef
+ has_more: false
+ last_id: msg_3920f72c-5172-42d1-8f5b-7eafd490411e
+ object: list
headers:
ETag:
description: response header - identifier for a specific version of a resource.
From 50d52b650843031f180d4b81adad33f7dff7a83d Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 17 Feb 2026 09:47:08 +0000
Subject: [PATCH 3/5] sync: generate client with 2026-02-17 spec
---
equinix/services/fabricv4/__init__.py | 13 +-
equinix/services/fabricv4/api/__init__.py | 3 +
.../fabricv4/api/company_profiles_api.py | 3684 +++++++++++++++++
equinix/services/fabricv4/api/logos_api.py | 586 +++
equinix/services/fabricv4/api/metrics_api.py | 341 +-
equinix/services/fabricv4/api/ports_api.py | 6 +-
.../fabricv4/api/service_profiles_api.py | 6 +-
.../fabricv4/api/service_tokens_api.py | 6 +-
equinix/services/fabricv4/api/tags_api.py | 633 +++
equinix/services/fabricv4/configuration.py | 2 +-
.../fabricv4/docs/AttachLogoResponse.md | 1 +
.../fabricv4/docs/CloudEventAssetType.md | 2 +
equinix/services/fabricv4/docs/CompanyLogo.md | 1 +
.../services/fabricv4/docs/CompanyMetro.md | 30 +
.../fabricv4/docs/CompanyProfileChange.md | 2 +
.../fabricv4/docs/CompanyProfileRequest.md | 1 +
.../fabricv4/docs/CompanyProfileResponse.md | 3 +
.../docs/CompanyProfileSearchRequest.md | 1 +
.../docs/CompanyProfileSortDirection.md | 13 +
.../docs/CompanyProfileUpdateResponse.md | 30 -
.../fabricv4/docs/CompanyProfilesApi.md | 1089 +++++
.../docs/ConnectionRouteTableEntry.md | 2 +-
.../services/fabricv4/docs/EquinixStatus.md | 2 +
.../services/fabricv4/docs/GeoScopeType.md | 8 +
.../fabricv4/docs/GetMetricsByNameResponse.md | 30 +
.../services/fabricv4/docs/LogoResponse.md | 1 +
equinix/services/fabricv4/docs/LogosApi.md | 174 +
.../services/fabricv4/docs/MetricResource.md | 1 +
equinix/services/fabricv4/docs/MetricsApi.md | 93 +-
equinix/services/fabricv4/docs/Metro.md | 2 +-
.../services/fabricv4/docs/MetroResponse.md | 2 +-
.../fabricv4/docs/PatchOperationOp.md | 4 +
.../fabricv4/docs/PlatformChangelog.md | 35 +
.../fabricv4/docs/PortOrderPurchaseOrder.md | 4 +-
.../fabricv4/docs/PortOrderSignature.md | 2 +-
.../docs/PortOrderSignatureDelegate.md | 4 +-
equinix/services/fabricv4/docs/PortsApi.md | 2 +-
.../docs/ResponseIncompleteDetails.md | 30 +
.../docs/ResponseIncompleteDetailsReason.md | 13 +
.../docs/ResponseUsageInputTokensDetails.md | 30 +
.../docs/ResponseUsageOutputTokensDetails.md | 30 +
.../fabricv4/docs/ServiceProfilesApi.md | 2 +-
.../fabricv4/docs/ServiceTokensApi.md | 2 +-
equinix/services/fabricv4/docs/Sort.md | 30 +
equinix/services/fabricv4/docs/TagResponse.md | 1 +
equinix/services/fabricv4/docs/TagsApi.md | 179 +
.../fabricv4/docs/VirtualPortPrice.md | 1 +
equinix/services/fabricv4/models/__init__.py | 10 +-
.../fabricv4/models/attach_logo_response.py | 6 +-
.../fabricv4/models/cloud_event_asset_type.py | 1 +
.../services/fabricv4/models/company_logo.py | 8 +-
.../services/fabricv4/models/company_metro.py | 98 +
.../fabricv4/models/company_profile_change.py | 6 +-
.../models/company_profile_request.py | 6 +-
.../models/company_profile_response.py | 20 +-
.../models/company_profile_search_request.py | 10 +-
.../models/company_profile_sort_direction.py | 33 +
.../models/connection_route_table_entry.py | 2 +-
.../fabricv4/models/equinix_status.py | 1 +
.../fabricv4/models/geo_scope_type.py | 4 +
...nse.py => get_metrics_by_name_response.py} | 38 +-
.../services/fabricv4/models/logo_response.py | 4 +-
.../fabricv4/models/metric_resource.py | 4 +-
equinix/services/fabricv4/models/metro.py | 2 +-
.../fabricv4/models/metro_response.py | 2 +-
.../fabricv4/models/patch_operation_op.py | 2 +
.../fabricv4/models/platform_changelog.py | 107 +
.../models/port_order_purchase_order.py | 5 +-
.../fabricv4/models/port_order_signature.py | 2 +-
.../models/port_order_signature_delegate.py | 4 +-
.../models/response_incomplete_details.py | 97 +
.../response_incomplete_details_reason.py | 33 +
.../response_usage_input_tokens_details.py | 96 +
.../response_usage_output_tokens_details.py | 96 +
equinix/services/fabricv4/models/sort.py | 99 +
.../services/fabricv4/models/tag_response.py | 8 +-
.../fabricv4/models/virtual_port_price.py | 6 +-
77 files changed, 7842 insertions(+), 105 deletions(-)
create mode 100644 equinix/services/fabricv4/api/company_profiles_api.py
create mode 100644 equinix/services/fabricv4/api/logos_api.py
create mode 100644 equinix/services/fabricv4/api/tags_api.py
create mode 100644 equinix/services/fabricv4/docs/CompanyMetro.md
create mode 100644 equinix/services/fabricv4/docs/CompanyProfileSortDirection.md
delete mode 100644 equinix/services/fabricv4/docs/CompanyProfileUpdateResponse.md
create mode 100644 equinix/services/fabricv4/docs/CompanyProfilesApi.md
create mode 100644 equinix/services/fabricv4/docs/GetMetricsByNameResponse.md
create mode 100644 equinix/services/fabricv4/docs/LogosApi.md
create mode 100644 equinix/services/fabricv4/docs/PlatformChangelog.md
create mode 100644 equinix/services/fabricv4/docs/ResponseIncompleteDetails.md
create mode 100644 equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md
create mode 100644 equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md
create mode 100644 equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md
create mode 100644 equinix/services/fabricv4/docs/Sort.md
create mode 100644 equinix/services/fabricv4/docs/TagsApi.md
create mode 100644 equinix/services/fabricv4/models/company_metro.py
create mode 100644 equinix/services/fabricv4/models/company_profile_sort_direction.py
rename equinix/services/fabricv4/models/{company_profile_update_response.py => get_metrics_by_name_response.py} (70%)
create mode 100644 equinix/services/fabricv4/models/platform_changelog.py
create mode 100644 equinix/services/fabricv4/models/response_incomplete_details.py
create mode 100644 equinix/services/fabricv4/models/response_incomplete_details_reason.py
create mode 100644 equinix/services/fabricv4/models/response_usage_input_tokens_details.py
create mode 100644 equinix/services/fabricv4/models/response_usage_output_tokens_details.py
create mode 100644 equinix/services/fabricv4/models/sort.py
diff --git a/equinix/services/fabricv4/__init__.py b/equinix/services/fabricv4/__init__.py
index 33ad9c1f..15b14fbc 100644
--- a/equinix/services/fabricv4/__init__.py
+++ b/equinix/services/fabricv4/__init__.py
@@ -15,8 +15,10 @@
# import apis into sdk package
from equinix.services.fabricv4.api.cloud_events_api import CloudEventsApi
from equinix.services.fabricv4.api.cloud_routers_api import CloudRoutersApi
+from equinix.services.fabricv4.api.company_profiles_api import CompanyProfilesApi
from equinix.services.fabricv4.api.connections_api import ConnectionsApi
from equinix.services.fabricv4.api.health_api import HealthApi
+from equinix.services.fabricv4.api.logos_api import LogosApi
from equinix.services.fabricv4.api.marketplace_subscriptions_api import MarketplaceSubscriptionsApi
from equinix.services.fabricv4.api.metrics_api import MetricsApi
from equinix.services.fabricv4.api.metros_api import MetrosApi
@@ -36,6 +38,7 @@
from equinix.services.fabricv4.api.stream_alert_rules_api import StreamAlertRulesApi
from equinix.services.fabricv4.api.stream_subscriptions_api import StreamSubscriptionsApi
from equinix.services.fabricv4.api.streams_api import StreamsApi
+from equinix.services.fabricv4.api.tags_api import TagsApi
# import ApiClient
from equinix.services.fabricv4.api_response import ApiResponse
@@ -151,6 +154,7 @@
from equinix.services.fabricv4.models.cloud_router_sort_direction import CloudRouterSortDirection
from equinix.services.fabricv4.models.code import Code
from equinix.services.fabricv4.models.company_logo import CompanyLogo
+from equinix.services.fabricv4.models.company_metro import CompanyMetro
from equinix.services.fabricv4.models.company_profile_action_request import CompanyProfileActionRequest
from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
@@ -158,7 +162,7 @@
from equinix.services.fabricv4.models.company_profile_search_filter import CompanyProfileSearchFilter
from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
-from equinix.services.fabricv4.models.company_profile_update_response import CompanyProfileUpdateResponse
+from equinix.services.fabricv4.models.company_profile_sort_direction import CompanyProfileSortDirection
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
from equinix.services.fabricv4.models.connected_metro import ConnectedMetro
from equinix.services.fabricv4.models.connection import Connection
@@ -238,6 +242,7 @@
from equinix.services.fabricv4.models.get_all_stream_subscription_response import GetAllStreamSubscriptionResponse
from equinix.services.fabricv4.models.get_cloud_events_by_asset_response import GetCloudEventsByAssetResponse
from equinix.services.fabricv4.models.get_metrics_by_asset_response import GetMetricsByAssetResponse
+from equinix.services.fabricv4.models.get_metrics_by_name_response import GetMetricsByNameResponse
from equinix.services.fabricv4.models.get_response import GetResponse
from equinix.services.fabricv4.models.get_route_aggregation_get_connections_response import GetRouteAggregationGetConnectionsResponse
from equinix.services.fabricv4.models.get_route_aggregation_rules_response import GetRouteAggregationRulesResponse
@@ -331,6 +336,7 @@
from equinix.services.fabricv4.models.physical_port import PhysicalPort
from equinix.services.fabricv4.models.physical_port_settings import PhysicalPortSettings
from equinix.services.fabricv4.models.physical_port_type import PhysicalPortType
+from equinix.services.fabricv4.models.platform_changelog import PlatformChangelog
from equinix.services.fabricv4.models.port import Port
from equinix.services.fabricv4.models.port_additional_info import PortAdditionalInfo
from equinix.services.fabricv4.models.port_bmmr_type import PortBmmrType
@@ -427,6 +433,10 @@
from equinix.services.fabricv4.models.resource_data import ResourceData
from equinix.services.fabricv4.models.resource_selector import ResourceSelector
from equinix.services.fabricv4.models.resource_selector_response import ResourceSelectorResponse
+from equinix.services.fabricv4.models.response_incomplete_details import ResponseIncompleteDetails
+from equinix.services.fabricv4.models.response_incomplete_details_reason import ResponseIncompleteDetailsReason
+from equinix.services.fabricv4.models.response_usage_input_tokens_details import ResponseUsageInputTokensDetails
+from equinix.services.fabricv4.models.response_usage_output_tokens_details import ResponseUsageOutputTokensDetails
from equinix.services.fabricv4.models.route_aggregation_change_data import RouteAggregationChangeData
from equinix.services.fabricv4.models.route_aggregation_change_data_response import RouteAggregationChangeDataResponse
from equinix.services.fabricv4.models.route_aggregation_connections_data import RouteAggregationConnectionsData
@@ -585,6 +595,7 @@
from equinix.services.fabricv4.models.simplified_token_network_type import SimplifiedTokenNetworkType
from equinix.services.fabricv4.models.simplified_virtual_device import SimplifiedVirtualDevice
from equinix.services.fabricv4.models.simplified_virtual_device_type import SimplifiedVirtualDeviceType
+from equinix.services.fabricv4.models.sort import Sort
from equinix.services.fabricv4.models.sort_by import SortBy
from equinix.services.fabricv4.models.sort_criteria import SortCriteria
from equinix.services.fabricv4.models.sort_criteria_response import SortCriteriaResponse
diff --git a/equinix/services/fabricv4/api/__init__.py b/equinix/services/fabricv4/api/__init__.py
index 3436c9cd..f9986b2f 100644
--- a/equinix/services/fabricv4/api/__init__.py
+++ b/equinix/services/fabricv4/api/__init__.py
@@ -3,8 +3,10 @@
# import apis into api package
from equinix.services.fabricv4.api.cloud_events_api import CloudEventsApi
from equinix.services.fabricv4.api.cloud_routers_api import CloudRoutersApi
+from equinix.services.fabricv4.api.company_profiles_api import CompanyProfilesApi
from equinix.services.fabricv4.api.connections_api import ConnectionsApi
from equinix.services.fabricv4.api.health_api import HealthApi
+from equinix.services.fabricv4.api.logos_api import LogosApi
from equinix.services.fabricv4.api.marketplace_subscriptions_api import MarketplaceSubscriptionsApi
from equinix.services.fabricv4.api.metrics_api import MetricsApi
from equinix.services.fabricv4.api.metros_api import MetrosApi
@@ -24,4 +26,5 @@
from equinix.services.fabricv4.api.stream_alert_rules_api import StreamAlertRulesApi
from equinix.services.fabricv4.api.stream_subscriptions_api import StreamSubscriptionsApi
from equinix.services.fabricv4.api.streams_api import StreamsApi
+from equinix.services.fabricv4.api.tags_api import TagsApi
diff --git a/equinix/services/fabricv4/api/company_profiles_api.py b/equinix/services/fabricv4/api/company_profiles_api.py
new file mode 100644
index 00000000..974bcf8f
--- /dev/null
+++ b/equinix/services/fabricv4/api/company_profiles_api.py
@@ -0,0 +1,3684 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.attach_private_service_response import AttachPrivateServiceResponse
+from equinix.services.fabricv4.models.attach_service_profile_response import AttachServiceProfileResponse
+from equinix.services.fabricv4.models.attach_tag_response import AttachTagResponse
+from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
+from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
+from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
+from equinix.services.fabricv4.models.private_service_list_response import PrivateServiceListResponse
+from equinix.services.fabricv4.models.service_profile_list_response import ServiceProfileListResponse
+from equinix.services.fabricv4.models.tag_list_response import TagListResponse
+
+from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
+from equinix.services.fabricv4.api_response import ApiResponse
+from equinix.services.fabricv4.rest import RESTResponseType
+
+
+class CompanyProfilesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def attach_private_service_to_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachPrivateServiceResponse:
+ """Attach Private Service
+
+ Attach a private service to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_private_service_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def attach_private_service_to_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachPrivateServiceResponse]:
+ """Attach Private Service
+
+ Attach a private service to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_private_service_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def attach_private_service_to_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Attach Private Service
+
+ Attach a private service to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_private_service_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _attach_private_service_to_profile_serialize(
+ self,
+ company_profile_id,
+ private_service_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if private_service_id is not None:
+ _path_params['privateServiceId'] = private_service_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def attach_service_profile_to_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachServiceProfileResponse:
+ """Attach Service Profile
+
+ Attach a service profile to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_service_profile_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def attach_service_profile_to_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachServiceProfileResponse]:
+ """Attach Service Profile
+
+ Attach a service profile to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_service_profile_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def attach_service_profile_to_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Attach Service Profile
+
+ Attach a service profile to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_service_profile_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _attach_service_profile_to_profile_serialize(
+ self,
+ company_profile_id,
+ service_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if service_profile_id is not None:
+ _path_params['serviceProfileId'] = service_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def attach_tag_to_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachTagResponse:
+ """Attach Tag
+
+ Attach a tag to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_tag_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def attach_tag_to_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachTagResponse]:
+ """Attach Tag
+
+ Attach a tag to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_tag_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def attach_tag_to_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Attach Tag
+
+ Attach a tag to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._attach_tag_to_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _attach_tag_to_profile_serialize(
+ self,
+ company_profile_id,
+ tag_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if tag_id is not None:
+ _path_params['tagId'] = tag_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def create_company_profile(
+ self,
+ company_profile_request: CompanyProfileRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CompanyProfileResponse:
+ """Create Company Profile
+
+ Create a new company profile Beta
+
+ :param company_profile_request: (required)
+ :type company_profile_request: CompanyProfileRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_company_profile_serialize(
+ company_profile_request=company_profile_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_company_profile_with_http_info(
+ self,
+ company_profile_request: CompanyProfileRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CompanyProfileResponse]:
+ """Create Company Profile
+
+ Create a new company profile Beta
+
+ :param company_profile_request: (required)
+ :type company_profile_request: CompanyProfileRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_company_profile_serialize(
+ company_profile_request=company_profile_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_company_profile_without_preload_content(
+ self,
+ company_profile_request: CompanyProfileRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Create Company Profile
+
+ Create a new company profile Beta
+
+ :param company_profile_request: (required)
+ :type company_profile_request: CompanyProfileRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_company_profile_serialize(
+ company_profile_request=company_profile_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_company_profile_serialize(
+ self,
+ company_profile_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if company_profile_request is not None:
+ _body_params = company_profile_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/companyProfiles',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_company_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CompanyProfileResponse:
+ """Delete Company Profile
+
+ Delete company profile by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_company_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CompanyProfileResponse]:
+ """Delete Company Profile
+
+ Delete company profile by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_company_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Delete Company Profile
+
+ Delete company profile by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_company_profile_serialize(
+ self,
+ company_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def detach_private_service_from_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachPrivateServiceResponse:
+ """Detach Private Service
+
+ Detach a private service from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_private_service_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def detach_private_service_from_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachPrivateServiceResponse]:
+ """Detach Private Service
+
+ Detach a private service from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_private_service_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def detach_private_service_from_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ private_service_id: Annotated[StrictStr, Field(description="Private Service UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Detach Private Service
+
+ Detach a private service from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param private_service_id: Private Service UUID (required)
+ :type private_service_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_private_service_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ private_service_id=private_service_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachPrivateServiceResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _detach_private_service_from_profile_serialize(
+ self,
+ company_profile_id,
+ private_service_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if private_service_id is not None:
+ _path_params['privateServiceId'] = private_service_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def detach_service_profile_from_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachServiceProfileResponse:
+ """Detach Service Profile
+
+ Detach a service profile from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_service_profile_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def detach_service_profile_from_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachServiceProfileResponse]:
+ """Detach Service Profile
+
+ Detach a service profile from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_service_profile_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def detach_service_profile_from_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Detach Service Profile
+
+ Detach a service profile from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_service_profile_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ service_profile_id=service_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachServiceProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _detach_service_profile_from_profile_serialize(
+ self,
+ company_profile_id,
+ service_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if service_profile_id is not None:
+ _path_params['serviceProfileId'] = service_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def detach_tag_from_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AttachTagResponse:
+ """Detach Tag
+
+ Detach a tag from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_tag_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def detach_tag_from_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AttachTagResponse]:
+ """Detach Tag
+
+ Detach a tag from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_tag_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def detach_tag_from_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ tag_id: Annotated[StrictStr, Field(description="Tag UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Detach Tag
+
+ Detach a tag from a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param tag_id: Tag UUID (required)
+ :type tag_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._detach_tag_from_profile_serialize(
+ company_profile_id=company_profile_id,
+ tag_id=tag_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AttachTagResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _detach_tag_from_profile_serialize(
+ self,
+ company_profile_id,
+ tag_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ if tag_id is not None:
+ _path_params['tagId'] = tag_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_company_profile(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CompanyProfileResponse:
+ """Get Company Profile by UUID
+
+ Get company profile details by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_company_profile_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CompanyProfileResponse]:
+ """Get Company Profile by UUID
+
+ Get company profile details by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_company_profile_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Company Profile by UUID
+
+ Get company profile details by UUID Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_company_profile_serialize(
+ self,
+ company_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_company_profile_private_services(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> PrivateServiceListResponse:
+ """Get Private Services
+
+ Get all private services attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_private_services_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PrivateServiceListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_company_profile_private_services_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[PrivateServiceListResponse]:
+ """Get Private Services
+
+ Get all private services attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_private_services_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PrivateServiceListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_company_profile_private_services_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Private Services
+
+ Get all private services attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_private_services_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "PrivateServiceListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_company_profile_private_services_serialize(
+ self,
+ company_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/privateServices',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_company_profile_service_profiles(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServiceProfileListResponse:
+ """Get Service Profiles
+
+ Get all service profiles attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_service_profiles_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServiceProfileListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_company_profile_service_profiles_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServiceProfileListResponse]:
+ """Get Service Profiles
+
+ Get all service profiles attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_service_profiles_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServiceProfileListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_company_profile_service_profiles_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Service Profiles
+
+ Get all service profiles attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_company_profile_service_profiles_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ServiceProfileListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_company_profile_service_profiles_serialize(
+ self,
+ company_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_tags(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagListResponse:
+ """Get Tags
+
+ Get all tags attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tags_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_tags_with_http_info(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagListResponse]:
+ """Get Tags
+
+ Get all tags attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tags_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_tags_without_preload_content(
+ self,
+ company_profile_id: Annotated[StrictStr, Field(description="Company Profile UUID")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Tags
+
+ Get all tags attached to a company profile Beta
+
+ :param company_profile_id: Company Profile UUID (required)
+ :type company_profile_id: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_tags_serialize(
+ company_profile_id=company_profile_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_tags_serialize(
+ self,
+ company_profile_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if company_profile_id is not None:
+ _path_params['companyProfileId'] = company_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/companyProfiles/{companyProfileId}/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def search_company_profile(
+ self,
+ company_profile_search_request: CompanyProfileSearchRequest,
+ view_point: Annotated[Optional[StrictStr], Field(description="Viewpoint for the request, either 'aSide' or 'zSide'")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CompanyProfileSearchResponse:
+ """Search Company Profiles
+
+ Search company profiles based on filter criteria Beta
+
+ :param company_profile_search_request: (required)
+ :type company_profile_search_request: CompanyProfileSearchRequest
+ :param view_point: Viewpoint for the request, either 'aSide' or 'zSide'
+ :type view_point: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_company_profile_serialize(
+ company_profile_search_request=company_profile_search_request,
+ view_point=view_point,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileSearchResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_company_profile_with_http_info(
+ self,
+ company_profile_search_request: CompanyProfileSearchRequest,
+ view_point: Annotated[Optional[StrictStr], Field(description="Viewpoint for the request, either 'aSide' or 'zSide'")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CompanyProfileSearchResponse]:
+ """Search Company Profiles
+
+ Search company profiles based on filter criteria Beta
+
+ :param company_profile_search_request: (required)
+ :type company_profile_search_request: CompanyProfileSearchRequest
+ :param view_point: Viewpoint for the request, either 'aSide' or 'zSide'
+ :type view_point: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_company_profile_serialize(
+ company_profile_search_request=company_profile_search_request,
+ view_point=view_point,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileSearchResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_company_profile_without_preload_content(
+ self,
+ company_profile_search_request: CompanyProfileSearchRequest,
+ view_point: Annotated[Optional[StrictStr], Field(description="Viewpoint for the request, either 'aSide' or 'zSide'")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Search Company Profiles
+
+ Search company profiles based on filter criteria Beta
+
+ :param company_profile_search_request: (required)
+ :type company_profile_search_request: CompanyProfileSearchRequest
+ :param view_point: Viewpoint for the request, either 'aSide' or 'zSide'
+ :type view_point: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_company_profile_serialize(
+ company_profile_search_request=company_profile_search_request,
+ view_point=view_point,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CompanyProfileSearchResponse",
+ '400': "List[Error]",
+ '403': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_company_profile_serialize(
+ self,
+ company_profile_search_request,
+ view_point,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if view_point is not None:
+
+ _query_params.append(('viewPoint', view_point))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if company_profile_search_request is not None:
+ _body_params = company_profile_search_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/companyProfiles/search',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/logos_api.py b/equinix/services/fabricv4/api/logos_api.py
new file mode 100644
index 00000000..4caeb060
--- /dev/null
+++ b/equinix/services/fabricv4/api/logos_api.py
@@ -0,0 +1,586 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictBytes, StrictStr
+from typing import Tuple, Union
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.logo_response import LogoResponse
+
+from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
+from equinix.services.fabricv4.api_response import ApiResponse
+from equinix.services.fabricv4.rest import RESTResponseType
+
+
+class LogosApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def delete_logo_by_uuid(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> LogoResponse:
+ """Delete Logo
+
+ Delete Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "LogoResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_logo_by_uuid_with_http_info(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[LogoResponse]:
+ """Delete Logo
+
+ Delete Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "LogoResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_logo_by_uuid_without_preload_content(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Delete Logo
+
+ Delete Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "LogoResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_logo_by_uuid_serialize(
+ self,
+ uuid,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if uuid is not None:
+ _path_params['uuid'] = uuid
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json; charset=UTF-8',
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/logos/{uuid}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_logo_by_uuid(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> bytearray:
+ """Get Logo
+
+ Get Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_logo_by_uuid_with_http_info(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[bytearray]:
+ """Get Logo
+
+ Get Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_logo_by_uuid_without_preload_content(
+ self,
+ uuid: Annotated[StrictStr, Field(description="UUID of the Logo")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Logo
+
+ Get Logo by UUID
+
+ :param uuid: UUID of the Logo (required)
+ :type uuid: str
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_logo_by_uuid_serialize(
+ uuid=uuid,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "bytearray",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_logo_by_uuid_serialize(
+ self,
+ uuid,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if uuid is not None:
+ _path_params['uuid'] = uuid
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'multipart/mixed',
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/logos/{uuid}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/metrics_api.py b/equinix/services/fabricv4/api/metrics_api.py
index 4b108327..d87b9f8c 100644
--- a/equinix/services/fabricv4/api/metrics_api.py
+++ b/equinix/services/fabricv4/api/metrics_api.py
@@ -13,10 +13,11 @@
from typing_extensions import Annotated
from datetime import datetime
-from pydantic import Field, StrictInt, StrictStr
+from pydantic import Field, StrictInt, StrictStr, field_validator
from typing import Optional
from typing_extensions import Annotated
from equinix.services.fabricv4.models.get_metrics_by_asset_response import GetMetricsByAssetResponse
+from equinix.services.fabricv4.models.get_metrics_by_name_response import GetMetricsByNameResponse
from equinix.services.fabricv4.models.metric_asset_type import MetricAssetType
from equinix.services.fabricv4.models.metrics_search_request import MetricsSearchRequest
@@ -43,7 +44,7 @@ def get_metric_by_asset_id(
self,
asset: Annotated[MetricAssetType, Field(description="asset")],
asset_id: Annotated[StrictStr, Field(description="asset UUID")],
- name: Annotated[StrictStr, Field(description="Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
")],
+ name: Annotated[str, Field(strict=True, description="Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` ")],
from_date_time: Annotated[Optional[datetime], Field(description="Start date and time")] = None,
to_date_time: Annotated[Optional[datetime], Field(description="End date and time")] = None,
offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
@@ -69,7 +70,7 @@ def get_metric_by_asset_id(
:type asset: MetricAssetType
:param asset_id: asset UUID (required)
:type asset_id: str
- :param name: Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
(required)
+ :param name: Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` (required)
:type name: str
:param from_date_time: Start date and time
:type from_date_time: datetime
@@ -138,7 +139,7 @@ def get_metric_by_asset_id_with_http_info(
self,
asset: Annotated[MetricAssetType, Field(description="asset")],
asset_id: Annotated[StrictStr, Field(description="asset UUID")],
- name: Annotated[StrictStr, Field(description="Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
")],
+ name: Annotated[str, Field(strict=True, description="Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` ")],
from_date_time: Annotated[Optional[datetime], Field(description="Start date and time")] = None,
to_date_time: Annotated[Optional[datetime], Field(description="End date and time")] = None,
offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
@@ -164,7 +165,7 @@ def get_metric_by_asset_id_with_http_info(
:type asset: MetricAssetType
:param asset_id: asset UUID (required)
:type asset_id: str
- :param name: Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
(required)
+ :param name: Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` (required)
:type name: str
:param from_date_time: Start date and time
:type from_date_time: datetime
@@ -233,7 +234,7 @@ def get_metric_by_asset_id_without_preload_content(
self,
asset: Annotated[MetricAssetType, Field(description="asset")],
asset_id: Annotated[StrictStr, Field(description="asset UUID")],
- name: Annotated[StrictStr, Field(description="Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
")],
+ name: Annotated[str, Field(strict=True, description="Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` ")],
from_date_time: Annotated[Optional[datetime], Field(description="Start date and time")] = None,
to_date_time: Annotated[Optional[datetime], Field(description="End date and time")] = None,
offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
@@ -259,7 +260,7 @@ def get_metric_by_asset_id_without_preload_content(
:type asset: MetricAssetType
:param asset_id: asset UUID (required)
:type asset_id: str
- :param name: Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
(required)
+ :param name: Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` (required)
:type name: str
:param from_date_time: Start date and time
:type from_date_time: datetime
@@ -429,6 +430,332 @@ def _get_metric_by_asset_id_serialize(
+ @validate_call
+ def get_metric_by_name(
+ self,
+ name: Annotated[str, Field(strict=True, description="Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` ")],
+ value: Annotated[StrictStr, Field(description="value")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="limit")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> GetMetricsByNameResponse:
+ """Get Metrics by Name
+
+ This API provides capability to retrieve Metrics by specific wildcard metric types
+
+ :param name: Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` (required)
+ :type name: str
+ :param value: value (required)
+ :type value: str
+ :param offset: offset
+ :type offset: int
+ :param limit: limit
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_metric_by_name_serialize(
+ name=name,
+ value=value,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetMetricsByNameResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_metric_by_name_with_http_info(
+ self,
+ name: Annotated[str, Field(strict=True, description="Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` ")],
+ value: Annotated[StrictStr, Field(description="value")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="limit")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[GetMetricsByNameResponse]:
+ """Get Metrics by Name
+
+ This API provides capability to retrieve Metrics by specific wildcard metric types
+
+ :param name: Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` (required)
+ :type name: str
+ :param value: value (required)
+ :type value: str
+ :param offset: offset
+ :type offset: int
+ :param limit: limit
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_metric_by_name_serialize(
+ name=name,
+ value=value,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetMetricsByNameResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_metric_by_name_without_preload_content(
+ self,
+ name: Annotated[str, Field(strict=True, description="Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` ")],
+ value: Annotated[StrictStr, Field(description="value")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="limit")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Metrics by Name
+
+ This API provides capability to retrieve Metrics by specific wildcard metric types
+
+ :param name: Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` (required)
+ :type name: str
+ :param value: value (required)
+ :type value: str
+ :param offset: offset
+ :type offset: int
+ :param limit: limit
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_metric_by_name_serialize(
+ name=name,
+ value=value,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetMetricsByNameResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_metric_by_name_serialize(
+ self,
+ name,
+ value,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if name is not None:
+
+ _query_params.append(('name', name))
+
+ if value is not None:
+
+ _query_params.append(('value', value))
+
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/metrics',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def search_metrics(
self,
diff --git a/equinix/services/fabricv4/api/ports_api.py b/equinix/services/fabricv4/api/ports_api.py
index 5a7727e2..94f8e84b 100644
--- a/equinix/services/fabricv4/api/ports_api.py
+++ b/equinix/services/fabricv4/api/ports_api.py
@@ -363,7 +363,7 @@ def create_port(
) -> Port:
"""Create Port
- Creates Equinix Fabric™ Port.
+ Creates Equinix Fabric? Port.
:param port_request: (required)
:type port_request: PortRequest
@@ -438,7 +438,7 @@ def create_port_with_http_info(
) -> ApiResponse[Port]:
"""Create Port
- Creates Equinix Fabric™ Port.
+ Creates Equinix Fabric? Port.
:param port_request: (required)
:type port_request: PortRequest
@@ -513,7 +513,7 @@ def create_port_without_preload_content(
) -> RESTResponseType:
"""Create Port
- Creates Equinix Fabric™ Port.
+ Creates Equinix Fabric? Port.
:param port_request: (required)
:type port_request: PortRequest
diff --git a/equinix/services/fabricv4/api/service_profiles_api.py b/equinix/services/fabricv4/api/service_profiles_api.py
index 2e19bf64..a39be7b6 100644
--- a/equinix/services/fabricv4/api/service_profiles_api.py
+++ b/equinix/services/fabricv4/api/service_profiles_api.py
@@ -60,7 +60,7 @@ def create_service_profile(
) -> ServiceProfile:
"""Create Profile
- Create Service Profile creates Equinix Fabric™ Service Profile.
+ Create Service Profile creates Equinix Fabric? Service Profile.
:param service_profile_request: (required)
:type service_profile_request: ServiceProfileRequest
@@ -131,7 +131,7 @@ def create_service_profile_with_http_info(
) -> ApiResponse[ServiceProfile]:
"""Create Profile
- Create Service Profile creates Equinix Fabric™ Service Profile.
+ Create Service Profile creates Equinix Fabric? Service Profile.
:param service_profile_request: (required)
:type service_profile_request: ServiceProfileRequest
@@ -202,7 +202,7 @@ def create_service_profile_without_preload_content(
) -> RESTResponseType:
"""Create Profile
- Create Service Profile creates Equinix Fabric™ Service Profile.
+ Create Service Profile creates Equinix Fabric? Service Profile.
:param service_profile_request: (required)
:type service_profile_request: ServiceProfileRequest
diff --git a/equinix/services/fabricv4/api/service_tokens_api.py b/equinix/services/fabricv4/api/service_tokens_api.py
index a737e235..72975977 100644
--- a/equinix/services/fabricv4/api/service_tokens_api.py
+++ b/equinix/services/fabricv4/api/service_tokens_api.py
@@ -59,7 +59,7 @@ def create_service_token(
) -> ServiceToken:
"""Create Service Token
- Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+ Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
:param service_token: (required)
:type service_token: ServiceToken
@@ -134,7 +134,7 @@ def create_service_token_with_http_info(
) -> ApiResponse[ServiceToken]:
"""Create Service Token
- Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+ Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
:param service_token: (required)
:type service_token: ServiceToken
@@ -209,7 +209,7 @@ def create_service_token_without_preload_content(
) -> RESTResponseType:
"""Create Service Token
- Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+ Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
:param service_token: (required)
:type service_token: ServiceToken
diff --git a/equinix/services/fabricv4/api/tags_api.py b/equinix/services/fabricv4/api/tags_api.py
new file mode 100644
index 00000000..3e2096f2
--- /dev/null
+++ b/equinix/services/fabricv4/api/tags_api.py
@@ -0,0 +1,633 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictInt, StrictStr
+from typing import List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.tag_list_response import TagListResponse
+from equinix.services.fabricv4.models.tag_request import TagRequest
+from equinix.services.fabricv4.models.tag_response import TagResponse
+
+from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
+from equinix.services.fabricv4.api_response import ApiResponse
+from equinix.services.fabricv4.rest import RESTResponseType
+
+
+class TagsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_tag(
+ self,
+ tag_request: TagRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagResponse:
+ """Create Tag
+
+ Create Tag for Equinix Fabric?.
+
+ :param tag_request: (required)
+ :type tag_request: TagRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_request=tag_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_tag_with_http_info(
+ self,
+ tag_request: TagRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagResponse]:
+ """Create Tag
+
+ Create Tag for Equinix Fabric?.
+
+ :param tag_request: (required)
+ :type tag_request: TagRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_request=tag_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_tag_without_preload_content(
+ self,
+ tag_request: TagRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Create Tag
+
+ Create Tag for Equinix Fabric?.
+
+ :param tag_request: (required)
+ :type tag_request: TagRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_tag_serialize(
+ tag_request=tag_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "TagResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_tag_serialize(
+ self,
+ tag_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if tag_request is not None:
+ _body_params = tag_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def list_tags(
+ self,
+ type: Annotated[Optional[List[StrictStr]], Field(description="Filter by tag type")] = None,
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True)]], Field(description="Limit for pagination")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> TagListResponse:
+ """List Tags
+
+ Get all Tags
+
+ :param type: Filter by tag type
+ :type type: List[str]
+ :param offset: Offset for pagination
+ :type offset: int
+ :param limit: Limit for pagination
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_tags_serialize(
+ type=type,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def list_tags_with_http_info(
+ self,
+ type: Annotated[Optional[List[StrictStr]], Field(description="Filter by tag type")] = None,
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True)]], Field(description="Limit for pagination")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[TagListResponse]:
+ """List Tags
+
+ Get all Tags
+
+ :param type: Filter by tag type
+ :type type: List[str]
+ :param offset: Offset for pagination
+ :type offset: int
+ :param limit: Limit for pagination
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_tags_serialize(
+ type=type,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def list_tags_without_preload_content(
+ self,
+ type: Annotated[Optional[List[StrictStr]], Field(description="Filter by tag type")] = None,
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True)]], Field(description="Limit for pagination")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """List Tags
+
+ Get all Tags
+
+ :param type: Filter by tag type
+ :type type: List[str]
+ :param offset: Offset for pagination
+ :type offset: int
+ :param limit: Limit for pagination
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._list_tags_serialize(
+ type=type,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "TagListResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _list_tags_serialize(
+ self,
+ type,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ 'type': 'multi',
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if type is not None:
+
+ _query_params.append(('type', type))
+
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/tags',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/configuration.py b/equinix/services/fabricv4/configuration.py
index b02c5fbf..5f44bc8e 100644
--- a/equinix/services/fabricv4/configuration.py
+++ b/equinix/services/fabricv4/configuration.py
@@ -506,7 +506,7 @@ def to_debug_report(self) -> str:
return "Python SDK Debug Report:\n"\
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
- "Version of the API: 4.26\n"\
+ "Version of the API: 4.27\n"\
"SDK Package Version: 0.14.2".\
format(env=sys.platform, pyversion=sys.version)
diff --git a/equinix/services/fabricv4/docs/AttachLogoResponse.md b/equinix/services/fabricv4/docs/AttachLogoResponse.md
index f9be5230..f6a1c020 100644
--- a/equinix/services/fabricv4/docs/AttachLogoResponse.md
+++ b/equinix/services/fabricv4/docs/AttachLogoResponse.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**type** | **str** | Type of the logo or attachment |
**uuid** | **str** | Unique identifier for the logo |
**attachment_status** | **str** | Status of the attachment operation | [optional]
+**extension_type** | **str** | Extension type of logo | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CloudEventAssetType.md b/equinix/services/fabricv4/docs/CloudEventAssetType.md
index dd676d07..7874dba1 100644
--- a/equinix/services/fabricv4/docs/CloudEventAssetType.md
+++ b/equinix/services/fabricv4/docs/CloudEventAssetType.md
@@ -9,6 +9,8 @@
* `ROUTERS` (value: `'routers'`)
+* `METROS` (value: `'metros'`)
+
* `SERVICETOKENS` (value: `'serviceTokens'`)
* `NETWORKS` (value: `'networks'`)
diff --git a/equinix/services/fabricv4/docs/CompanyLogo.md b/equinix/services/fabricv4/docs/CompanyLogo.md
index 4acc07a6..a07ea541 100644
--- a/equinix/services/fabricv4/docs/CompanyLogo.md
+++ b/equinix/services/fabricv4/docs/CompanyLogo.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**href** | **str** | | [optional]
**uuid** | **str** | | [optional]
+**extension_type** | **str** | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CompanyMetro.md b/equinix/services/fabricv4/docs/CompanyMetro.md
new file mode 100644
index 00000000..e67f4d33
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CompanyMetro.md
@@ -0,0 +1,30 @@
+# CompanyMetro
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **str** | | [optional]
+**metro_code** | **str** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.company_metro import CompanyMetro
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CompanyMetro from a JSON string
+company_metro_instance = CompanyMetro.from_json(json)
+# print the JSON string representation of the object
+print(CompanyMetro.to_json())
+
+# convert the object into a dict
+company_metro_dict = company_metro_instance.to_dict()
+# create an instance of CompanyMetro from a dict
+company_metro_from_dict = CompanyMetro.from_dict(company_metro_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CompanyProfileChange.md b/equinix/services/fabricv4/docs/CompanyProfileChange.md
index b59880af..7d4da52b 100644
--- a/equinix/services/fabricv4/docs/CompanyProfileChange.md
+++ b/equinix/services/fabricv4/docs/CompanyProfileChange.md
@@ -5,9 +5,11 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**uuid** | **str** | | [optional]
**type** | **str** | | [optional]
**status** | **str** | | [optional]
**created_date_time** | **datetime** | | [optional]
+**updated_date_time** | **datetime** | | [optional]
**data** | **object** | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CompanyProfileRequest.md b/equinix/services/fabricv4/docs/CompanyProfileRequest.md
index 548f3c89..c9e052d7 100644
--- a/equinix/services/fabricv4/docs/CompanyProfileRequest.md
+++ b/equinix/services/fabricv4/docs/CompanyProfileRequest.md
@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**description** | **str** | |
**notifications** | **List[object]** | | [optional]
**web_url** | **str** | | [optional]
+**contact_url** | **str** | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CompanyProfileResponse.md b/equinix/services/fabricv4/docs/CompanyProfileResponse.md
index 35a08a9f..9e2a94d2 100644
--- a/equinix/services/fabricv4/docs/CompanyProfileResponse.md
+++ b/equinix/services/fabricv4/docs/CompanyProfileResponse.md
@@ -12,12 +12,15 @@ Name | Type | Description | Notes
**summary** | **str** | | [optional]
**description** | **str** | | [optional]
**state** | **object** | | [optional]
+**metros** | [**List[CompanyMetro]**](CompanyMetro.md) | | [optional]
**logo** | [**CompanyLogo**](CompanyLogo.md) | | [optional]
**tags** | [**List[TagResponse]**](TagResponse.md) | | [optional]
**service_profiles** | [**List[CompanyServiceProfile]**](CompanyServiceProfile.md) | | [optional]
**private_services** | [**List[PrivateService]**](PrivateService.md) | | [optional]
**notifications** | **List[object]** | | [optional]
**web_url** | **str** | | [optional]
+**contact_url** | **str** | | [optional]
+**change** | [**CompanyProfileChange**](CompanyProfileChange.md) | | [optional]
**change_log** | [**Changelog**](Changelog.md) | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md b/equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md
index 647f2ae1..5348b795 100644
--- a/equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md
+++ b/equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**filter** | [**CompanyProfileSearchFilter**](CompanyProfileSearchFilter.md) | | [optional]
**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**sort** | [**Sort**](Sort.md) | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/CompanyProfileSortDirection.md b/equinix/services/fabricv4/docs/CompanyProfileSortDirection.md
new file mode 100644
index 00000000..60185848
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CompanyProfileSortDirection.md
@@ -0,0 +1,13 @@
+# CompanyProfileSortDirection
+
+Sorting direction
+
+## Enum
+
+* `DESC` (value: `'DESC'`)
+
+* `ASC` (value: `'ASC'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CompanyProfileUpdateResponse.md b/equinix/services/fabricv4/docs/CompanyProfileUpdateResponse.md
deleted file mode 100644
index 0ba4ea23..00000000
--- a/equinix/services/fabricv4/docs/CompanyProfileUpdateResponse.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# CompanyProfileUpdateResponse
-
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-**company_profile** | [**CompanyProfileResponse**](CompanyProfileResponse.md) | | [optional]
-**change** | [**CompanyProfileChange**](CompanyProfileChange.md) | | [optional]
-
-## Example
-
-```python
-from equinix.services.fabricv4.models.company_profile_update_response import CompanyProfileUpdateResponse
-
-# TODO update the JSON string below
-json = "{}"
-# create an instance of CompanyProfileUpdateResponse from a JSON string
-company_profile_update_response_instance = CompanyProfileUpdateResponse.from_json(json)
-# print the JSON string representation of the object
-print(CompanyProfileUpdateResponse.to_json())
-
-# convert the object into a dict
-company_profile_update_response_dict = company_profile_update_response_instance.to_dict()
-# create an instance of CompanyProfileUpdateResponse from a dict
-company_profile_update_response_from_dict = CompanyProfileUpdateResponse.from_dict(company_profile_update_response_dict)
-```
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-
diff --git a/equinix/services/fabricv4/docs/CompanyProfilesApi.md b/equinix/services/fabricv4/docs/CompanyProfilesApi.md
new file mode 100644
index 00000000..be433d0c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CompanyProfilesApi.md
@@ -0,0 +1,1089 @@
+# equinix.services.fabricv4.CompanyProfilesApi
+
+All URIs are relative to *https://api.equinix.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**attach_private_service_to_profile**](CompanyProfilesApi.md#attach_private_service_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId} | Attach Private Service
+[**attach_service_profile_to_profile**](CompanyProfilesApi.md#attach_service_profile_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId} | Attach Service Profile
+[**attach_tag_to_profile**](CompanyProfilesApi.md#attach_tag_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId} | Attach Tag
+[**create_company_profile**](CompanyProfilesApi.md#create_company_profile) | **POST** /fabric/v4/companyProfiles | Create Company Profile
+[**delete_company_profile**](CompanyProfilesApi.md#delete_company_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId} | Delete Company Profile
+[**detach_private_service_from_profile**](CompanyProfilesApi.md#detach_private_service_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId} | Detach Private Service
+[**detach_service_profile_from_profile**](CompanyProfilesApi.md#detach_service_profile_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId} | Detach Service Profile
+[**detach_tag_from_profile**](CompanyProfilesApi.md#detach_tag_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId} | Detach Tag
+[**get_company_profile**](CompanyProfilesApi.md#get_company_profile) | **GET** /fabric/v4/companyProfiles/{companyProfileId} | Get Company Profile by UUID
+[**get_company_profile_private_services**](CompanyProfilesApi.md#get_company_profile_private_services) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/privateServices | Get Private Services
+[**get_company_profile_service_profiles**](CompanyProfilesApi.md#get_company_profile_service_profiles) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles | Get Service Profiles
+[**get_tags**](CompanyProfilesApi.md#get_tags) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/tags | Get Tags
+[**search_company_profile**](CompanyProfilesApi.md#search_company_profile) | **POST** /fabric/v4/companyProfiles/search | Search Company Profiles
+
+
+# **attach_private_service_to_profile**
+> AttachPrivateServiceResponse attach_private_service_to_profile(company_profile_id, private_service_id)
+
+Attach Private Service
+
+Attach a private service to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_private_service_response import AttachPrivateServiceResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ private_service_id = 'private_service_id_example' # str | Private Service UUID
+
+ try:
+ # Attach Private Service
+ api_response = api_instance.attach_private_service_to_profile(company_profile_id, private_service_id)
+ print("The response of CompanyProfilesApi->attach_private_service_to_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->attach_private_service_to_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **private_service_id** | **str**| Private Service UUID |
+
+### Return type
+
+[**AttachPrivateServiceResponse**](AttachPrivateServiceResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **attach_service_profile_to_profile**
+> AttachServiceProfileResponse attach_service_profile_to_profile(company_profile_id, service_profile_id)
+
+Attach Service Profile
+
+Attach a service profile to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_service_profile_response import AttachServiceProfileResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ service_profile_id = 'service_profile_id_example' # str | Service Profile UUID
+
+ try:
+ # Attach Service Profile
+ api_response = api_instance.attach_service_profile_to_profile(company_profile_id, service_profile_id)
+ print("The response of CompanyProfilesApi->attach_service_profile_to_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->attach_service_profile_to_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **service_profile_id** | **str**| Service Profile UUID |
+
+### Return type
+
+[**AttachServiceProfileResponse**](AttachServiceProfileResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **attach_tag_to_profile**
+> AttachTagResponse attach_tag_to_profile(company_profile_id, tag_id)
+
+Attach Tag
+
+Attach a tag to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_tag_response import AttachTagResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ tag_id = 'tag_id_example' # str | Tag UUID
+
+ try:
+ # Attach Tag
+ api_response = api_instance.attach_tag_to_profile(company_profile_id, tag_id)
+ print("The response of CompanyProfilesApi->attach_tag_to_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->attach_tag_to_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **tag_id** | **str**| Tag UUID |
+
+### Return type
+
+[**AttachTagResponse**](AttachTagResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **create_company_profile**
+> CompanyProfileResponse create_company_profile(company_profile_request)
+
+Create Company Profile
+
+Create a new company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
+from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_request = equinix.services.fabricv4.CompanyProfileRequest() # CompanyProfileRequest |
+
+ try:
+ # Create Company Profile
+ api_response = api_instance.create_company_profile(company_profile_request)
+ print("The response of CompanyProfilesApi->create_company_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->create_company_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_request** | [**CompanyProfileRequest**](CompanyProfileRequest.md)| |
+
+### Return type
+
+[**CompanyProfileResponse**](CompanyProfileResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Company profile created successfully | - |
+**400** | Bad request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_company_profile**
+> CompanyProfileResponse delete_company_profile(company_profile_id)
+
+Delete Company Profile
+
+Delete company profile by UUID Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+
+ try:
+ # Delete Company Profile
+ api_response = api_instance.delete_company_profile(company_profile_id)
+ print("The response of CompanyProfilesApi->delete_company_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->delete_company_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+
+### Return type
+
+[**CompanyProfileResponse**](CompanyProfileResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **detach_private_service_from_profile**
+> AttachPrivateServiceResponse detach_private_service_from_profile(company_profile_id, private_service_id)
+
+Detach Private Service
+
+Detach a private service from a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_private_service_response import AttachPrivateServiceResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ private_service_id = 'private_service_id_example' # str | Private Service UUID
+
+ try:
+ # Detach Private Service
+ api_response = api_instance.detach_private_service_from_profile(company_profile_id, private_service_id)
+ print("The response of CompanyProfilesApi->detach_private_service_from_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->detach_private_service_from_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **private_service_id** | **str**| Private Service UUID |
+
+### Return type
+
+[**AttachPrivateServiceResponse**](AttachPrivateServiceResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **detach_service_profile_from_profile**
+> AttachServiceProfileResponse detach_service_profile_from_profile(company_profile_id, service_profile_id)
+
+Detach Service Profile
+
+Detach a service profile from a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_service_profile_response import AttachServiceProfileResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ service_profile_id = 'service_profile_id_example' # str | Service Profile UUID
+
+ try:
+ # Detach Service Profile
+ api_response = api_instance.detach_service_profile_from_profile(company_profile_id, service_profile_id)
+ print("The response of CompanyProfilesApi->detach_service_profile_from_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->detach_service_profile_from_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **service_profile_id** | **str**| Service Profile UUID |
+
+### Return type
+
+[**AttachServiceProfileResponse**](AttachServiceProfileResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **detach_tag_from_profile**
+> AttachTagResponse detach_tag_from_profile(company_profile_id, tag_id)
+
+Detach Tag
+
+Detach a tag from a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.attach_tag_response import AttachTagResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+ tag_id = 'tag_id_example' # str | Tag UUID
+
+ try:
+ # Detach Tag
+ api_response = api_instance.detach_tag_from_profile(company_profile_id, tag_id)
+ print("The response of CompanyProfilesApi->detach_tag_from_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->detach_tag_from_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+ **tag_id** | **str**| Tag UUID |
+
+### Return type
+
+[**AttachTagResponse**](AttachTagResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_company_profile**
+> CompanyProfileResponse get_company_profile(company_profile_id)
+
+Get Company Profile by UUID
+
+Get company profile details by UUID Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+
+ try:
+ # Get Company Profile by UUID
+ api_response = api_instance.get_company_profile(company_profile_id)
+ print("The response of CompanyProfilesApi->get_company_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->get_company_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+
+### Return type
+
+[**CompanyProfileResponse**](CompanyProfileResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_company_profile_private_services**
+> PrivateServiceListResponse get_company_profile_private_services(company_profile_id)
+
+Get Private Services
+
+Get all private services attached to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.private_service_list_response import PrivateServiceListResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+
+ try:
+ # Get Private Services
+ api_response = api_instance.get_company_profile_private_services(company_profile_id)
+ print("The response of CompanyProfilesApi->get_company_profile_private_services:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->get_company_profile_private_services: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+
+### Return type
+
+[**PrivateServiceListResponse**](PrivateServiceListResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_company_profile_service_profiles**
+> ServiceProfileListResponse get_company_profile_service_profiles(company_profile_id)
+
+Get Service Profiles
+
+Get all service profiles attached to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.service_profile_list_response import ServiceProfileListResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+
+ try:
+ # Get Service Profiles
+ api_response = api_instance.get_company_profile_service_profiles(company_profile_id)
+ print("The response of CompanyProfilesApi->get_company_profile_service_profiles:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->get_company_profile_service_profiles: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+
+### Return type
+
+[**ServiceProfileListResponse**](ServiceProfileListResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_tags**
+> TagListResponse get_tags(company_profile_id)
+
+Get Tags
+
+Get all tags attached to a company profile Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.tag_list_response import TagListResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_id = 'company_profile_id_example' # str | Company Profile UUID
+
+ try:
+ # Get Tags
+ api_response = api_instance.get_tags(company_profile_id)
+ print("The response of CompanyProfilesApi->get_tags:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->get_tags: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_id** | **str**| Company Profile UUID |
+
+### Return type
+
+[**TagListResponse**](TagListResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+**404** | Not found | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **search_company_profile**
+> CompanyProfileSearchResponse search_company_profile(company_profile_search_request, view_point=view_point)
+
+Search Company Profiles
+
+Search company profiles based on filter criteria Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
+from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.CompanyProfilesApi(api_client)
+ company_profile_search_request = equinix.services.fabricv4.CompanyProfileSearchRequest() # CompanyProfileSearchRequest |
+ view_point = 'aSide' # str | Viewpoint for the request, either 'aSide' or 'zSide' (optional) (default to 'aSide')
+
+ try:
+ # Search Company Profiles
+ api_response = api_instance.search_company_profile(company_profile_search_request, view_point=view_point)
+ print("The response of CompanyProfilesApi->search_company_profile:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling CompanyProfilesApi->search_company_profile: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **company_profile_search_request** | [**CompanyProfileSearchRequest**](CompanyProfileSearchRequest.md)| |
+ **view_point** | **str**| Viewpoint for the request, either 'aSide' or 'zSide' | [optional] [default to 'aSide']
+
+### Return type
+
+[**CompanyProfileSearchResponse**](CompanyProfileSearchResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**400** | Bad request | - |
+**403** | Forbidden | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/ConnectionRouteTableEntry.md b/equinix/services/fabricv4/docs/ConnectionRouteTableEntry.md
index de5c5876..a5c77d13 100644
--- a/equinix/services/fabricv4/docs/ConnectionRouteTableEntry.md
+++ b/equinix/services/fabricv4/docs/ConnectionRouteTableEntry.md
@@ -8,7 +8,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | [**RouteTableEntryType**](RouteTableEntryType.md) | |
**protocol_type** | [**RouteTableEntryProtocolType**](RouteTableEntryProtocolType.md) | | [optional]
-**state** | [**ConnectionRouteTableEntryState**](ConnectionRouteTableEntryState.md) | |
+**state** | [**ConnectionRouteTableEntryState**](ConnectionRouteTableEntryState.md) | | [optional]
**prefix** | **str** | | [optional]
**next_hop** | **str** | | [optional]
**med** | **int** | | [optional]
diff --git a/equinix/services/fabricv4/docs/EquinixStatus.md b/equinix/services/fabricv4/docs/EquinixStatus.md
index 587c4ab8..3ef14935 100644
--- a/equinix/services/fabricv4/docs/EquinixStatus.md
+++ b/equinix/services/fabricv4/docs/EquinixStatus.md
@@ -66,6 +66,8 @@ Connection status
* `PENDING_INTERFACE_CONFIGURATION` (value: `'PENDING_INTERFACE_CONFIGURATION'`)
+* `PENDING_ACTIVATION` (value: `'PENDING_ACTIVATION'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/GeoScopeType.md b/equinix/services/fabricv4/docs/GeoScopeType.md
index 95e29952..25aad9d0 100644
--- a/equinix/services/fabricv4/docs/GeoScopeType.md
+++ b/equinix/services/fabricv4/docs/GeoScopeType.md
@@ -10,6 +10,14 @@ Geographic boundary types
* `JAPAN` (value: `'JAPAN'`)
+* `UK` (value: `'UK'`)
+
+* `AUSTRALIA` (value: `'AUSTRALIA'`)
+
+* `BRAZIL` (value: `'BRAZIL'`)
+
+* `SWITZERLAND` (value: `'SWITZERLAND'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/GetMetricsByNameResponse.md b/equinix/services/fabricv4/docs/GetMetricsByNameResponse.md
new file mode 100644
index 00000000..5b38dfe3
--- /dev/null
+++ b/equinix/services/fabricv4/docs/GetMetricsByNameResponse.md
@@ -0,0 +1,30 @@
+# GetMetricsByNameResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[Metric]**](Metric.md) | Data returned from the API call. | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.get_metrics_by_name_response import GetMetricsByNameResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GetMetricsByNameResponse from a JSON string
+get_metrics_by_name_response_instance = GetMetricsByNameResponse.from_json(json)
+# print the JSON string representation of the object
+print(GetMetricsByNameResponse.to_json())
+
+# convert the object into a dict
+get_metrics_by_name_response_dict = get_metrics_by_name_response_instance.to_dict()
+# create an instance of GetMetricsByNameResponse from a dict
+get_metrics_by_name_response_from_dict = GetMetricsByNameResponse.from_dict(get_metrics_by_name_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/LogoResponse.md b/equinix/services/fabricv4/docs/LogoResponse.md
index 93ed497b..fb93b345 100644
--- a/equinix/services/fabricv4/docs/LogoResponse.md
+++ b/equinix/services/fabricv4/docs/LogoResponse.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**name** | **str** | | [optional]
**description** | **str** | | [optional]
**status** | **str** | | [optional]
+**extension_type** | **str** | | [optional]
**changelog** | [**Changelog**](Changelog.md) | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/LogosApi.md b/equinix/services/fabricv4/docs/LogosApi.md
new file mode 100644
index 00000000..116dec6d
--- /dev/null
+++ b/equinix/services/fabricv4/docs/LogosApi.md
@@ -0,0 +1,174 @@
+# equinix.services.fabricv4.LogosApi
+
+All URIs are relative to *https://api.equinix.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**delete_logo_by_uuid**](LogosApi.md#delete_logo_by_uuid) | **DELETE** /fabric/v4/logos/{uuid} | Delete Logo
+[**get_logo_by_uuid**](LogosApi.md#get_logo_by_uuid) | **GET** /fabric/v4/logos/{uuid} | Get Logo
+
+
+# **delete_logo_by_uuid**
+> LogoResponse delete_logo_by_uuid(uuid)
+
+Delete Logo
+
+Delete Logo by UUID
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.logo_response import LogoResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.LogosApi(api_client)
+ uuid = 'uuid_example' # str | UUID of the Logo
+
+ try:
+ # Delete Logo
+ api_response = api_instance.delete_logo_by_uuid(uuid)
+ print("The response of LogosApi->delete_logo_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LogosApi->delete_logo_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **uuid** | **str**| UUID of the Logo |
+
+### Return type
+
+[**LogoResponse**](LogoResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json; charset=UTF-8, application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**202** | Successful Delete operation | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**500** | Internal Server Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_logo_by_uuid**
+> bytearray get_logo_by_uuid(uuid)
+
+Get Logo
+
+Get Logo by UUID
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.LogosApi(api_client)
+ uuid = 'uuid_example' # str | UUID of the Logo
+
+ try:
+ # Get Logo
+ api_response = api_instance.get_logo_by_uuid(uuid)
+ print("The response of LogosApi->get_logo_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling LogosApi->get_logo_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **uuid** | **str**| UUID of the Logo |
+
+### Return type
+
+**bytearray**
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: multipart/mixed, application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful Get operation | - |
+**400** | Bad request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**500** | Internal Server Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/MetricResource.md b/equinix/services/fabricv4/docs/MetricResource.md
index 2fce32d7..7d691c97 100644
--- a/equinix/services/fabricv4/docs/MetricResource.md
+++ b/equinix/services/fabricv4/docs/MetricResource.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**href** | **str** | Metric resource href | [optional]
**uuid** | **str** | Metric resource UUID | [optional]
**type** | **str** | Metric resource type | [optional]
+**state** | **str** | Metric resource state | [optional]
**name** | **str** | Metric resource name | [optional]
**description** | **str** | Metric resource description | [optional]
diff --git a/equinix/services/fabricv4/docs/MetricsApi.md b/equinix/services/fabricv4/docs/MetricsApi.md
index a1c34505..42290be1 100644
--- a/equinix/services/fabricv4/docs/MetricsApi.md
+++ b/equinix/services/fabricv4/docs/MetricsApi.md
@@ -5,6 +5,7 @@ All URIs are relative to *https://api.equinix.com*
Method | HTTP request | Description
------------- | ------------- | -------------
[**get_metric_by_asset_id**](MetricsApi.md#get_metric_by_asset_id) | **GET** /fabric/v4/{asset}/{assetId}/metrics | Get Metrics by Asset Id
+[**get_metric_by_name**](MetricsApi.md#get_metric_by_name) | **GET** /fabric/v4/metrics | Get Metrics by Name
[**search_metrics**](MetricsApi.md#search_metrics) | **POST** /fabric/v4/metrics/search | Search Metrics
@@ -48,7 +49,7 @@ with equinix.services.fabricv4.ApiClient(configuration) as api_client:
api_instance = equinix.services.fabricv4.MetricsApi(api_client)
asset = equinix.services.fabricv4.MetricAssetType() # MetricAssetType | asset
asset_id = 'asset_id_example' # str | asset UUID
- name = 'name_example' # str | Name of the metric types:
- equinix.fabric.connection.bandwidth_rx.usage
- equinix.fabric.connection.bandwidth_tx.usage
- equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count
- equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count
- equinix.fabric.port.bandwidth_rx.usage
- equinix.fabric.port.bandwidth_tx.usage
- equinix.fabric.port.packets_dropped_rx.count
- equinix.fabric.port.packets_dropped_tx.count
- equinix.fabric.port.packets_erred_rx.count
- equinix.fabric.port.packets_erred_tx.count
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency
- equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg
+ name = 'equinix.fabric.connection.bandwidth_rx.usage' # str | Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg`
from_date_time = '2013-10-20T19:20:30+01:00' # datetime | Start date and time (optional)
to_date_time = '2013-10-20T19:20:30+01:00' # datetime | End date and time (optional)
offset = 0 # int | offset (optional) (default to 0)
@@ -72,7 +73,7 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**asset** | [**MetricAssetType**](.md)| asset |
**asset_id** | **str**| asset UUID |
- **name** | **str**| Name of the metric types: <br> - equinix.fabric.connection.bandwidth_rx.usage <br> - equinix.fabric.connection.bandwidth_tx.usage <br> - equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count <br> - equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count <br> - equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count <br> - equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count <br> - equinix.fabric.port.bandwidth_rx.usage <br> - equinix.fabric.port.bandwidth_tx.usage <br> - equinix.fabric.port.packets_dropped_rx.count <br> - equinix.fabric.port.packets_dropped_tx.count <br> - equinix.fabric.port.packets_erred_rx.count <br> - equinix.fabric.port.packets_erred_tx.count <br> - equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.latency <br> - equinix.fabric.metro.{source_metro_code}_{destination_metro_code}.jitter_avg <br> |
+ **name** | **str**| Name of the metric types: - `equinix.fabric.connection.bandwidth_rx.usage` - `equinix.fabric.connection.bandwidth_tx.usage` - `equinix.fabric.connection.packets_dropped_rx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_aside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_rx_zside_rateexceeded.count` - `equinix.fabric.connection.packets_dropped_tx_zside_rateexceeded.count` - `equinix.fabric.port.bandwidth_rx.usage` - `equinix.fabric.port.bandwidth_tx.usage` - `equinix.fabric.port.packets_dropped_rx.count` - `equinix.fabric.port.packets_dropped_tx.count` - `equinix.fabric.port.packets_erred_rx.count` - `equinix.fabric.port.packets_erred_tx.count` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.latency` - `equinix.fabric.metro.{SOURCE_METRO_CODE}_{DESTINATION_METRO_CODE}.jitter_avg` |
**from_date_time** | **datetime**| Start date and time | [optional]
**to_date_time** | **datetime**| End date and time | [optional]
**offset** | **int**| offset | [optional] [default to 0]
@@ -103,6 +104,94 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **get_metric_by_name**
+> GetMetricsByNameResponse get_metric_by_name(name, value, offset=offset, limit=limit)
+
+Get Metrics by Name
+
+This API provides capability to retrieve Metrics by specific wildcard metric types
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.get_metrics_by_name_response import GetMetricsByNameResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.MetricsApi(api_client)
+ name = 'equinix.fabric.metro.*.latency' # str | Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg`
+ value = 'value_example' # str | value
+ offset = 0 # int | offset (optional) (default to 0)
+ limit = 20 # int | limit (optional) (default to 20)
+
+ try:
+ # Get Metrics by Name
+ api_response = api_instance.get_metric_by_name(name, value, offset=offset, limit=limit)
+ print("The response of MetricsApi->get_metric_by_name:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling MetricsApi->get_metric_by_name: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **name** | **str**| Name of the metric types with wildcard: - `equinix.fabric.metro.*.latency` - `equinix.fabric.metro.*.jitter_avg` |
+ **value** | **str**| value |
+ **offset** | **int**| offset | [optional] [default to 0]
+ **limit** | **int**| limit | [optional] [default to 20]
+
+### Return type
+
+[**GetMetricsByNameResponse**](GetMetricsByNameResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful operation | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**404** | Not Found | - |
+**500** | Internal server error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **search_metrics**
> GetMetricsByAssetResponse search_metrics(metrics_search_request)
diff --git a/equinix/services/fabricv4/docs/Metro.md b/equinix/services/fabricv4/docs/Metro.md
index bff46b7a..4badf9cd 100644
--- a/equinix/services/fabricv4/docs/Metro.md
+++ b/equinix/services/fabricv4/docs/Metro.md
@@ -1,6 +1,6 @@
# Metro
-GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
## Properties
diff --git a/equinix/services/fabricv4/docs/MetroResponse.md b/equinix/services/fabricv4/docs/MetroResponse.md
index 09e96553..5a8d64cb 100644
--- a/equinix/services/fabricv4/docs/MetroResponse.md
+++ b/equinix/services/fabricv4/docs/MetroResponse.md
@@ -1,6 +1,6 @@
# MetroResponse
-GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
## Properties
diff --git a/equinix/services/fabricv4/docs/PatchOperationOp.md b/equinix/services/fabricv4/docs/PatchOperationOp.md
index 067fd176..c747013b 100644
--- a/equinix/services/fabricv4/docs/PatchOperationOp.md
+++ b/equinix/services/fabricv4/docs/PatchOperationOp.md
@@ -6,6 +6,10 @@ The operation to perform
* `REPLACE` (value: `'replace'`)
+* `ADD` (value: `'add'`)
+
+* `REMOVE` (value: `'remove'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/PlatformChangelog.md b/equinix/services/fabricv4/docs/PlatformChangelog.md
new file mode 100644
index 00000000..8688e370
--- /dev/null
+++ b/equinix/services/fabricv4/docs/PlatformChangelog.md
@@ -0,0 +1,35 @@
+# PlatformChangelog
+
+Change log
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**created_by** | **str** | Created by User Key | [optional]
+**created_date_time** | **datetime** | Created by Date and Time | [optional]
+**updated_by** | **str** | Updated by User Key | [optional]
+**updated_date_time** | **datetime** | Updated by Date and Time | [optional]
+**deleted_by** | **str** | Deleted by User Key | [optional]
+**deleted_date_time** | **datetime** | Deleted by Date and Time | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.platform_changelog import PlatformChangelog
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of PlatformChangelog from a JSON string
+platform_changelog_instance = PlatformChangelog.from_json(json)
+# print the JSON string representation of the object
+print(PlatformChangelog.to_json())
+
+# convert the object into a dict
+platform_changelog_dict = platform_changelog_instance.to_dict()
+# create an instance of PlatformChangelog from a dict
+platform_changelog_from_dict = PlatformChangelog.from_dict(platform_changelog_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/PortOrderPurchaseOrder.md b/equinix/services/fabricv4/docs/PortOrderPurchaseOrder.md
index 849e13c4..75d51741 100644
--- a/equinix/services/fabricv4/docs/PortOrderPurchaseOrder.md
+++ b/equinix/services/fabricv4/docs/PortOrderPurchaseOrder.md
@@ -8,8 +8,8 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**number** | **str** | purchase order number | [optional]
**amount** | **str** | purchase order amount | [optional]
-**start_date** | **str** | | [optional]
-**end_date** | **str** | | [optional]
+**start_date** | **datetime** | | [optional]
+**end_date** | **datetime** | | [optional]
**attachment_id** | **str** | | [optional]
**selection_type** | [**PortOrderPurchaseOrderSelectionType**](PortOrderPurchaseOrderSelectionType.md) | | [optional]
**type** | [**PortOrderPurchaseOrderType**](PortOrderPurchaseOrderType.md) | | [optional]
diff --git a/equinix/services/fabricv4/docs/PortOrderSignature.md b/equinix/services/fabricv4/docs/PortOrderSignature.md
index e20fddb9..c4db876c 100644
--- a/equinix/services/fabricv4/docs/PortOrderSignature.md
+++ b/equinix/services/fabricv4/docs/PortOrderSignature.md
@@ -1,6 +1,6 @@
# PortOrderSignature
-Port signature Type
+Port signature details
## Properties
diff --git a/equinix/services/fabricv4/docs/PortOrderSignatureDelegate.md b/equinix/services/fabricv4/docs/PortOrderSignatureDelegate.md
index 7d44f83f..d374c087 100644
--- a/equinix/services/fabricv4/docs/PortOrderSignatureDelegate.md
+++ b/equinix/services/fabricv4/docs/PortOrderSignatureDelegate.md
@@ -1,12 +1,12 @@
# PortOrderSignatureDelegate
-delegate oder details
+order delegate details
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**first_name** | **str** | name of delegate | [optional]
+**first_name** | **str** | first name of delegate | [optional]
**last_name** | **str** | last Name of delegate | [optional]
**email** | **str** | email of delegate | [optional]
diff --git a/equinix/services/fabricv4/docs/PortsApi.md b/equinix/services/fabricv4/docs/PortsApi.md
index eadbd92c..acbb5f70 100644
--- a/equinix/services/fabricv4/docs/PortsApi.md
+++ b/equinix/services/fabricv4/docs/PortsApi.md
@@ -104,7 +104,7 @@ Name | Type | Description | Notes
Create Port
-Creates Equinix Fabric™ Port.
+Creates Equinix Fabric? Port.
### Example
diff --git a/equinix/services/fabricv4/docs/ResponseIncompleteDetails.md b/equinix/services/fabricv4/docs/ResponseIncompleteDetails.md
new file mode 100644
index 00000000..49d44c3c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ResponseIncompleteDetails.md
@@ -0,0 +1,30 @@
+# ResponseIncompleteDetails
+
+Details about why the response is incomplete.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**reason** | [**ResponseIncompleteDetailsReason**](ResponseIncompleteDetailsReason.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.response_incomplete_details import ResponseIncompleteDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResponseIncompleteDetails from a JSON string
+response_incomplete_details_instance = ResponseIncompleteDetails.from_json(json)
+# print the JSON string representation of the object
+print(ResponseIncompleteDetails.to_json())
+
+# convert the object into a dict
+response_incomplete_details_dict = response_incomplete_details_instance.to_dict()
+# create an instance of ResponseIncompleteDetails from a dict
+response_incomplete_details_from_dict = ResponseIncompleteDetails.from_dict(response_incomplete_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md b/equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md
new file mode 100644
index 00000000..212bbb7b
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md
@@ -0,0 +1,13 @@
+# ResponseIncompleteDetailsReason
+
+The reason why the response is incomplete.
+
+## Enum
+
+* `MAX_OUTPUT_TOKENS` (value: `'max_output_tokens'`)
+
+* `CONTENT_FILTER` (value: `'content_filter'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md b/equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md
new file mode 100644
index 00000000..f313a3e5
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md
@@ -0,0 +1,30 @@
+# ResponseUsageInputTokensDetails
+
+A detailed breakdown of the input tokens.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cached_tokens** | **int** | The number of tokens that were retrieved from the cache. [More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching). |
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.response_usage_input_tokens_details import ResponseUsageInputTokensDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResponseUsageInputTokensDetails from a JSON string
+response_usage_input_tokens_details_instance = ResponseUsageInputTokensDetails.from_json(json)
+# print the JSON string representation of the object
+print(ResponseUsageInputTokensDetails.to_json())
+
+# convert the object into a dict
+response_usage_input_tokens_details_dict = response_usage_input_tokens_details_instance.to_dict()
+# create an instance of ResponseUsageInputTokensDetails from a dict
+response_usage_input_tokens_details_from_dict = ResponseUsageInputTokensDetails.from_dict(response_usage_input_tokens_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md b/equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md
new file mode 100644
index 00000000..6805f3f8
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md
@@ -0,0 +1,30 @@
+# ResponseUsageOutputTokensDetails
+
+A detailed breakdown of the output tokens.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**reasoning_tokens** | **int** | The number of reasoning tokens. |
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.response_usage_output_tokens_details import ResponseUsageOutputTokensDetails
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResponseUsageOutputTokensDetails from a JSON string
+response_usage_output_tokens_details_instance = ResponseUsageOutputTokensDetails.from_json(json)
+# print the JSON string representation of the object
+print(ResponseUsageOutputTokensDetails.to_json())
+
+# convert the object into a dict
+response_usage_output_tokens_details_dict = response_usage_output_tokens_details_instance.to_dict()
+# create an instance of ResponseUsageOutputTokensDetails from a dict
+response_usage_output_tokens_details_from_dict = ResponseUsageOutputTokensDetails.from_dict(response_usage_output_tokens_details_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ServiceProfilesApi.md b/equinix/services/fabricv4/docs/ServiceProfilesApi.md
index 25ef673a..ada5ab0e 100644
--- a/equinix/services/fabricv4/docs/ServiceProfilesApi.md
+++ b/equinix/services/fabricv4/docs/ServiceProfilesApi.md
@@ -19,7 +19,7 @@ Method | HTTP request | Description
Create Profile
-Create Service Profile creates Equinix Fabric™ Service Profile.
+Create Service Profile creates Equinix Fabric? Service Profile.
### Example
diff --git a/equinix/services/fabricv4/docs/ServiceTokensApi.md b/equinix/services/fabricv4/docs/ServiceTokensApi.md
index 4886dc6d..044c9197 100644
--- a/equinix/services/fabricv4/docs/ServiceTokensApi.md
+++ b/equinix/services/fabricv4/docs/ServiceTokensApi.md
@@ -18,7 +18,7 @@ Method | HTTP request | Description
Create Service Token
-Create Service Tokens generates Equinix Fabric™ service tokens. These tokens authorize users to access protected resources and services.
+Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.
### Example
diff --git a/equinix/services/fabricv4/docs/Sort.md b/equinix/services/fabricv4/docs/Sort.md
new file mode 100644
index 00000000..75c6b426
--- /dev/null
+++ b/equinix/services/fabricv4/docs/Sort.md
@@ -0,0 +1,30 @@
+# Sort
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | **str** | Property to sort by | [optional]
+**direction** | [**CompanyProfileSortDirection**](CompanyProfileSortDirection.md) | | [optional] [default to CompanyProfileSortDirection.ASC]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.sort import Sort
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Sort from a JSON string
+sort_instance = Sort.from_json(json)
+# print the JSON string representation of the object
+print(Sort.to_json())
+
+# convert the object into a dict
+sort_dict = sort_instance.to_dict()
+# create an instance of Sort from a dict
+sort_from_dict = Sort.from_dict(sort_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/TagResponse.md b/equinix/services/fabricv4/docs/TagResponse.md
index 247599ca..b2a543c2 100644
--- a/equinix/services/fabricv4/docs/TagResponse.md
+++ b/equinix/services/fabricv4/docs/TagResponse.md
@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**type** | **str** | | [optional]
**name** | **str** | | [optional]
**display_name** | **str** | | [optional]
+**weight** | **int** | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/TagsApi.md b/equinix/services/fabricv4/docs/TagsApi.md
new file mode 100644
index 00000000..9f85bde5
--- /dev/null
+++ b/equinix/services/fabricv4/docs/TagsApi.md
@@ -0,0 +1,179 @@
+# equinix.services.fabricv4.TagsApi
+
+All URIs are relative to *https://api.equinix.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_tag**](TagsApi.md#create_tag) | **POST** /fabric/v4/tags | Create Tag
+[**list_tags**](TagsApi.md#list_tags) | **GET** /fabric/v4/tags | List Tags
+
+
+# **create_tag**
+> TagResponse create_tag(tag_request)
+
+Create Tag
+
+Create Tag for Equinix Fabric?.
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.tag_request import TagRequest
+from equinix.services.fabricv4.models.tag_response import TagResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.TagsApi(api_client)
+ tag_request = equinix.services.fabricv4.TagRequest() # TagRequest |
+
+ try:
+ # Create Tag
+ api_response = api_instance.create_tag(tag_request)
+ print("The response of TagsApi->create_tag:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->create_tag: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tag_request** | [**TagRequest**](TagRequest.md)| |
+
+### Return type
+
+[**TagResponse**](TagResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Successful Create operation | - |
+**400** | Bad request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**500** | Internal Server Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **list_tags**
+> TagListResponse list_tags(type=type, offset=offset, limit=limit)
+
+List Tags
+
+Get all Tags
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.tag_list_response import TagListResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.TagsApi(api_client)
+ type = ['type_example'] # List[str] | Filter by tag type (optional)
+ offset = 0 # int | Offset for pagination (optional) (default to 0)
+ limit = 20 # int | Limit for pagination (optional) (default to 20)
+
+ try:
+ # List Tags
+ api_response = api_instance.list_tags(type=type, offset=offset, limit=limit)
+ print("The response of TagsApi->list_tags:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling TagsApi->list_tags: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **type** | [**List[str]**](str.md)| Filter by tag type | [optional]
+ **offset** | **int**| Offset for pagination | [optional] [default to 0]
+ **limit** | **int**| Limit for pagination | [optional] [default to 20]
+
+### Return type
+
+[**TagListResponse**](TagListResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Successful List operation | - |
+**400** | Bad request | - |
+**401** | Unauthorized | - |
+**403** | Forbidden | - |
+**500** | Internal Server Error | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/VirtualPortPrice.md b/equinix/services/fabricv4/docs/VirtualPortPrice.md
index b4df9ca7..995c8be1 100644
--- a/equinix/services/fabricv4/docs/VirtualPortPrice.md
+++ b/equinix/services/fabricv4/docs/VirtualPortPrice.md
@@ -17,6 +17,7 @@ Name | Type | Description | Notes
**service_type** | [**VirtualPortServiceType**](VirtualPortServiceType.md) | | [optional] [default to VirtualPortServiceType.MSP]
**settings** | [**VirtualPortConfiguration**](VirtualPortConfiguration.md) | | [optional]
**package** | [**VirtualPortPackage**](VirtualPortPackage.md) | | [optional]
+**service_code** | **str** | Port service code. | [optional]
## Example
diff --git a/equinix/services/fabricv4/models/__init__.py b/equinix/services/fabricv4/models/__init__.py
index 4ecea0d0..a715fcd9 100644
--- a/equinix/services/fabricv4/models/__init__.py
+++ b/equinix/services/fabricv4/models/__init__.py
@@ -112,6 +112,7 @@
from equinix.services.fabricv4.models.cloud_router_sort_direction import CloudRouterSortDirection
from equinix.services.fabricv4.models.code import Code
from equinix.services.fabricv4.models.company_logo import CompanyLogo
+from equinix.services.fabricv4.models.company_metro import CompanyMetro
from equinix.services.fabricv4.models.company_profile_action_request import CompanyProfileActionRequest
from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
@@ -119,7 +120,7 @@
from equinix.services.fabricv4.models.company_profile_search_filter import CompanyProfileSearchFilter
from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
-from equinix.services.fabricv4.models.company_profile_update_response import CompanyProfileUpdateResponse
+from equinix.services.fabricv4.models.company_profile_sort_direction import CompanyProfileSortDirection
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
from equinix.services.fabricv4.models.connected_metro import ConnectedMetro
from equinix.services.fabricv4.models.connection import Connection
@@ -199,6 +200,7 @@
from equinix.services.fabricv4.models.get_all_stream_subscription_response import GetAllStreamSubscriptionResponse
from equinix.services.fabricv4.models.get_cloud_events_by_asset_response import GetCloudEventsByAssetResponse
from equinix.services.fabricv4.models.get_metrics_by_asset_response import GetMetricsByAssetResponse
+from equinix.services.fabricv4.models.get_metrics_by_name_response import GetMetricsByNameResponse
from equinix.services.fabricv4.models.get_response import GetResponse
from equinix.services.fabricv4.models.get_route_aggregation_get_connections_response import GetRouteAggregationGetConnectionsResponse
from equinix.services.fabricv4.models.get_route_aggregation_rules_response import GetRouteAggregationRulesResponse
@@ -292,6 +294,7 @@
from equinix.services.fabricv4.models.physical_port import PhysicalPort
from equinix.services.fabricv4.models.physical_port_settings import PhysicalPortSettings
from equinix.services.fabricv4.models.physical_port_type import PhysicalPortType
+from equinix.services.fabricv4.models.platform_changelog import PlatformChangelog
from equinix.services.fabricv4.models.port import Port
from equinix.services.fabricv4.models.port_additional_info import PortAdditionalInfo
from equinix.services.fabricv4.models.port_bmmr_type import PortBmmrType
@@ -388,6 +391,10 @@
from equinix.services.fabricv4.models.resource_data import ResourceData
from equinix.services.fabricv4.models.resource_selector import ResourceSelector
from equinix.services.fabricv4.models.resource_selector_response import ResourceSelectorResponse
+from equinix.services.fabricv4.models.response_incomplete_details import ResponseIncompleteDetails
+from equinix.services.fabricv4.models.response_incomplete_details_reason import ResponseIncompleteDetailsReason
+from equinix.services.fabricv4.models.response_usage_input_tokens_details import ResponseUsageInputTokensDetails
+from equinix.services.fabricv4.models.response_usage_output_tokens_details import ResponseUsageOutputTokensDetails
from equinix.services.fabricv4.models.route_aggregation_change_data import RouteAggregationChangeData
from equinix.services.fabricv4.models.route_aggregation_change_data_response import RouteAggregationChangeDataResponse
from equinix.services.fabricv4.models.route_aggregation_connections_data import RouteAggregationConnectionsData
@@ -546,6 +553,7 @@
from equinix.services.fabricv4.models.simplified_token_network_type import SimplifiedTokenNetworkType
from equinix.services.fabricv4.models.simplified_virtual_device import SimplifiedVirtualDevice
from equinix.services.fabricv4.models.simplified_virtual_device_type import SimplifiedVirtualDeviceType
+from equinix.services.fabricv4.models.sort import Sort
from equinix.services.fabricv4.models.sort_by import SortBy
from equinix.services.fabricv4.models.sort_criteria import SortCriteria
from equinix.services.fabricv4.models.sort_criteria_response import SortCriteriaResponse
diff --git a/equinix/services/fabricv4/models/attach_logo_response.py b/equinix/services/fabricv4/models/attach_logo_response.py
index 077fd937..936d1487 100644
--- a/equinix/services/fabricv4/models/attach_logo_response.py
+++ b/equinix/services/fabricv4/models/attach_logo_response.py
@@ -26,8 +26,9 @@ class AttachLogoResponse(BaseModel):
type: StrictStr = Field(description="Type of the logo or attachment")
uuid: StrictStr = Field(description="Unique identifier for the logo")
attachment_status: Optional[StrictStr] = Field(default=None, description="Status of the attachment operation", alias="attachmentStatus")
+ extension_type: Optional[StrictStr] = Field(default=None, description="Extension type of logo", alias="extensionType")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "type", "uuid", "attachmentStatus"]
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "attachmentStatus", "extensionType"]
model_config = ConfigDict(
populate_by_name=True,
@@ -90,7 +91,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"href": obj.get("href"),
"type": obj.get("type"),
"uuid": obj.get("uuid"),
- "attachmentStatus": obj.get("attachmentStatus")
+ "attachmentStatus": obj.get("attachmentStatus"),
+ "extensionType": obj.get("extensionType")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/cloud_event_asset_type.py b/equinix/services/fabricv4/models/cloud_event_asset_type.py
index 6f956e0f..ed66ee41 100644
--- a/equinix/services/fabricv4/models/cloud_event_asset_type.py
+++ b/equinix/services/fabricv4/models/cloud_event_asset_type.py
@@ -25,6 +25,7 @@ class CloudEventAssetType(str, Enum):
PORTS = 'ports'
CONNECTIONS = 'connections'
ROUTERS = 'routers'
+ METROS = 'metros'
SERVICETOKENS = 'serviceTokens'
NETWORKS = 'networks'
PROJECTS = 'projects'
diff --git a/equinix/services/fabricv4/models/company_logo.py b/equinix/services/fabricv4/models/company_logo.py
index 7f1f76fc..e87e40ab 100644
--- a/equinix/services/fabricv4/models/company_logo.py
+++ b/equinix/services/fabricv4/models/company_logo.py
@@ -13,7 +13,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -24,8 +24,9 @@ class CompanyLogo(BaseModel):
""" # noqa: E501
href: Optional[StrictStr] = None
uuid: Optional[StrictStr] = None
+ extension_type: Optional[StrictStr] = Field(default=None, alias="extensionType")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "extensionType"]
model_config = ConfigDict(
populate_by_name=True,
@@ -86,7 +87,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"href": obj.get("href"),
- "uuid": obj.get("uuid")
+ "uuid": obj.get("uuid"),
+ "extensionType": obj.get("extensionType")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/company_metro.py b/equinix/services/fabricv4/models/company_metro.py
new file mode 100644
index 00000000..0a3ed08f
--- /dev/null
+++ b/equinix/services/fabricv4/models/company_metro.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CompanyMetro(BaseModel):
+ """
+ CompanyMetro
+ """ # noqa: E501
+ href: Optional[StrictStr] = None
+ metro_code: Optional[StrictStr] = Field(default=None, alias="metroCode")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["href", "metroCode"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CompanyMetro from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CompanyMetro from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "href": obj.get("href"),
+ "metroCode": obj.get("metroCode")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/company_profile_change.py b/equinix/services/fabricv4/models/company_profile_change.py
index 8aa7efbd..21792360 100644
--- a/equinix/services/fabricv4/models/company_profile_change.py
+++ b/equinix/services/fabricv4/models/company_profile_change.py
@@ -23,12 +23,14 @@ class CompanyProfileChange(BaseModel):
"""
CompanyProfileChange
""" # noqa: E501
+ uuid: Optional[StrictStr] = None
type: Optional[StrictStr] = None
status: Optional[StrictStr] = None
created_date_time: Optional[datetime] = Field(default=None, alias="createdDateTime")
+ updated_date_time: Optional[datetime] = Field(default=None, alias="updatedDateTime")
data: Optional[Dict[str, Any]] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["type", "status", "createdDateTime", "data"]
+ __properties: ClassVar[List[str]] = ["uuid", "type", "status", "createdDateTime", "updatedDateTime", "data"]
model_config = ConfigDict(
populate_by_name=True,
@@ -88,9 +90,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "uuid": obj.get("uuid"),
"type": obj.get("type"),
"status": obj.get("status"),
"createdDateTime": obj.get("createdDateTime"),
+ "updatedDateTime": obj.get("updatedDateTime"),
"data": obj.get("data")
})
# store additional fields in additional_properties
diff --git a/equinix/services/fabricv4/models/company_profile_request.py b/equinix/services/fabricv4/models/company_profile_request.py
index f7db6704..5cc46a4a 100644
--- a/equinix/services/fabricv4/models/company_profile_request.py
+++ b/equinix/services/fabricv4/models/company_profile_request.py
@@ -29,8 +29,9 @@ class CompanyProfileRequest(BaseModel):
description: Annotated[str, Field(min_length=1, strict=True, max_length=450)]
notifications: Optional[List[Dict[str, Any]]] = None
web_url: Optional[StrictStr] = Field(default=None, alias="webUrl")
+ contact_url: Optional[StrictStr] = Field(default=None, alias="contactUrl")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["type", "name", "summary", "description", "notifications", "webUrl"]
+ __properties: ClassVar[List[str]] = ["type", "name", "summary", "description", "notifications", "webUrl", "contactUrl"]
model_config = ConfigDict(
populate_by_name=True,
@@ -95,7 +96,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"summary": obj.get("summary"),
"description": obj.get("description"),
"notifications": obj.get("notifications"),
- "webUrl": obj.get("webUrl")
+ "webUrl": obj.get("webUrl"),
+ "contactUrl": obj.get("contactUrl")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/company_profile_response.py b/equinix/services/fabricv4/models/company_profile_response.py
index bb3c4276..05568815 100644
--- a/equinix/services/fabricv4/models/company_profile_response.py
+++ b/equinix/services/fabricv4/models/company_profile_response.py
@@ -18,6 +18,8 @@
from typing_extensions import Annotated
from equinix.services.fabricv4.models.changelog import Changelog
from equinix.services.fabricv4.models.company_logo import CompanyLogo
+from equinix.services.fabricv4.models.company_metro import CompanyMetro
+from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
from equinix.services.fabricv4.models.private_service import PrivateService
from equinix.services.fabricv4.models.tag_response import TagResponse
@@ -35,15 +37,18 @@ class CompanyProfileResponse(BaseModel):
summary: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=125)]] = None
description: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=450)]] = None
state: Optional[Dict[str, Any]] = None
+ metros: Optional[List[CompanyMetro]] = None
logo: Optional[CompanyLogo] = None
tags: Optional[List[TagResponse]] = None
service_profiles: Optional[List[CompanyServiceProfile]] = Field(default=None, alias="serviceProfiles")
private_services: Optional[List[PrivateService]] = Field(default=None, alias="privateServices")
notifications: Optional[List[Dict[str, Any]]] = None
web_url: Optional[StrictStr] = Field(default=None, alias="webUrl")
+ contact_url: Optional[StrictStr] = Field(default=None, alias="contactUrl")
+ change: Optional[CompanyProfileChange] = None
change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "summary", "description", "state", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "changeLog"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "summary", "description", "state", "metros", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "contactUrl", "change", "changeLog"]
model_config = ConfigDict(
populate_by_name=True,
@@ -86,6 +91,13 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of each item in metros (list)
+ _items = []
+ if self.metros:
+ for _item_metros in self.metros:
+ if _item_metros:
+ _items.append(_item_metros.to_dict())
+ _dict['metros'] = _items
# override the default output from pydantic by calling `to_dict()` of logo
if self.logo:
_dict['logo'] = self.logo.to_dict()
@@ -110,6 +122,9 @@ def to_dict(self) -> Dict[str, Any]:
if _item_private_services:
_items.append(_item_private_services.to_dict())
_dict['privateServices'] = _items
+ # override the default output from pydantic by calling `to_dict()` of change
+ if self.change:
+ _dict['change'] = self.change.to_dict()
# override the default output from pydantic by calling `to_dict()` of change_log
if self.change_log:
_dict['changeLog'] = self.change_log.to_dict()
@@ -137,12 +152,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"summary": obj.get("summary"),
"description": obj.get("description"),
"state": obj.get("state"),
+ "metros": [CompanyMetro.from_dict(_item) for _item in obj["metros"]] if obj.get("metros") is not None else None,
"logo": CompanyLogo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
"tags": [TagResponse.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
"serviceProfiles": [CompanyServiceProfile.from_dict(_item) for _item in obj["serviceProfiles"]] if obj.get("serviceProfiles") is not None else None,
"privateServices": [PrivateService.from_dict(_item) for _item in obj["privateServices"]] if obj.get("privateServices") is not None else None,
"notifications": obj.get("notifications"),
"webUrl": obj.get("webUrl"),
+ "contactUrl": obj.get("contactUrl"),
+ "change": CompanyProfileChange.from_dict(obj["change"]) if obj.get("change") is not None else None,
"changeLog": Changelog.from_dict(obj["changeLog"]) if obj.get("changeLog") is not None else None
})
# store additional fields in additional_properties
diff --git a/equinix/services/fabricv4/models/company_profile_search_request.py b/equinix/services/fabricv4/models/company_profile_search_request.py
index b26a9783..88578db3 100644
--- a/equinix/services/fabricv4/models/company_profile_search_request.py
+++ b/equinix/services/fabricv4/models/company_profile_search_request.py
@@ -17,6 +17,7 @@
from typing import Any, ClassVar, Dict, List, Optional
from equinix.services.fabricv4.models.company_profile_search_filter import CompanyProfileSearchFilter
from equinix.services.fabricv4.models.pagination import Pagination
+from equinix.services.fabricv4.models.sort import Sort
from typing import Optional, Set
from typing_extensions import Self
@@ -26,8 +27,9 @@ class CompanyProfileSearchRequest(BaseModel):
""" # noqa: E501
filter: Optional[CompanyProfileSearchFilter] = None
pagination: Optional[Pagination] = None
+ sort: Optional[Sort] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["filter", "pagination"]
+ __properties: ClassVar[List[str]] = ["filter", "pagination", "sort"]
model_config = ConfigDict(
populate_by_name=True,
@@ -76,6 +78,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of pagination
if self.pagination:
_dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of sort
+ if self.sort:
+ _dict['sort'] = self.sort.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -94,7 +99,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"filter": CompanyProfileSearchFilter.from_dict(obj["filter"]) if obj.get("filter") is not None else None,
- "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "sort": Sort.from_dict(obj["sort"]) if obj.get("sort") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/company_profile_sort_direction.py b/equinix/services/fabricv4/models/company_profile_sort_direction.py
new file mode 100644
index 00000000..a289e190
--- /dev/null
+++ b/equinix/services/fabricv4/models/company_profile_sort_direction.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CompanyProfileSortDirection(str, Enum):
+ """
+ Sorting direction
+ """
+
+ """
+ allowed enum values
+ """
+ DESC = 'DESC'
+ ASC = 'ASC'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CompanyProfileSortDirection from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/connection_route_table_entry.py b/equinix/services/fabricv4/models/connection_route_table_entry.py
index 6447f6f5..f67bb99c 100644
--- a/equinix/services/fabricv4/models/connection_route_table_entry.py
+++ b/equinix/services/fabricv4/models/connection_route_table_entry.py
@@ -29,7 +29,7 @@ class ConnectionRouteTableEntry(BaseModel):
""" # noqa: E501
type: RouteTableEntryType
protocol_type: Optional[RouteTableEntryProtocolType] = Field(default=None, alias="protocolType")
- state: ConnectionRouteTableEntryState
+ state: Optional[ConnectionRouteTableEntryState] = None
prefix: Optional[StrictStr] = None
next_hop: Optional[StrictStr] = Field(default=None, alias="nextHop")
med: Optional[StrictInt] = Field(default=None, alias="MED")
diff --git a/equinix/services/fabricv4/models/equinix_status.py b/equinix/services/fabricv4/models/equinix_status.py
index 3bdc82b4..59aed211 100644
--- a/equinix/services/fabricv4/models/equinix_status.py
+++ b/equinix/services/fabricv4/models/equinix_status.py
@@ -53,6 +53,7 @@ class EquinixStatus(str, Enum):
DRAFT = 'DRAFT'
CANCELLED = 'CANCELLED'
PENDING_INTERFACE_CONFIGURATION = 'PENDING_INTERFACE_CONFIGURATION'
+ PENDING_ACTIVATION = 'PENDING_ACTIVATION'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/geo_scope_type.py b/equinix/services/fabricv4/models/geo_scope_type.py
index 3abc7130..8129c2a4 100644
--- a/equinix/services/fabricv4/models/geo_scope_type.py
+++ b/equinix/services/fabricv4/models/geo_scope_type.py
@@ -25,6 +25,10 @@ class GeoScopeType(str, Enum):
CANADA = 'CANADA'
CONUS = 'CONUS'
JAPAN = 'JAPAN'
+ UK = 'UK'
+ AUSTRALIA = 'AUSTRALIA'
+ BRAZIL = 'BRAZIL'
+ SWITZERLAND = 'SWITZERLAND'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/company_profile_update_response.py b/equinix/services/fabricv4/models/get_metrics_by_name_response.py
similarity index 70%
rename from equinix/services/fabricv4/models/company_profile_update_response.py
rename to equinix/services/fabricv4/models/get_metrics_by_name_response.py
index abfe8304..cd89edfc 100644
--- a/equinix/services/fabricv4/models/company_profile_update_response.py
+++ b/equinix/services/fabricv4/models/get_metrics_by_name_response.py
@@ -15,19 +15,19 @@
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
-from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
-from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.models.metric import Metric
+from equinix.services.fabricv4.models.pagination import Pagination
from typing import Optional, Set
from typing_extensions import Self
-class CompanyProfileUpdateResponse(BaseModel):
+class GetMetricsByNameResponse(BaseModel):
"""
- CompanyProfileUpdateResponse
+ GetMetricsByNameResponse
""" # noqa: E501
- company_profile: Optional[CompanyProfileResponse] = Field(default=None, alias="companyProfile")
- change: Optional[CompanyProfileChange] = None
+ pagination: Optional[Pagination] = None
+ data: Optional[List[Metric]] = Field(default=None, description="Data returned from the API call.")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["companyProfile", "change"]
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
model_config = ConfigDict(
populate_by_name=True,
@@ -47,7 +47,7 @@ def to_json(self) -> str:
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of CompanyProfileUpdateResponse from a JSON string"""
+ """Create an instance of GetMetricsByNameResponse from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
@@ -70,12 +70,16 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
- # override the default output from pydantic by calling `to_dict()` of company_profile
- if self.company_profile:
- _dict['companyProfile'] = self.company_profile.to_dict()
- # override the default output from pydantic by calling `to_dict()` of change
- if self.change:
- _dict['change'] = self.change.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -85,7 +89,7 @@ def to_dict(self) -> Dict[str, Any]:
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of CompanyProfileUpdateResponse from a dict"""
+ """Create an instance of GetMetricsByNameResponse from a dict"""
if obj is None:
return None
@@ -93,8 +97,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "companyProfile": CompanyProfileResponse.from_dict(obj["companyProfile"]) if obj.get("companyProfile") is not None else None,
- "change": CompanyProfileChange.from_dict(obj["change"]) if obj.get("change") is not None else None
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [Metric.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/logo_response.py b/equinix/services/fabricv4/models/logo_response.py
index 2e910558..a17514fb 100644
--- a/equinix/services/fabricv4/models/logo_response.py
+++ b/equinix/services/fabricv4/models/logo_response.py
@@ -29,9 +29,10 @@ class LogoResponse(BaseModel):
name: Optional[StrictStr] = None
description: Optional[StrictStr] = None
status: Optional[StrictStr] = None
+ extension_type: Optional[StrictStr] = Field(default=None, alias="extensionType")
changelog: Optional[Changelog] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "description", "status", "changelog"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "description", "status", "extensionType", "changelog"]
model_config = ConfigDict(
populate_by_name=True,
@@ -100,6 +101,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"name": obj.get("name"),
"description": obj.get("description"),
"status": obj.get("status"),
+ "extensionType": obj.get("extensionType"),
"changelog": Changelog.from_dict(obj["changelog"]) if obj.get("changelog") is not None else None
})
# store additional fields in additional_properties
diff --git a/equinix/services/fabricv4/models/metric_resource.py b/equinix/services/fabricv4/models/metric_resource.py
index 84570c76..bfcdc8ba 100644
--- a/equinix/services/fabricv4/models/metric_resource.py
+++ b/equinix/services/fabricv4/models/metric_resource.py
@@ -25,10 +25,11 @@ class MetricResource(BaseModel):
href: Optional[StrictStr] = Field(default=None, description="Metric resource href")
uuid: Optional[StrictStr] = Field(default=None, description="Metric resource UUID")
type: Optional[StrictStr] = Field(default=None, description="Metric resource type")
+ state: Optional[StrictStr] = Field(default=None, description="Metric resource state")
name: Optional[StrictStr] = Field(default=None, description="Metric resource name")
description: Optional[StrictStr] = Field(default=None, description="Metric resource description")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "description"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "type", "state", "name", "description"]
model_config = ConfigDict(
populate_by_name=True,
@@ -91,6 +92,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"href": obj.get("href"),
"uuid": obj.get("uuid"),
"type": obj.get("type"),
+ "state": obj.get("state"),
"name": obj.get("name"),
"description": obj.get("description")
})
diff --git a/equinix/services/fabricv4/models/metro.py b/equinix/services/fabricv4/models/metro.py
index fe4fd3ec..9300665d 100644
--- a/equinix/services/fabricv4/models/metro.py
+++ b/equinix/services/fabricv4/models/metro.py
@@ -24,7 +24,7 @@
class Metro(BaseModel):
"""
- GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
""" # noqa: E501
href: Optional[StrictStr] = Field(default=None, description="The Canonical URL at which the resource resides.")
type: Optional[StrictStr] = Field(default=None, description="Indicator of a Fabric Metro")
diff --git a/equinix/services/fabricv4/models/metro_response.py b/equinix/services/fabricv4/models/metro_response.py
index 066e3890..94af91d6 100644
--- a/equinix/services/fabricv4/models/metro_response.py
+++ b/equinix/services/fabricv4/models/metro_response.py
@@ -22,7 +22,7 @@
class MetroResponse(BaseModel):
"""
- GET Metros retrieves all Equinix® Fabric™ metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
+ GET Metros retrieves all Equinix? Fabric? metros, as well as latency data for each location.This performance data helps network planning engineers and administrators make strategic decisions about port locations and traffic routes.
""" # noqa: E501
pagination: Optional[Pagination] = None
data: Optional[List[Metro]] = Field(default=None, description="List of Fabric Metros.")
diff --git a/equinix/services/fabricv4/models/patch_operation_op.py b/equinix/services/fabricv4/models/patch_operation_op.py
index 1a926ea9..77046b28 100644
--- a/equinix/services/fabricv4/models/patch_operation_op.py
+++ b/equinix/services/fabricv4/models/patch_operation_op.py
@@ -23,6 +23,8 @@ class PatchOperationOp(str, Enum):
allowed enum values
"""
REPLACE = 'replace'
+ ADD = 'add'
+ REMOVE = 'remove'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/platform_changelog.py b/equinix/services/fabricv4/models/platform_changelog.py
new file mode 100644
index 00000000..c36a385f
--- /dev/null
+++ b/equinix/services/fabricv4/models/platform_changelog.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class PlatformChangelog(BaseModel):
+ """
+ Change log
+ """ # noqa: E501
+ created_by: Optional[StrictStr] = Field(default=None, description="Created by User Key", alias="createdBy")
+ created_date_time: Optional[datetime] = Field(default=None, description="Created by Date and Time", alias="createdDateTime")
+ updated_by: Optional[StrictStr] = Field(default=None, description="Updated by User Key", alias="updatedBy")
+ updated_date_time: Optional[datetime] = Field(default=None, description="Updated by Date and Time", alias="updatedDateTime")
+ deleted_by: Optional[StrictStr] = Field(default=None, description="Deleted by User Key", alias="deletedBy")
+ deleted_date_time: Optional[datetime] = Field(default=None, description="Deleted by Date and Time", alias="deletedDateTime")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["createdBy", "createdDateTime", "updatedBy", "updatedDateTime", "deletedBy", "deletedDateTime"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of PlatformChangelog from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of PlatformChangelog from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "createdBy": obj.get("createdBy"),
+ "createdDateTime": obj.get("createdDateTime"),
+ "updatedBy": obj.get("updatedBy"),
+ "updatedDateTime": obj.get("updatedDateTime"),
+ "deletedBy": obj.get("deletedBy"),
+ "deletedDateTime": obj.get("deletedDateTime")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/port_order_purchase_order.py b/equinix/services/fabricv4/models/port_order_purchase_order.py
index ecfdd871..afbf52e8 100644
--- a/equinix/services/fabricv4/models/port_order_purchase_order.py
+++ b/equinix/services/fabricv4/models/port_order_purchase_order.py
@@ -13,6 +13,7 @@
import re # noqa: F401
import json
+from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from equinix.services.fabricv4.models.port_order_purchase_order_selection_type import PortOrderPurchaseOrderSelectionType
@@ -26,8 +27,8 @@ class PortOrderPurchaseOrder(BaseModel):
""" # noqa: E501
number: Optional[StrictStr] = Field(default=None, description="purchase order number")
amount: Optional[StrictStr] = Field(default=None, description="purchase order amount")
- start_date: Optional[StrictStr] = Field(default=None, alias="startDate")
- end_date: Optional[StrictStr] = Field(default=None, alias="endDate")
+ start_date: Optional[datetime] = Field(default=None, alias="startDate")
+ end_date: Optional[datetime] = Field(default=None, alias="endDate")
attachment_id: Optional[StrictStr] = Field(default=None, alias="attachmentId")
selection_type: Optional[PortOrderPurchaseOrderSelectionType] = Field(default=None, alias="selectionType")
type: Optional[PortOrderPurchaseOrderType] = None
diff --git a/equinix/services/fabricv4/models/port_order_signature.py b/equinix/services/fabricv4/models/port_order_signature.py
index 83ed304a..2aa12b89 100644
--- a/equinix/services/fabricv4/models/port_order_signature.py
+++ b/equinix/services/fabricv4/models/port_order_signature.py
@@ -22,7 +22,7 @@
class PortOrderSignature(BaseModel):
"""
- Port signature Type
+ Port signature details
""" # noqa: E501
signatory: Optional[PortOrderSignatureSignatory] = None
delegate: Optional[PortOrderSignatureDelegate] = None
diff --git a/equinix/services/fabricv4/models/port_order_signature_delegate.py b/equinix/services/fabricv4/models/port_order_signature_delegate.py
index 371ad875..002f37f6 100644
--- a/equinix/services/fabricv4/models/port_order_signature_delegate.py
+++ b/equinix/services/fabricv4/models/port_order_signature_delegate.py
@@ -20,9 +20,9 @@
class PortOrderSignatureDelegate(BaseModel):
"""
- delegate oder details
+ order delegate details
""" # noqa: E501
- first_name: Optional[StrictStr] = Field(default=None, description="name of delegate", alias="firstName")
+ first_name: Optional[StrictStr] = Field(default=None, description="first name of delegate", alias="firstName")
last_name: Optional[StrictStr] = Field(default=None, description="last Name of delegate", alias="lastName")
email: Optional[StrictStr] = Field(default=None, description="email of delegate")
additional_properties: Dict[str, Any] = {}
diff --git a/equinix/services/fabricv4/models/response_incomplete_details.py b/equinix/services/fabricv4/models/response_incomplete_details.py
new file mode 100644
index 00000000..d2f1a63b
--- /dev/null
+++ b/equinix/services/fabricv4/models/response_incomplete_details.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.response_incomplete_details_reason import ResponseIncompleteDetailsReason
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResponseIncompleteDetails(BaseModel):
+ """
+ Details about why the response is incomplete.
+ """ # noqa: E501
+ reason: Optional[ResponseIncompleteDetailsReason] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["reason"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResponseIncompleteDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResponseIncompleteDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "reason": obj.get("reason")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/response_incomplete_details_reason.py b/equinix/services/fabricv4/models/response_incomplete_details_reason.py
new file mode 100644
index 00000000..f17b4d50
--- /dev/null
+++ b/equinix/services/fabricv4/models/response_incomplete_details_reason.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class ResponseIncompleteDetailsReason(str, Enum):
+ """
+ The reason why the response is incomplete.
+ """
+
+ """
+ allowed enum values
+ """
+ MAX_OUTPUT_TOKENS = 'max_output_tokens'
+ CONTENT_FILTER = 'content_filter'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of ResponseIncompleteDetailsReason from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/response_usage_input_tokens_details.py b/equinix/services/fabricv4/models/response_usage_input_tokens_details.py
new file mode 100644
index 00000000..b3440a93
--- /dev/null
+++ b/equinix/services/fabricv4/models/response_usage_input_tokens_details.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictInt
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResponseUsageInputTokensDetails(BaseModel):
+ """
+ A detailed breakdown of the input tokens.
+ """ # noqa: E501
+ cached_tokens: StrictInt = Field(description="The number of tokens that were retrieved from the cache. [More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching). ")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["cached_tokens"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResponseUsageInputTokensDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResponseUsageInputTokensDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "cached_tokens": obj.get("cached_tokens")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/response_usage_output_tokens_details.py b/equinix/services/fabricv4/models/response_usage_output_tokens_details.py
new file mode 100644
index 00000000..f1155479
--- /dev/null
+++ b/equinix/services/fabricv4/models/response_usage_output_tokens_details.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictInt
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResponseUsageOutputTokensDetails(BaseModel):
+ """
+ A detailed breakdown of the output tokens.
+ """ # noqa: E501
+ reasoning_tokens: StrictInt = Field(description="The number of reasoning tokens.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["reasoning_tokens"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResponseUsageOutputTokensDetails from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResponseUsageOutputTokensDetails from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "reasoning_tokens": obj.get("reasoning_tokens")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/sort.py b/equinix/services/fabricv4/models/sort.py
new file mode 100644
index 00000000..0720d108
--- /dev/null
+++ b/equinix/services/fabricv4/models/sort.py
@@ -0,0 +1,99 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.company_profile_sort_direction import CompanyProfileSortDirection
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Sort(BaseModel):
+ """
+ Sort
+ """ # noqa: E501
+ var_property: Optional[StrictStr] = Field(default=None, description="Property to sort by", alias="property")
+ direction: Optional[CompanyProfileSortDirection] = CompanyProfileSortDirection.ASC
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "direction"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of Sort from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Sort from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property"),
+ "direction": obj.get("direction") if obj.get("direction") is not None else CompanyProfileSortDirection.ASC
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/tag_response.py b/equinix/services/fabricv4/models/tag_response.py
index 34147e43..9bccd4fd 100644
--- a/equinix/services/fabricv4/models/tag_response.py
+++ b/equinix/services/fabricv4/models/tag_response.py
@@ -13,7 +13,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +27,9 @@ class TagResponse(BaseModel):
type: Optional[StrictStr] = None
name: Optional[StrictStr] = None
display_name: Optional[StrictStr] = Field(default=None, alias="displayName")
+ weight: Optional[StrictInt] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "displayName"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "displayName", "weight"]
model_config = ConfigDict(
populate_by_name=True,
@@ -92,7 +93,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"uuid": obj.get("uuid"),
"type": obj.get("type"),
"name": obj.get("name"),
- "displayName": obj.get("displayName")
+ "displayName": obj.get("displayName"),
+ "weight": obj.get("weight")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/virtual_port_price.py b/equinix/services/fabricv4/models/virtual_port_price.py
index 5cbce056..b1352dc6 100644
--- a/equinix/services/fabricv4/models/virtual_port_price.py
+++ b/equinix/services/fabricv4/models/virtual_port_price.py
@@ -41,8 +41,9 @@ class VirtualPortPrice(BaseModel):
service_type: Optional[VirtualPortServiceType] = Field(default=VirtualPortServiceType.MSP, alias="serviceType")
settings: Optional[VirtualPortConfiguration] = None
package: Optional[VirtualPortPackage] = None
+ service_code: Optional[StrictStr] = Field(default=None, description="Port service code.", alias="serviceCode")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["uuid", "type", "location", "lag", "physicalPortsQuantity", "bandwidth", "redundancy", "connectivitySource", "serviceType", "settings", "package"]
+ __properties: ClassVar[List[str]] = ["uuid", "type", "location", "lag", "physicalPortsQuantity", "bandwidth", "redundancy", "connectivitySource", "serviceType", "settings", "package", "serviceCode"]
model_config = ConfigDict(
populate_by_name=True,
@@ -130,7 +131,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"connectivitySource": ConnectivitySource.from_dict(obj["connectivitySource"]) if obj.get("connectivitySource") is not None else None,
"serviceType": obj.get("serviceType") if obj.get("serviceType") is not None else VirtualPortServiceType.MSP,
"settings": VirtualPortConfiguration.from_dict(obj["settings"]) if obj.get("settings") is not None else None,
- "package": VirtualPortPackage.from_dict(obj["package"]) if obj.get("package") is not None else None
+ "package": VirtualPortPackage.from_dict(obj["package"]) if obj.get("package") is not None else None,
+ "serviceCode": obj.get("serviceCode")
})
# store additional fields in additional_properties
for _key in obj.keys():
From 84e631a82c3ac1ea04e0c18445e7180fc2356bd0 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 17 Feb 2026 09:47:08 +0000
Subject: [PATCH 4/5] sync: uncommitted changes detected when opening PR
---
equinix/services/fabricv4_README.md | 30 +++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/equinix/services/fabricv4_README.md b/equinix/services/fabricv4_README.md
index 90f25ac4..80386937 100644
--- a/equinix/services/fabricv4_README.md
+++ b/equinix/services/fabricv4_README.md
@@ -3,7 +3,7 @@ Equinix Fabric is an advanced software-defined interconnection solution that ena
The `equinix.services.fabricv4` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
-- API version: 4.26
+- API version: 4.27
- Package version: 0.14.2
- Generator version: 7.12.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
@@ -96,6 +96,19 @@ Class | Method | HTTP request | Description
*CloudRoutersApi* | [**search_connection_received_routes**](equinix/services/fabricv4/docs/CloudRoutersApi.md#search_connection_received_routes) | **POST** /fabric/v4/connections/{connectionId}/receivedRoutes/search | Search Received Routes
*CloudRoutersApi* | [**search_router_actions**](equinix/services/fabricv4/docs/CloudRoutersApi.md#search_router_actions) | **POST** /fabric/v4/routers/{routerId}/actions/search | Search Route Table Actions
*CloudRoutersApi* | [**update_cloud_router_by_uuid**](equinix/services/fabricv4/docs/CloudRoutersApi.md#update_cloud_router_by_uuid) | **PATCH** /fabric/v4/routers/{routerId} | Update Routers
+*CompanyProfilesApi* | [**attach_private_service_to_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#attach_private_service_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId} | Attach Private Service
+*CompanyProfilesApi* | [**attach_service_profile_to_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#attach_service_profile_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId} | Attach Service Profile
+*CompanyProfilesApi* | [**attach_tag_to_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#attach_tag_to_profile) | **PUT** /fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId} | Attach Tag
+*CompanyProfilesApi* | [**create_company_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#create_company_profile) | **POST** /fabric/v4/companyProfiles | Create Company Profile
+*CompanyProfilesApi* | [**delete_company_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#delete_company_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId} | Delete Company Profile
+*CompanyProfilesApi* | [**detach_private_service_from_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#detach_private_service_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/privateServices/{privateServiceId} | Detach Private Service
+*CompanyProfilesApi* | [**detach_service_profile_from_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#detach_service_profile_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles/{serviceProfileId} | Detach Service Profile
+*CompanyProfilesApi* | [**detach_tag_from_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#detach_tag_from_profile) | **DELETE** /fabric/v4/companyProfiles/{companyProfileId}/tags/{tagId} | Detach Tag
+*CompanyProfilesApi* | [**get_company_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#get_company_profile) | **GET** /fabric/v4/companyProfiles/{companyProfileId} | Get Company Profile by UUID
+*CompanyProfilesApi* | [**get_company_profile_private_services**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#get_company_profile_private_services) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/privateServices | Get Private Services
+*CompanyProfilesApi* | [**get_company_profile_service_profiles**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#get_company_profile_service_profiles) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/serviceProfiles | Get Service Profiles
+*CompanyProfilesApi* | [**get_tags**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#get_tags) | **GET** /fabric/v4/companyProfiles/{companyProfileId}/tags | Get Tags
+*CompanyProfilesApi* | [**search_company_profile**](equinix/services/fabricv4/docs/CompanyProfilesApi.md#search_company_profile) | **POST** /fabric/v4/companyProfiles/search | Search Company Profiles
*ConnectionsApi* | [**create_connection**](equinix/services/fabricv4/docs/ConnectionsApi.md#create_connection) | **POST** /fabric/v4/connections | Create Connection
*ConnectionsApi* | [**create_connection_action**](equinix/services/fabricv4/docs/ConnectionsApi.md#create_connection_action) | **POST** /fabric/v4/connections/{connectionId}/actions | Connection Actions
*ConnectionsApi* | [**delete_connection_by_uuid**](equinix/services/fabricv4/docs/ConnectionsApi.md#delete_connection_by_uuid) | **DELETE** /fabric/v4/connections/{connectionId} | Delete by ID
@@ -104,8 +117,11 @@ Class | Method | HTTP request | Description
*ConnectionsApi* | [**update_connection_by_uuid**](equinix/services/fabricv4/docs/ConnectionsApi.md#update_connection_by_uuid) | **PATCH** /fabric/v4/connections/{connectionId} | Update by ID
*ConnectionsApi* | [**validate_connections**](equinix/services/fabricv4/docs/ConnectionsApi.md#validate_connections) | **POST** /fabric/v4/connections/validate | Validate Connection
*HealthApi* | [**get_status**](equinix/services/fabricv4/docs/HealthApi.md#get_status) | **GET** /fabric/v4/health | Get service status
+*LogosApi* | [**delete_logo_by_uuid**](equinix/services/fabricv4/docs/LogosApi.md#delete_logo_by_uuid) | **DELETE** /fabric/v4/logos/{uuid} | Delete Logo
+*LogosApi* | [**get_logo_by_uuid**](equinix/services/fabricv4/docs/LogosApi.md#get_logo_by_uuid) | **GET** /fabric/v4/logos/{uuid} | Get Logo
*MarketplaceSubscriptionsApi* | [**get_subscription_by_id**](equinix/services/fabricv4/docs/MarketplaceSubscriptionsApi.md#get_subscription_by_id) | **GET** /fabric/v4/marketplaceSubscriptions/{subscriptionId} | Get Subscription
*MetricsApi* | [**get_metric_by_asset_id**](equinix/services/fabricv4/docs/MetricsApi.md#get_metric_by_asset_id) | **GET** /fabric/v4/{asset}/{assetId}/metrics | Get Metrics by Asset Id
+*MetricsApi* | [**get_metric_by_name**](equinix/services/fabricv4/docs/MetricsApi.md#get_metric_by_name) | **GET** /fabric/v4/metrics | Get Metrics by Name
*MetricsApi* | [**search_metrics**](equinix/services/fabricv4/docs/MetricsApi.md#search_metrics) | **POST** /fabric/v4/metrics/search | Search Metrics
*MetrosApi* | [**get_metro_by_code**](equinix/services/fabricv4/docs/MetrosApi.md#get_metro_by_code) | **GET** /fabric/v4/metros/{metroCode} | Get Metro by Code
*MetrosApi* | [**get_metros**](equinix/services/fabricv4/docs/MetrosApi.md#get_metros) | **GET** /fabric/v4/metros | Get all Metros
@@ -227,6 +243,8 @@ Class | Method | HTTP request | Description
*StreamsApi* | [**get_streams_assets**](equinix/services/fabricv4/docs/StreamsApi.md#get_streams_assets) | **POST** /fabric/v4/streamAssets/search | Get Assets
*StreamsApi* | [**update_stream_asset_by_uuid**](equinix/services/fabricv4/docs/StreamsApi.md#update_stream_asset_by_uuid) | **PUT** /fabric/v4/streams/{streamId}/{asset}/{assetId} | Attach Asset
*StreamsApi* | [**update_stream_by_uuid**](equinix/services/fabricv4/docs/StreamsApi.md#update_stream_by_uuid) | **PUT** /fabric/v4/streams/{streamId} | Update Stream
+*TagsApi* | [**create_tag**](equinix/services/fabricv4/docs/TagsApi.md#create_tag) | **POST** /fabric/v4/tags | Create Tag
+*TagsApi* | [**list_tags**](equinix/services/fabricv4/docs/TagsApi.md#list_tags) | **GET** /fabric/v4/tags | List Tags
## Documentation For Models
@@ -333,6 +351,7 @@ Class | Method | HTTP request | Description
- [CloudRouterSortDirection](equinix/services/fabricv4/docs/CloudRouterSortDirection.md)
- [Code](equinix/services/fabricv4/docs/Code.md)
- [CompanyLogo](equinix/services/fabricv4/docs/CompanyLogo.md)
+ - [CompanyMetro](equinix/services/fabricv4/docs/CompanyMetro.md)
- [CompanyProfileActionRequest](equinix/services/fabricv4/docs/CompanyProfileActionRequest.md)
- [CompanyProfileChange](equinix/services/fabricv4/docs/CompanyProfileChange.md)
- [CompanyProfileRequest](equinix/services/fabricv4/docs/CompanyProfileRequest.md)
@@ -340,7 +359,7 @@ Class | Method | HTTP request | Description
- [CompanyProfileSearchFilter](equinix/services/fabricv4/docs/CompanyProfileSearchFilter.md)
- [CompanyProfileSearchRequest](equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md)
- [CompanyProfileSearchResponse](equinix/services/fabricv4/docs/CompanyProfileSearchResponse.md)
- - [CompanyProfileUpdateResponse](equinix/services/fabricv4/docs/CompanyProfileUpdateResponse.md)
+ - [CompanyProfileSortDirection](equinix/services/fabricv4/docs/CompanyProfileSortDirection.md)
- [CompanyServiceProfile](equinix/services/fabricv4/docs/CompanyServiceProfile.md)
- [ConnectedMetro](equinix/services/fabricv4/docs/ConnectedMetro.md)
- [Connection](equinix/services/fabricv4/docs/Connection.md)
@@ -420,6 +439,7 @@ Class | Method | HTTP request | Description
- [GetAllStreamSubscriptionResponse](equinix/services/fabricv4/docs/GetAllStreamSubscriptionResponse.md)
- [GetCloudEventsByAssetResponse](equinix/services/fabricv4/docs/GetCloudEventsByAssetResponse.md)
- [GetMetricsByAssetResponse](equinix/services/fabricv4/docs/GetMetricsByAssetResponse.md)
+ - [GetMetricsByNameResponse](equinix/services/fabricv4/docs/GetMetricsByNameResponse.md)
- [GetResponse](equinix/services/fabricv4/docs/GetResponse.md)
- [GetRouteAggregationGetConnectionsResponse](equinix/services/fabricv4/docs/GetRouteAggregationGetConnectionsResponse.md)
- [GetRouteAggregationRulesResponse](equinix/services/fabricv4/docs/GetRouteAggregationRulesResponse.md)
@@ -513,6 +533,7 @@ Class | Method | HTTP request | Description
- [PhysicalPort](equinix/services/fabricv4/docs/PhysicalPort.md)
- [PhysicalPortSettings](equinix/services/fabricv4/docs/PhysicalPortSettings.md)
- [PhysicalPortType](equinix/services/fabricv4/docs/PhysicalPortType.md)
+ - [PlatformChangelog](equinix/services/fabricv4/docs/PlatformChangelog.md)
- [Port](equinix/services/fabricv4/docs/Port.md)
- [PortAdditionalInfo](equinix/services/fabricv4/docs/PortAdditionalInfo.md)
- [PortBmmrType](equinix/services/fabricv4/docs/PortBmmrType.md)
@@ -609,6 +630,10 @@ Class | Method | HTTP request | Description
- [ResourceData](equinix/services/fabricv4/docs/ResourceData.md)
- [ResourceSelector](equinix/services/fabricv4/docs/ResourceSelector.md)
- [ResourceSelectorResponse](equinix/services/fabricv4/docs/ResourceSelectorResponse.md)
+ - [ResponseIncompleteDetails](equinix/services/fabricv4/docs/ResponseIncompleteDetails.md)
+ - [ResponseIncompleteDetailsReason](equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md)
+ - [ResponseUsageInputTokensDetails](equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md)
+ - [ResponseUsageOutputTokensDetails](equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md)
- [RouteAggregationChangeData](equinix/services/fabricv4/docs/RouteAggregationChangeData.md)
- [RouteAggregationChangeDataResponse](equinix/services/fabricv4/docs/RouteAggregationChangeDataResponse.md)
- [RouteAggregationConnectionsData](equinix/services/fabricv4/docs/RouteAggregationConnectionsData.md)
@@ -767,6 +792,7 @@ Class | Method | HTTP request | Description
- [SimplifiedTokenNetworkType](equinix/services/fabricv4/docs/SimplifiedTokenNetworkType.md)
- [SimplifiedVirtualDevice](equinix/services/fabricv4/docs/SimplifiedVirtualDevice.md)
- [SimplifiedVirtualDeviceType](equinix/services/fabricv4/docs/SimplifiedVirtualDeviceType.md)
+ - [Sort](equinix/services/fabricv4/docs/Sort.md)
- [SortBy](equinix/services/fabricv4/docs/SortBy.md)
- [SortCriteria](equinix/services/fabricv4/docs/SortCriteria.md)
- [SortCriteriaResponse](equinix/services/fabricv4/docs/SortCriteriaResponse.md)
From 0677c2aba0b7c514104c530aa4e30579a473f26c Mon Sep 17 00:00:00 2001
From: "tomasz.tutka"
Date: Tue, 17 Feb 2026 12:49:23 +0100
Subject: [PATCH 5/5] Empty commit