diff --git a/Makefile b/Makefile index 1e66971f..03d3b5cf 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ CRI:=docker # nerdctl OPENAPI_CODEGEN_TAG=v6.4.0 OPENAPI_CODEGEN_IMAGE=openapitools/openapi-generator-cli:${OPENAPI_CODEGEN_TAG} DOCKER_OPENAPI=${CRI} run --rm -u ${CURRENT_UID}:${CURRENT_GID} -v $(CURDIR):/local ${OPENAPI_CODEGEN_IMAGE} -OPENAPI_URL= https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/4.10 +OPENAPI_URL= https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/4.11 generate: clean fetch pre-spec-patch pull docker_generate build_client @@ -36,7 +36,7 @@ clean: rm -rf ${OPENAPI_GIT_DIR} # Fetch any public available version of Fabric V4 API specification. Send the URL to the specification as input argument -# Example: make fetch OPENAPI_URL=https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/4.10 +# Example: make fetch OPENAPI_URL=https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/4.11 fetch: curl ${OPENAPI_URL} | jq . > ${SPEC_FETCHED_FILE} diff --git a/equinix-openapi-fabric/.openapi-generator/FILES b/equinix-openapi-fabric/.openapi-generator/FILES index d760a1e1..19b00560 100644 --- a/equinix-openapi-fabric/.openapi-generator/FILES +++ b/equinix-openapi-fabric/.openapi-generator/FILES @@ -61,12 +61,13 @@ docs/ConnectionChangeOperation.md docs/ConnectionCompanyProfile.md docs/ConnectionDirection.md docs/ConnectionInvitation.md -docs/ConnectionLink.md docs/ConnectionOperation.md docs/ConnectionPostRequest.md docs/ConnectionPriority.md docs/ConnectionRedundancy.md docs/ConnectionResponse.md +docs/ConnectionRouteFilterData.md +docs/ConnectionRouteFiltersBase.md docs/ConnectionRoutingProtocolPostRequest.md docs/ConnectionSearchResponse.md docs/ConnectionSide.md @@ -91,7 +92,10 @@ docs/FabricConnectionUuid.md docs/FilterBody.md docs/GeoCoordinates.md docs/GeoScopeType.md +docs/GetAllConnectionRouteFiltersResponse.md docs/GetResponse.md +docs/GetRouteFilterGetConnectionsResponse.md +docs/GetRouteFilterRulesResponse.md docs/HealthApi.md docs/HealthResponse.md docs/IpBlockPrice.md @@ -113,6 +117,7 @@ docs/LinkProtocolServiceToken.md docs/LinkProtocolState.md docs/LinkProtocolType.md docs/LinkProtocolUntagged.md +docs/LinkProtocolVxlan.md docs/MarketingInfo.md docs/Md5.md docs/MetricInterval.md @@ -187,9 +192,7 @@ docs/PortV4SearchRequest.md docs/PortsApi.md docs/PrecisionTimeApi.md docs/PrecisionTimeChangeOperation.md -docs/PrecisionTimeServiceConnectionsResponse.md docs/PrecisionTimeServiceCreateResponse.md -docs/PrecisionTimeServicePackagesResponse.md docs/PrecisionTimeServiceRequest.md docs/Presence.md docs/Price.md @@ -208,6 +211,26 @@ docs/PtpAdvanceConfiguration.md docs/QueryDirection.md docs/RemoveOperation.md docs/ReplaceOperation.md +docs/RouteFilterChangeData.md +docs/RouteFilterChangeDataResponse.md +docs/RouteFilterChangePrefixMatch.md +docs/RouteFilterConnectionsData.md +docs/RouteFilterRulesApi.md +docs/RouteFilterRulesBase.md +docs/RouteFilterRulesChange.md +docs/RouteFilterRulesChangeData.md +docs/RouteFilterRulesChangeDataResponse.md +docs/RouteFilterRulesChangeOperation.md +docs/RouteFilterRulesData.md +docs/RouteFilterRulesPostRequest.md +docs/RouteFilterState.md +docs/RouteFiltersApi.md +docs/RouteFiltersBase.md +docs/RouteFiltersChange.md +docs/RouteFiltersChangeOperation.md +docs/RouteFiltersData.md +docs/RouteFiltersDataProject.md +docs/RouteFiltersDataProjectAllOf.md docs/RouteTableEntry.md docs/RouteTableEntryConnection.md docs/RouteTableEntryFilter.md @@ -241,6 +264,7 @@ docs/SearchFieldName.md docs/SearchRequest.md docs/SearchResponse.md docs/ServiceMetro.md +docs/ServiceMetros.md docs/ServiceProfile.md docs/ServiceProfileAccessPointCOLO.md docs/ServiceProfileAccessPointType.md @@ -295,10 +319,9 @@ docs/Statistics.md docs/StatisticsApi.md docs/SubInterface.md docs/TopUtilizedStatistics.md -docs/ValidateConnectionRequest.md -docs/ValidateSubnetRequest.md -docs/ValidateSubnetRequestFilter.md -docs/ValidateSubnetRequestFilterAnd.md +docs/ValidateRequest.md +docs/ValidateRequestFilter.md +docs/ValidateRequestFilterAnd.md docs/ValidateSubnetResponse.md docs/ViewPoint.md docs/VirtualConnectionBridgePackageCode.md @@ -315,6 +338,7 @@ docs/VirtualConnectionPriceZSideAccessPointBridge.md docs/VirtualConnectionPriceZSideAccessPointBridgePackage.md docs/VirtualConnectionPriceZSideAccessPointProfile.md docs/VirtualDevice.md +docs/VirtualNetwork.md docs/VirtualPortConfiguration.md docs/VirtualPortLocation.md docs/VirtualPortPrice.md @@ -355,6 +379,8 @@ src/main/java/com/equinix/openapi/fabric/v4/api/NetworksApi.java src/main/java/com/equinix/openapi/fabric/v4/api/PortsApi.java src/main/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApi.java src/main/java/com/equinix/openapi/fabric/v4/api/PricesApi.java +src/main/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApi.java +src/main/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApi.java src/main/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApi.java src/main/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApi.java src/main/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApi.java @@ -414,12 +440,13 @@ src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionChangeOperation.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionCompanyProfile.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionDirection.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionInvitation.java -src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionLink.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionOperation.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPriority.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRedundancy.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterData.java +src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBase.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRoutingProtocolPostRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionSearchResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionSide.java @@ -443,7 +470,10 @@ src/main/java/com/equinix/openapi/fabric/v4/model/FabricConnectionUuid.java src/main/java/com/equinix/openapi/fabric/v4/model/FilterBody.java src/main/java/com/equinix/openapi/fabric/v4/model/GeoCoordinates.java src/main/java/com/equinix/openapi/fabric/v4/model/GeoScopeType.java +src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/HealthResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/IpBlockPrice.java src/main/java/com/equinix/openapi/fabric/v4/model/IpBlockType.java @@ -464,6 +494,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolServiceToken.java src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolState.java src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolType.java src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolUntagged.java +src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlan.java src/main/java/com/equinix/openapi/fabric/v4/model/MarketingInfo.java src/main/java/com/equinix/openapi/fabric/v4/model/Md5.java src/main/java/com/equinix/openapi/fabric/v4/model/MetricInterval.java @@ -534,9 +565,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/PortTether.java src/main/java/com/equinix/openapi/fabric/v4/model/PortType.java src/main/java/com/equinix/openapi/fabric/v4/model/PortV4SearchRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeChangeOperation.java -src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceCreateResponse.java -src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/Presence.java src/main/java/com/equinix/openapi/fabric/v4/model/Price.java @@ -554,6 +583,24 @@ src/main/java/com/equinix/openapi/fabric/v4/model/PtpAdvanceConfiguration.java src/main/java/com/equinix/openapi/fabric/v4/model/QueryDirection.java src/main/java/com/equinix/openapi/fabric/v4/model/RemoveOperation.java src/main/java/com/equinix/openapi/fabric/v4/model/ReplaceOperation.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatch.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBase.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChange.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperation.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequest.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterState.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBase.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperation.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProject.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOf.java src/main/java/com/equinix/openapi/fabric/v4/model/RouteTableEntry.java src/main/java/com/equinix/openapi/fabric/v4/model/RouteTableEntryConnection.java src/main/java/com/equinix/openapi/fabric/v4/model/RouteTableEntryFilter.java @@ -586,6 +633,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/SearchFieldName.java src/main/java/com/equinix/openapi/fabric/v4/model/SearchRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/SearchResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetro.java +src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetros.java src/main/java/com/equinix/openapi/fabric/v4/model/ServiceProfile.java src/main/java/com/equinix/openapi/fabric/v4/model/ServiceProfileAccessPointCOLO.java src/main/java/com/equinix/openapi/fabric/v4/model/ServiceProfileAccessPointType.java @@ -637,10 +685,9 @@ src/main/java/com/equinix/openapi/fabric/v4/model/SortDirection.java src/main/java/com/equinix/openapi/fabric/v4/model/Statistics.java src/main/java/com/equinix/openapi/fabric/v4/model/SubInterface.java src/main/java/com/equinix/openapi/fabric/v4/model/TopUtilizedStatistics.java -src/main/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequest.java -src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequest.java -src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilter.java -src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAnd.java +src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequest.java +src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilter.java +src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAnd.java src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/ViewPoint.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionBridgePackageCode.java @@ -657,6 +704,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideAcc src/main/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideAccessPointBridgePackage.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideAccessPointProfile.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualDevice.java +src/main/java/com/equinix/openapi/fabric/v4/model/VirtualNetwork.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualPortConfiguration.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualPortLocation.java src/main/java/com/equinix/openapi/fabric/v4/model/VirtualPortPrice.java @@ -671,6 +719,8 @@ src/test/java/com/equinix/openapi/fabric/v4/api/NetworksApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/PortsApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/PricesApiTest.java +src/test/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApiTest.java +src/test/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApiTest.java src/test/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApiTest.java @@ -728,12 +778,13 @@ src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionChangeOperationTest. src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionCompanyProfileTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionDirectionTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionInvitationTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionLinkTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionOperationTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionPriorityTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRedundancyTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBaseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRoutingProtocolPostRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionSearchResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionSideAdditionalInfoTest.java @@ -758,7 +809,10 @@ src/test/java/com/equinix/openapi/fabric/v4/model/FabricConnectionUuidTest.java src/test/java/com/equinix/openapi/fabric/v4/model/FilterBodyTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GeoCoordinatesTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GeoScopeTypeTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/HealthResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/IpBlockPriceTest.java src/test/java/com/equinix/openapi/fabric/v4/model/IpBlockTypeTest.java @@ -778,6 +832,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolStateTest.java src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTest.java src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTypeTest.java src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolUntaggedTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlanTest.java src/test/java/com/equinix/openapi/fabric/v4/model/LinkTest.java src/test/java/com/equinix/openapi/fabric/v4/model/MarketingInfoTest.java src/test/java/com/equinix/openapi/fabric/v4/model/Md5Test.java @@ -849,9 +904,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/PortTetherTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PortTypeTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PortV4SearchRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeChangeOperationTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceCreateResponseTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PresenceTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PriceCategoryTest.java @@ -869,6 +922,24 @@ src/test/java/com/equinix/openapi/fabric/v4/model/PtpAdvanceConfigurationTest.ja src/test/java/com/equinix/openapi/fabric/v4/model/QueryDirectionTest.java src/test/java/com/equinix/openapi/fabric/v4/model/RemoveOperationTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ReplaceOperationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatchTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBaseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequestTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterStateTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBaseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOfTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataTest.java src/test/java/com/equinix/openapi/fabric/v4/model/RouteTableEntryConnectionTest.java src/test/java/com/equinix/openapi/fabric/v4/model/RouteTableEntryFilterTest.java src/test/java/com/equinix/openapi/fabric/v4/model/RouteTableEntryFiltersTest.java @@ -901,6 +972,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/SearchFieldNameTest.java src/test/java/com/equinix/openapi/fabric/v4/model/SearchRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/SearchResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetroTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetrosTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ServiceProfileAccessPointCOLOTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ServiceProfileAccessPointTypeCOLOTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ServiceProfileAccessPointTypeEnumTest.java @@ -952,10 +1024,9 @@ src/test/java/com/equinix/openapi/fabric/v4/model/SortTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StatisticsTest.java src/test/java/com/equinix/openapi/fabric/v4/model/SubInterfaceTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TopUtilizedStatisticsTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequestTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAndTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterTest.java -src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAndTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ViewPointTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionBridgePackageCodeTest.java @@ -972,6 +1043,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideAcc src/test/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideAccessPointTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualConnectionPriceZSideTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualDeviceTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/VirtualNetworkTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualPortConfigurationTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualPortLocationTest.java src/test/java/com/equinix/openapi/fabric/v4/model/VirtualPortPriceTest.java diff --git a/equinix-openapi-fabric/README.md b/equinix-openapi-fabric/README.md index 6127939c..85b98771 100644 --- a/equinix-openapi-fabric/README.md +++ b/equinix-openapi-fabric/README.md @@ -1,7 +1,7 @@ # equinix-openapi-fabric Equinix Fabric API v4 -- API version: 4.10 +- API version: 4.11 Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
@@ -40,7 +40,7 @@ Add this dependency to your project's POM: com.equinix equinix-openapi-fabric - 0.4.0 + 0.5.0 compile ``` @@ -56,7 +56,7 @@ Add this dependency to your project's build file: } dependencies { - implementation "com.equinix:equinix-openapi-fabric:0.4.0" + implementation "com.equinix:equinix-openapi-fabric:0.5.0" } ``` @@ -70,7 +70,7 @@ mvn clean package Then manually install the following JARs: -* `target/equinix-openapi-fabric-0.4.0.jar` +* `target/equinix-openapi-fabric-0.5.0.jar` * `target/lib/*.jar` ## Getting Started @@ -155,13 +155,31 @@ Class | Method | HTTP request | Description *PortsApi* | [**getVlans**](docs/PortsApi.md#getVlans) | **GET** /fabric/v4/ports/{portUuid}/linkProtocols | Get Vlans *PortsApi* | [**searchPorts**](docs/PortsApi.md#searchPorts) | **POST** /fabric/v4/ports/search | Search ports *PrecisionTimeApi* | [**createTimeServices**](docs/PrecisionTimeApi.md#createTimeServices) | **POST** /fabric/v4/timeServices | Create Time Service -*PrecisionTimeApi* | [**deleteTimeServiceById**](docs/PrecisionTimeApi.md#deleteTimeServiceById) | **DELETE** /fabric/v4/timeServices/{serviceId} | Delete Time Service +*PrecisionTimeApi* | [**deleteTimeServiceById**](docs/PrecisionTimeApi.md#deleteTimeServiceById) | **DELETE** /fabric/v4/timeServices/{serviceId} | Delete time service *PrecisionTimeApi* | [**getTimeServicesById**](docs/PrecisionTimeApi.md#getTimeServicesById) | **GET** /fabric/v4/timeServices/{serviceId} | Get Time Service -*PrecisionTimeApi* | [**getTimeServicesConnectionsByServiceId**](docs/PrecisionTimeApi.md#getTimeServicesConnectionsByServiceId) | **GET** /fabric/v4/timeServices/{serviceId}/connections | Get all Connections -*PrecisionTimeApi* | [**getTimeServicesPackageByCode**](docs/PrecisionTimeApi.md#getTimeServicesPackageByCode) | **GET** /fabric/v4/timeServicePackages/{packageCode} | Get Package by Code -*PrecisionTimeApi* | [**getTimeServicesPackages**](docs/PrecisionTimeApi.md#getTimeServicesPackages) | **GET** /fabric/v4/timeServicePackages | Get Packages -*PrecisionTimeApi* | [**updateTimeServicesById**](docs/PrecisionTimeApi.md#updateTimeServicesById) | **PATCH** /fabric/v4/timeServices/{serviceId} | Patch Time Service +*PrecisionTimeApi* | [**updateTimeServicesById**](docs/PrecisionTimeApi.md#updateTimeServicesById) | **PATCH** /fabric/v4/timeServices/{serviceId} | Patch time service *PricesApi* | [**searchPrices**](docs/PricesApi.md#searchPrices) | **POST** /fabric/v4/prices/search | Get Prices +*RouteFilterRulesApi* | [**createRouteFilterRule**](docs/RouteFilterRulesApi.md#createRouteFilterRule) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Create RFRule +*RouteFilterRulesApi* | [**createRouteFilterRulesInBulk**](docs/RouteFilterRulesApi.md#createRouteFilterRulesInBulk) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk | Bulk RFRules +*RouteFilterRulesApi* | [**deleteRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#deleteRouteFilterRuleByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | DeleteRFRule +*RouteFilterRulesApi* | [**getRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#getRouteFilterRuleByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | GetRFRule By UUID +*RouteFilterRulesApi* | [**getRouteFilterRuleChangeByUuid**](docs/RouteFilterRulesApi.md#getRouteFilterRuleChangeByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId} | Get Change By ID +*RouteFilterRulesApi* | [**getRouteFilterRuleChanges**](docs/RouteFilterRulesApi.md#getRouteFilterRuleChanges) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes | Get All Changes +*RouteFilterRulesApi* | [**getRouteFilterRules**](docs/RouteFilterRulesApi.md#getRouteFilterRules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | GetRFRules +*RouteFilterRulesApi* | [**patchRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#patchRouteFilterRuleByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | PatchRFilterRule +*RouteFilterRulesApi* | [**replaceRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#replaceRouteFilterRuleByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | ReplaceRFRule +*RouteFiltersApi* | [**attachConnectionRouteFilter**](docs/RouteFiltersApi.md#attachConnectionRouteFilter) | **PUT** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Attach Route Filter +*RouteFiltersApi* | [**createRouteFilter**](docs/RouteFiltersApi.md#createRouteFilter) | **POST** /fabric/v4/routeFilters | Create Route Filters +*RouteFiltersApi* | [**deleteRouteFilterByUuid**](docs/RouteFiltersApi.md#deleteRouteFilterByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId} | Delete Route Filter +*RouteFiltersApi* | [**detachConnectionRouteFilter**](docs/RouteFiltersApi.md#detachConnectionRouteFilter) | **DELETE** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Detach Route Filter +*RouteFiltersApi* | [**getConnectionRouteFilterByUuid**](docs/RouteFiltersApi.md#getConnectionRouteFilterByUuid) | **GET** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Get Route Filter +*RouteFiltersApi* | [**getConnectionRouteFilters**](docs/RouteFiltersApi.md#getConnectionRouteFilters) | **GET** /fabric/v4/connections/{connectionId}/routeFilters | Get All RouteFilters +*RouteFiltersApi* | [**getRouteFilterByUuid**](docs/RouteFiltersApi.md#getRouteFilterByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId} | Get Filter By UUID +*RouteFiltersApi* | [**getRouteFilterChangeByUuid**](docs/RouteFiltersApi.md#getRouteFilterChangeByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes/{changeId} | Get Change By ID +*RouteFiltersApi* | [**getRouteFilterChanges**](docs/RouteFiltersApi.md#getRouteFilterChanges) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes | Get All Changes +*RouteFiltersApi* | [**getRouteFilterConnections**](docs/RouteFiltersApi.md#getRouteFilterConnections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get Connections +*RouteFiltersApi* | [**patchRouteFilterByUuid**](docs/RouteFiltersApi.md#patchRouteFilterByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter +*RouteFiltersApi* | [**replaceRouteFilterByUuid**](docs/RouteFiltersApi.md#replaceRouteFilterByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId} | Replace Route Filter *RoutingProtocolsApi* | [**createConnectionRoutingProtocol**](docs/RoutingProtocolsApi.md#createConnectionRoutingProtocol) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols | Create Protocol *RoutingProtocolsApi* | [**createConnectionRoutingProtocolsInBulk**](docs/RoutingProtocolsApi.md#createConnectionRoutingProtocolsInBulk) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols/bulk | Bulk Create Protocol *RoutingProtocolsApi* | [**deleteConnectionRoutingProtocolByUuid**](docs/RoutingProtocolsApi.md#deleteConnectionRoutingProtocolByUuid) | **DELETE** /fabric/v4/connections/{connectionId}/routingProtocols/{routingProtocolId} | Delete Protocol @@ -178,6 +196,7 @@ Class | Method | HTTP request | Description *ServiceProfilesApi* | [**createServiceProfile**](docs/ServiceProfilesApi.md#createServiceProfile) | **POST** /fabric/v4/serviceProfiles | Create Profile *ServiceProfilesApi* | [**deleteServiceProfileByUuid**](docs/ServiceProfilesApi.md#deleteServiceProfileByUuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile *ServiceProfilesApi* | [**getServiceProfileByUuid**](docs/ServiceProfilesApi.md#getServiceProfileByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile +*ServiceProfilesApi* | [**getServiceProfileMetrosByUuid**](docs/ServiceProfilesApi.md#getServiceProfileMetrosByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros *ServiceProfilesApi* | [**getServiceProfiles**](docs/ServiceProfilesApi.md#getServiceProfiles) | **GET** /fabric/v4/serviceProfiles | Get all Profiles *ServiceProfilesApi* | [**putServiceProfileByUuid**](docs/ServiceProfilesApi.md#putServiceProfileByUuid) | **PUT** /fabric/v4/serviceProfiles/{serviceProfileId} | Replace Profile *ServiceProfilesApi* | [**searchServiceProfiles**](docs/ServiceProfilesApi.md#searchServiceProfiles) | **POST** /fabric/v4/serviceProfiles/search | Profile Search @@ -250,12 +269,13 @@ Class | Method | HTTP request | Description - [ConnectionCompanyProfile](docs/ConnectionCompanyProfile.md) - [ConnectionDirection](docs/ConnectionDirection.md) - [ConnectionInvitation](docs/ConnectionInvitation.md) - - [ConnectionLink](docs/ConnectionLink.md) - [ConnectionOperation](docs/ConnectionOperation.md) - [ConnectionPostRequest](docs/ConnectionPostRequest.md) - [ConnectionPriority](docs/ConnectionPriority.md) - [ConnectionRedundancy](docs/ConnectionRedundancy.md) - [ConnectionResponse](docs/ConnectionResponse.md) + - [ConnectionRouteFilterData](docs/ConnectionRouteFilterData.md) + - [ConnectionRouteFiltersBase](docs/ConnectionRouteFiltersBase.md) - [ConnectionRoutingProtocolPostRequest](docs/ConnectionRoutingProtocolPostRequest.md) - [ConnectionSearchResponse](docs/ConnectionSearchResponse.md) - [ConnectionSide](docs/ConnectionSide.md) @@ -279,7 +299,10 @@ Class | Method | HTTP request | Description - [FilterBody](docs/FilterBody.md) - [GeoCoordinates](docs/GeoCoordinates.md) - [GeoScopeType](docs/GeoScopeType.md) + - [GetAllConnectionRouteFiltersResponse](docs/GetAllConnectionRouteFiltersResponse.md) - [GetResponse](docs/GetResponse.md) + - [GetRouteFilterGetConnectionsResponse](docs/GetRouteFilterGetConnectionsResponse.md) + - [GetRouteFilterRulesResponse](docs/GetRouteFilterRulesResponse.md) - [HealthResponse](docs/HealthResponse.md) - [IpBlockPrice](docs/IpBlockPrice.md) - [IpBlockType](docs/IpBlockType.md) @@ -300,6 +323,7 @@ Class | Method | HTTP request | Description - [LinkProtocolState](docs/LinkProtocolState.md) - [LinkProtocolType](docs/LinkProtocolType.md) - [LinkProtocolUntagged](docs/LinkProtocolUntagged.md) + - [LinkProtocolVxlan](docs/LinkProtocolVxlan.md) - [MarketingInfo](docs/MarketingInfo.md) - [Md5](docs/Md5.md) - [MetricInterval](docs/MetricInterval.md) @@ -370,9 +394,7 @@ Class | Method | HTTP request | Description - [PortType](docs/PortType.md) - [PortV4SearchRequest](docs/PortV4SearchRequest.md) - [PrecisionTimeChangeOperation](docs/PrecisionTimeChangeOperation.md) - - [PrecisionTimeServiceConnectionsResponse](docs/PrecisionTimeServiceConnectionsResponse.md) - [PrecisionTimeServiceCreateResponse](docs/PrecisionTimeServiceCreateResponse.md) - - [PrecisionTimeServicePackagesResponse](docs/PrecisionTimeServicePackagesResponse.md) - [PrecisionTimeServiceRequest](docs/PrecisionTimeServiceRequest.md) - [Presence](docs/Presence.md) - [Price](docs/Price.md) @@ -390,6 +412,24 @@ Class | Method | HTTP request | Description - [QueryDirection](docs/QueryDirection.md) - [RemoveOperation](docs/RemoveOperation.md) - [ReplaceOperation](docs/ReplaceOperation.md) + - [RouteFilterChangeData](docs/RouteFilterChangeData.md) + - [RouteFilterChangeDataResponse](docs/RouteFilterChangeDataResponse.md) + - [RouteFilterChangePrefixMatch](docs/RouteFilterChangePrefixMatch.md) + - [RouteFilterConnectionsData](docs/RouteFilterConnectionsData.md) + - [RouteFilterRulesBase](docs/RouteFilterRulesBase.md) + - [RouteFilterRulesChange](docs/RouteFilterRulesChange.md) + - [RouteFilterRulesChangeData](docs/RouteFilterRulesChangeData.md) + - [RouteFilterRulesChangeDataResponse](docs/RouteFilterRulesChangeDataResponse.md) + - [RouteFilterRulesChangeOperation](docs/RouteFilterRulesChangeOperation.md) + - [RouteFilterRulesData](docs/RouteFilterRulesData.md) + - [RouteFilterRulesPostRequest](docs/RouteFilterRulesPostRequest.md) + - [RouteFilterState](docs/RouteFilterState.md) + - [RouteFiltersBase](docs/RouteFiltersBase.md) + - [RouteFiltersChange](docs/RouteFiltersChange.md) + - [RouteFiltersChangeOperation](docs/RouteFiltersChangeOperation.md) + - [RouteFiltersData](docs/RouteFiltersData.md) + - [RouteFiltersDataProject](docs/RouteFiltersDataProject.md) + - [RouteFiltersDataProjectAllOf](docs/RouteFiltersDataProjectAllOf.md) - [RouteTableEntry](docs/RouteTableEntry.md) - [RouteTableEntryConnection](docs/RouteTableEntryConnection.md) - [RouteTableEntryFilter](docs/RouteTableEntryFilter.md) @@ -422,6 +462,7 @@ Class | Method | HTTP request | Description - [SearchRequest](docs/SearchRequest.md) - [SearchResponse](docs/SearchResponse.md) - [ServiceMetro](docs/ServiceMetro.md) + - [ServiceMetros](docs/ServiceMetros.md) - [ServiceProfile](docs/ServiceProfile.md) - [ServiceProfileAccessPointCOLO](docs/ServiceProfileAccessPointCOLO.md) - [ServiceProfileAccessPointType](docs/ServiceProfileAccessPointType.md) @@ -473,10 +514,9 @@ Class | Method | HTTP request | Description - [Statistics](docs/Statistics.md) - [SubInterface](docs/SubInterface.md) - [TopUtilizedStatistics](docs/TopUtilizedStatistics.md) - - [ValidateConnectionRequest](docs/ValidateConnectionRequest.md) - - [ValidateSubnetRequest](docs/ValidateSubnetRequest.md) - - [ValidateSubnetRequestFilter](docs/ValidateSubnetRequestFilter.md) - - [ValidateSubnetRequestFilterAnd](docs/ValidateSubnetRequestFilterAnd.md) + - [ValidateRequest](docs/ValidateRequest.md) + - [ValidateRequestFilter](docs/ValidateRequestFilter.md) + - [ValidateRequestFilterAnd](docs/ValidateRequestFilterAnd.md) - [ValidateSubnetResponse](docs/ValidateSubnetResponse.md) - [ViewPoint](docs/ViewPoint.md) - [VirtualConnectionBridgePackageCode](docs/VirtualConnectionBridgePackageCode.md) @@ -493,6 +533,7 @@ Class | Method | HTTP request | Description - [VirtualConnectionPriceZSideAccessPointBridgePackage](docs/VirtualConnectionPriceZSideAccessPointBridgePackage.md) - [VirtualConnectionPriceZSideAccessPointProfile](docs/VirtualConnectionPriceZSideAccessPointProfile.md) - [VirtualDevice](docs/VirtualDevice.md) + - [VirtualNetwork](docs/VirtualNetwork.md) - [VirtualPortConfiguration](docs/VirtualPortConfiguration.md) - [VirtualPortLocation](docs/VirtualPortLocation.md) - [VirtualPortPrice](docs/VirtualPortPrice.md) diff --git a/equinix-openapi-fabric/api/openapi.yaml b/equinix-openapi-fabric/api/openapi.yaml index 8665af98..daef808f 100644 --- a/equinix-openapi-fabric/api/openapi.yaml +++ b/equinix-openapi-fabric/api/openapi.yaml @@ -16,7 +16,7 @@ info: url: https://developer.equinix.com/agreement termsOfService: https://www.equinix.com/about/legal/terms title: Equinix Fabric API v4 - version: "4.10" + version: "4.11" externalDocs: description: Find more information on Equinix Developer Portal url: https://developer.equinix.com @@ -92,9 +92,6 @@ paths: Colo2Sp-Aws-Primary: $ref: '#/components/examples/COLO2AWSSPwithDot1q-Primary' value: null - Colo2Sp-Aws-Secondary: - $ref: '#/components/examples/COLO2AWSSPwithDot1q-Secondary' - value: null Colo2Sp-AzureDot1Q: $ref: '#/components/examples/COLO2AzureSPwithDot1q-Primary' value: null @@ -188,6 +185,9 @@ paths: AsideServiceToken2ZsideServiceToken: $ref: '#/components/examples/AsideServiceToken2ZsideServiceToken' value: null + Metal2Sp-Aws: + $ref: '#/components/examples/Metal2Sp-Aws' + value: null schema: $ref: '#/components/schemas/ConnectionPostRequest' required: true @@ -229,6 +229,9 @@ paths: ServiceToken2PortResponseQinQ: $ref: '#/components/examples/AsideServiceToken2PortResponseWithQinq' value: null + Metal2Sp-Aws: + $ref: '#/components/examples/Metal2Sp-Aws-Response' + value: null schema: $ref: '#/components/schemas/Connection' description: Accept Connection Request @@ -3087,6 +3090,92 @@ paths: - Service Profiles x-content-type: application/json x-accepts: application/json + /fabric/v4/serviceProfiles/{serviceProfileId}/metros: + get: + description: Get service profile metros by UUID. + operationId: getServiceProfileMetrosByUuid + parameters: + - description: Service Profile UUID + explode: false + in: path + name: serviceProfileId + required: true + schema: + $ref: '#/components/schemas/ServiceProfileId' + style: simple + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: number of records to fetch + example: 10 + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json; charset=UTF-8: + examples: + ServiceProfileMetros: + $ref: '#/components/examples/ServiceProfilesResponse' + value: null + schema: + $ref: '#/components/schemas/ServiceMetros' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/sp-400' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/sp-401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/sp-403-read' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/sp-500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal Server Error + summary: Get Profile Metros + tags: + - Service Profiles + x-accepts: application/json /fabric/v4/serviceTokens/{serviceTokenId}: delete: description: Delete Service Tokens removes an Equinix Fabric service token corresponding @@ -4062,41 +4151,37 @@ paths: - Ports x-content-type: application/json x-accepts: application/json - /fabric/v4/routers: - post: - description: This API provides capability to create user's Cloud Routers - operationId: createCloudRouter - parameters: [] - requestBody: - content: - application/json: - examples: - CreateLabPackage: - $ref: '#/components/examples/CreateLabPackage' - value: null - CreateProPackage: - $ref: '#/components/examples/CreateProPackage' - value: null - schema: - $ref: '#/components/schemas/CloudRouterPostRequest' + /fabric/v4/connections/{connectionId}/routeFilters: + get: + description: This API provides capability to view all Route Filters attached + to a Connection + operationId: getConnectionRouteFilters + parameters: + - description: Connection Id + explode: false + in: path + name: connectionId required: true + schema: + $ref: '#/components/schemas/ConnectionId' + style: simple responses: "200": content: application/json: examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterPostResponseExample' + connectionRouteFiltersResponse: + $ref: '#/components/examples/ConnectionRouteFiltersGetAll' value: null schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object + $ref: '#/components/schemas/GetAllConnectionRouteFiltersResponse' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_package' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4121,6 +4206,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter ID Not Found "415": content: application/json: @@ -4136,38 +4231,56 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Routers + summary: Get All RouteFilters tags: - - Cloud Routers - x-content-type: application/json + - Route Filters x-accepts: application/json - /fabric/v4/routers/{routerId}: + /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}: delete: - description: This API provides capability to delete user's Cloud Routers - operationId: deleteCloudRouterByUuid + description: This API provides capability to detach a Route Filter from a Connection + operationId: detachConnectionRouteFilter parameters: - - description: Cloud Router UUID + - description: Route Filters Id explode: false in: path - name: routerId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Connection Id + explode: false + in: path + name: connectionId + required: true + schema: + $ref: '#/components/schemas/ConnectionId' style: simple responses: - "204": - description: Deleted Cloud Router Successfully + "202": + content: + application/json: + examples: + connectionRouteFilterDetachInboundResponse: + $ref: '#/components/examples/DetachConnectionRouteFilterInboundResponse' + value: null + connectionRouteFilterDetachOutboundResponse: + $ref: '#/components/examples/DetachConnectionRouteFilterOutboundResponse' + value: null + schema: + $ref: '#/components/schemas/ConnectionRouteFilterData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_state' + $ref: '#/components/examples/400_transient_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4197,137 +4310,73 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Not Found - "500": - content: - application/json: - examples: - example: - $ref: '#/components/examples/500' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Delete Routers - tags: - - Cloud Routers - x-accepts: application/json - get: - description: This API provides capability to retrieve user's Cloud Routers - operationId: getCloudRouterByUuid - parameters: - - description: Cloud Router UUID - explode: false - in: path - name: routerId - required: true - schema: - $ref: '#/components/schemas/RouterId' - style: simple - responses: - "200": - content: - application/json: - examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterResponseExample' - value: null - schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object - "401": - content: - application/json: - examples: - example: - $ref: '#/components/examples/401' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Unauthorized - "403": - content: - application/json: - examples: - example: - $ref: '#/components/examples/403' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Forbidden - "404": + description: Route Filter ID Not Found + "415": content: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/415' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Unsupported Media Type "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Routers + summary: Detach Route Filter tags: - - Cloud Routers + - Route Filters x-accepts: application/json - patch: - description: This API provides capability to update user's Cloud Routers - operationId: updateCloudRouterByUuid + get: + description: This API provides capability to view a specific Route Filter attached + to a Connection + operationId: getConnectionRouteFilterByUuid parameters: - - description: Cloud Router UUID + - description: Route Filters Id explode: false in: path - name: routerId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteFilterId' style: simple - requestBody: - content: - application/json-patch+json: - examples: - UpdatePackage: - $ref: '#/components/examples/UpdatePackage' - value: null - UpdateName: - $ref: '#/components/examples/UpdateName' - value: null - UpdateNotificationEmail: - $ref: '#/components/examples/UpdateNotifications' - value: null - schema: - $ref: '#/components/schemas/CloudRouterUpdateRequest' + - description: Connection Id + explode: false + in: path + name: connectionId required: true + schema: + $ref: '#/components/schemas/ConnectionId' + style: simple responses: "200": content: application/json: examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterPatchResponseExample' + connectionRouteFilterAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' value: null schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object + $ref: '#/components/schemas/ConnectionRouteFilterData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_operation' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4357,11 +4406,11 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Route Filter ID Not Found "415": content: application/json: @@ -4377,54 +4426,68 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Update Routers + summary: Get Route Filter tags: - - Cloud Routers - x-content-type: application/json-patch+json + - Route Filters x-accepts: application/json - /fabric/v4/routers/{routerId}/actions: - get: - description: This API provides capability to fetch action status - operationId: getCloudRouterActions + put: + description: This API provides capability to attach a Route Filter to a Connection + operationId: attachConnectionRouteFilter parameters: - - description: Router UUID + - description: Route Filters Id explode: false in: path - name: routerId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteFilterId' style: simple - - description: Action state - explode: true - in: query - name: state - required: false + - description: Connection Id + explode: false + in: path + name: connectionId + required: true schema: - $ref: '#/components/schemas/ActionState' - style: form + $ref: '#/components/schemas/ConnectionId' + style: simple + requestBody: + content: + application/json: + examples: + ConnectionRouteFilterAttachInboundExample: + $ref: '#/components/examples/AttachConnectionRouteFilterInbound' + value: null + ConnectionRouteFilterAttachOutboundExample: + $ref: '#/components/examples/AttachConnectionRouteFilterOutbound' + value: null + schema: + $ref: '#/components/schemas/ConnectionRouteFiltersBase' + required: true responses: - "200": + "202": content: application/json: examples: - routerActionExample: - $ref: '#/components/examples/CloudRouterActionResponse' + connectionRouteFilterAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' value: null schema: - $ref: '#/components/schemas/CloudRouterActionResponse' + $ref: '#/components/schemas/ConnectionRouteFilterData' description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_operation' + InvalidDirection: + $ref: '#/components/examples/400_invalid_direction' + value: null + TransientState: + $ref: '#/components/examples/400_transient_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4454,11 +4517,11 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Route Filter ID Not Found "415": content: application/json: @@ -4468,61 +4531,54 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error + description: Unsupported Media Type "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get actions + summary: Attach Route Filter tags: - - Cloud Routers + - Route Filters + x-content-type: application/json x-accepts: application/json + /fabric/v4/routeFilters: post: - description: This API provides capability to refresh route table and bgp session - summary information - operationId: createCloudRouterAction - parameters: - - description: Router UUID - explode: false - in: path - name: routerId - required: true - schema: - $ref: '#/components/schemas/RouterId_1' - style: simple + description: This API provides capability to create a Route Filter + operationId: createRouteFilter + parameters: [] requestBody: content: application/json: examples: - RouteEntriesStatusUpdate: - $ref: '#/components/examples/RouteEntriesStatusUpdate' + RouteFilterBgpIpv4Prefix: + $ref: '#/components/examples/RouteFilterCreateBgpIpv4Prefix' value: null schema: - $ref: '#/components/schemas/CloudRouterActionRequest' + $ref: '#/components/schemas/RouteFiltersBase' required: true responses: "202": content: application/json: examples: - cloudRouterActionExample: - $ref: '#/components/examples/CloudRouterActionResponse' + getSpecificRouteFilterResponse: + $ref: '#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/CloudRouterActionResponse' + $ref: '#/components/schemas/RouteFiltersData' description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_operation' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4552,11 +4608,11 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Route Filter ID Not Found "415": content: application/json: @@ -4566,72 +4622,52 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error + description: Unsupported Media Type "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Route table actions + summary: Create Route Filters tags: - - Cloud Routers + - Route Filters x-content-type: application/json x-accepts: application/json - /fabric/v4/routers/{routerId}/routes/search: - post: - description: "The API provides capability to get list of user's Fabric Cloud\ - \ Router route table entries using search criteria, including optional filtering,\ - \ pagination and sorting" - operationId: searchCloudRouterRoutes + /fabric/v4/routeFilters/{routeFilterId}: + delete: + description: This API provides capability to delete a Route Filter + operationId: deleteRouteFilterByUuid parameters: - - description: Router UUID + - description: Route Filters Id explode: false in: path - name: routerId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteFilterId' style: simple - requestBody: - content: - application/json: - examples: - SearchFilterByNextHop: - $ref: '#/components/examples/SearchFilterByNextHop' - value: null - SearchFilterByPrefix: - $ref: '#/components/examples/SearchFilterByPrefix' - value: null - SearchFilterByType: - $ref: '#/components/examples/SearchFilterByType' - value: null - SearchFilterByStatus: - $ref: '#/components/examples/SearchFilterByStatus' - value: null - SearchFilterOrAnd: - $ref: '#/components/examples/SearchFilterOrAnd' - value: null - schema: - $ref: '#/components/schemas/RouteTableEntrySearchRequest' - required: true responses: - "200": + "202": content: application/json: + examples: + routeFilterDeleteBgpIpv4PrefixResponse: + $ref: '#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse' + value: null schema: - $ref: '#/components/schemas/RouteTableEntrySearchResponse' + $ref: '#/components/schemas/RouteFiltersData' description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_sorting' + $ref: '#/components/examples/400_attached_connection' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4661,11 +4697,11 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Route Filter ID Not Found "415": content: application/json: @@ -4675,117 +4711,50 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error + description: Unsupported Media Type "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Search Route Table + summary: Delete Route Filter tags: - - Cloud Routers - x-content-type: application/json + - Route Filters x-accepts: application/json - /fabric/v4/routers/{routerId}/validate: - post: - description: This API provides capability to validate all subnets associated - with any connection in the given FCR - operationId: validateRoutingProtocol + get: + description: This API provides capability to view a Route Filter by UUID + operationId: getRouteFilterByUuid parameters: - - description: Cloud Router UUID + - description: Route Filters Id explode: false in: path - name: routerId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteFilterId' style: simple - requestBody: - content: - application/json: - examples: - ValidateDirectIpv4: - $ref: '#/components/examples/Request-direct-ipv4' - value: null - ValidateDirectIpv6: - $ref: '#/components/examples/Request-direct-ipv6' - value: null - schema: - $ref: '#/components/schemas/ValidateSubnetRequest' - required: true - responses: - "200": - content: - application/json: - examples: - ValidateSubnet: - $ref: '#/components/examples/Response-200' - value: null - schema: - $ref: '#/components/schemas/ValidateSubnetResponse' - description: Successful operation - "400": - content: - application/json: - examples: - Bad Request: - $ref: '#/components/examples/error-400' - value: null - Subnet Overlapping: - $ref: '#/components/examples/error-400-overlappingSubnet' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Bad request - summary: Validate Subnet - tags: - - Routing Protocols - x-content-type: application/json - x-accepts: application/json - /fabric/v4/routers/search: - post: - description: "The API provides capability to get list of user's Cloud Routers\ - \ using search criteria, including optional filtering, pagination and sorting" - operationId: searchCloudRouters - parameters: [] - requestBody: - content: - application/json: - examples: - SearchFilterByStatus: - $ref: '#/components/examples/SearchFilterByStatus' - value: null - SearchFilterByNameAndMetroName: - $ref: '#/components/examples/SearchFilterByNameAndMetroName' - value: null - SearchFilterOrAnd: - $ref: '#/components/examples/SearchFilterOrAnd' - value: null - schema: - $ref: '#/components/schemas/CloudRouterSearchRequest' - required: true responses: "200": content: application/json: examples: - Example: - $ref: '#/components/examples/search-example' + getSpecificRouteFilterResponse: + $ref: '#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/SearchResponse' + $ref: '#/components/schemas/RouteFiltersData' description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_sorting' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4810,85 +4779,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": - content: - application/json: - examples: - example: - $ref: '#/components/examples/415' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type - "500": - content: - application/json: - examples: - example: - $ref: '#/components/examples/500' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Search Routers - tags: - - Cloud Routers - x-content-type: application/json - x-accepts: application/json - /fabric/v4/routerPackages: - get: - description: This API provides capability to retrieve user's Cloud Routers Packages - operationId: getCloudRouterPackages - parameters: - - description: offset - example: 1 - explode: true - in: query - name: offset - required: false - schema: - type: integer - style: form - - description: number of records to fetch - example: 10 - explode: true - in: query - name: limit - required: false - schema: - type: integer - style: form - responses: - "200": - content: - application/json: - examples: - Example: - $ref: '#/components/examples/ListFCRPackagesResponse' - value: null - schema: - $ref: '#/components/schemas/PackageResponse' - description: Fabric Cloud Router Packages - "401": - content: - application/json: - examples: - example: - $ref: '#/components/examples/401' - value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Unauthorized - "403": + "404": content: application/json: examples: example: - $ref: '#/components/examples/403' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Forbidden + description: Route Filter ID Not Found "415": content: application/json: @@ -4904,42 +4804,54 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: List Packages + summary: Get Filter By UUID tags: - - Cloud Routers + - Route Filters x-accepts: application/json - /fabric/v4/routerPackages/{routerPackageCode}: - get: - description: This API provides capability to retrieve user's Cloud Routers Package - Details - operationId: getCloudRouterPackageByCode + patch: + description: This API provides capability to partially update a Route Filter + operationId: patchRouteFilterByUuid parameters: - - description: Equinix-assigned Cloud Router package identifier + - description: Route Filters Id explode: false in: path - name: routerPackageCode + name: routeFilterId required: true schema: - $ref: '#/components/schemas/RouterPackageCode' + $ref: '#/components/schemas/RouteFilterId' style: simple + requestBody: + content: + application/json: + examples: + RouteFilterNamePatchExample: + $ref: '#/components/examples/PatchRouteFilterName' + value: null + schema: + $ref: '#/components/schemas/RouteFiltersPatchRequest' + required: true responses: - "200": + "202": content: application/json: + examples: + RouteFilterNamePatchResponse: + $ref: '#/components/examples/RouteFilterNamePatchResponse' + value: null schema: - $ref: '#/components/schemas/CloudRouterPackage' - description: Fabric Cloud Router Package details + $ref: '#/components/schemas/RouteFiltersData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_package' + $ref: '#/components/examples/400_invalid_operation' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -4964,184 +4876,80 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type - "500": + description: Route Filter ID Not Found + "415": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/415' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Get Package Details - tags: - - Cloud Routers - x-accepts: application/json - /fabric/v4/health: - get: - description: GET All service health statys with an option query parameter to - return all Equinix Fabric customer in which the customer has a presence. - operationId: getStatus - parameters: [] - responses: - "200": - content: - application/json: - examples: - metroExample: - $ref: '#/components/examples/healthResponse' - value: null - schema: - $ref: '#/components/schemas/HealthResponse' - description: Successful operation - summary: Get service status - tags: - - Health - x-accepts: application/json - /fabric/v4/connections/validate: - post: - description: This API provides capability to validate by auth key - operationId: validateConnections - parameters: [] - requestBody: - content: - application/json: - examples: - Alibaba-ValidateAuthKey: - $ref: '#/components/examples/Request_Alibaba' - value: null - Aws-ValidateAuthKey: - $ref: '#/components/examples/Request_AWS' - value: null - Azure-ValidateAuthKey: - $ref: '#/components/examples/Request_Azure' - value: null - Google-ValidateAuthKey: - $ref: '#/components/examples/Request_Google' - value: null - IBM-1.0-ValidateAuthKey: - $ref: '#/components/examples/Request_IBM_1' - value: null - IBM-2.0-ValidateAuthKey: - $ref: '#/components/examples/Request_IBM_2' - value: null - Oracle-ValidateAuthKey: - $ref: '#/components/examples/Request_Oracle' - value: null - Dot1q-ValidateVlanAvailability: - $ref: '#/components/examples/Dot1q_Vlan' - value: null - Qinq-ValidateVlanAvailability: - $ref: '#/components/examples/Qinq_Vlan' - value: null - schema: - $ref: '#/components/schemas/ValidateConnectionRequest' - required: true - responses: - "200": - content: - application/json: - examples: - Alibaba-ValidateAuthKey: - $ref: '#/components/examples/Response-Alibaba' - value: null - Aws-ValidateAuthKey: - $ref: '#/components/examples/Response-Aws' - value: null - Azure-ValidateAuthKey-no-existing-connections: - $ref: '#/components/examples/Response-Azure-no-existing-connections' - value: null - Azure-ValidateAuthKey-1-existing-Dot1q-connection: - $ref: '#/components/examples/Response-Azure-1-existing-Dot1q-connection' - value: null - Azure-ValidateAuthKey-1-existing-Qinq-connection: - $ref: '#/components/examples/Response-Azure-1-existing-Qinq-connection' - value: null - Azure-ValidateAuthKey-2-existing-Dot1q-connection: - $ref: '#/components/examples/Response-Azure-2-existing-Dot1q-connections' - value: null - Google-ValidateAuthKey: - $ref: '#/components/examples/Response-Google' - value: null - IBM-1.0-ValidateAuthKey: - $ref: '#/components/examples/Response-IBM-1' - value: null - IBM-2.0-ValidateAuthKey: - $ref: '#/components/examples/Response-IBM-2' - value: null - Oracle-ValidateAuthKey: - $ref: '#/components/examples/Response-Oracle' - value: null - Dot1q-ValidateAuthKey: - $ref: '#/components/examples/Response-Dot1q-Vlan' - value: null - Qinq-ValidateAuthKey: - $ref: '#/components/examples/Response-Qinq-Vlan' - value: null - schema: - $ref: '#/components/schemas/ConnectionResponse' - description: Successful operation - "400": + description: Unsupported Media Type + "500": content: application/json: examples: - Bad Request: - $ref: '#/components/examples/error-400' + example: + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Bad request - summary: Validate Connection + description: Internal server error + summary: Patch Route Filter tags: - - Connections + - Route Filters x-content-type: application/json x-accepts: application/json - /fabric/v4/networks: - post: - description: This API provides capability to create user's Fabric Network - operationId: createNetwork - parameters: [] + put: + description: This API provides capability to replace a Route Filter completely + operationId: replaceRouteFilterByUuid + parameters: + - description: Route Filters Id + explode: false + in: path + name: routeFilterId + required: true + schema: + $ref: '#/components/schemas/RouteFilterId' + style: simple requestBody: content: application/json: examples: - CreateGlobalNetwork: - $ref: '#/components/examples/CreateGlobalNetwork' - value: null - CreateRegionalNetwork: - $ref: '#/components/examples/CreateRegionalNetwork' + RouteFilterIpv4ReplaceExample: + $ref: '#/components/examples/UpdateRouteFilterIPv4' value: null schema: - $ref: '#/components/schemas/NetworkPostRequest' + $ref: '#/components/schemas/RouteFiltersBase' required: true responses: "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkPostResponseExample' + routeFilterIpv4ReplaceResponse: + $ref: '#/components/examples/RouteFilterIpv4ReplaceResponse' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFiltersData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5166,6 +4974,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter ID Not Found "415": content: application/json: @@ -5181,46 +4999,65 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Network + summary: Replace Route Filter tags: - - Networks + - Route Filters x-content-type: application/json x-accepts: application/json - /fabric/v4/networks/{networkId}: - delete: - description: This API provides capability to delete user's Fabric Network - operationId: deleteNetworkByUuid + /fabric/v4/routeFilters/{routeFilterId}/changes: + get: + description: This API provides capability to retrieve all of a Route Filter's + Changes + operationId: getRouteFilterChanges parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' style: simple + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: number of records to fetch + example: 10 + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form responses: - "202": + "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkDeleteResponseExample' + RouteFilterChangesResponse: + $ref: '#/components/examples/RouteFilterGetAllChangesResponseExample' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFilterChangeDataResponse' + description: Fabric Route Filter Change object "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_state' + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5250,38 +5087,68 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found - summary: Delete Network By ID + description: Route Filter ID Not Found + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get All Changes tags: - - Networks + - Route Filters x-accepts: application/json + /fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}: get: - description: This API provides capability to retrieve user's Fabric Network - operationId: getNetworkByUuid + description: This API provides capability to retrieve a specific Route Filter's + Changes + operationId: getRouteFilterChangeByUuid parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Routing Protocol Change UUID + explode: false + in: path + name: changeId + required: true + schema: + $ref: '#/components/schemas/ChangeId_1' style: simple responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkGetResponseExample' + RouteFilterChangeResponse: + $ref: '#/components/examples/RouteFilterGetChangeResponseExample' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFilterChangeData' + description: Fabric Route Filter Change object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_Invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -5307,57 +5174,56 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found - summary: Get Network By ID + description: Route Filter ID Not Found + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Change By ID tags: - - Networks + - Route Filters x-accepts: application/json - patch: - description: This API provides capability to update user's Fabric Network - operationId: updateNetworkByUuid + /fabric/v4/routeFilters/{routeFilterId}/connections: + get: + description: This API provides capability to view all Connections using the + Route Filter + operationId: getRouteFilterConnections parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' style: simple - requestBody: - content: - application/json-patch+json: - examples: - UpdateName: - $ref: '#/components/examples/UpdateNetworkName' - value: null - UpdateNotificationEmail: - $ref: '#/components/examples/UpdateNetworkNotifications' - value: null - schema: - $ref: '#/components/schemas/NetworkUpdateRequest' - required: true responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkPatchResponseExample' + routeFilterGetConnectionsResponse: + $ref: '#/components/examples/RouteFilterGetConnectionsResponse' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/GetRouteFilterGetConnectionsResponse' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_state' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5387,11 +5253,11 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found + description: Route Filter ID Not Found "415": content: application/json: @@ -5402,48 +5268,66 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Unsupported Media Type - summary: Update Network By ID + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Connections tags: - - Networks - x-content-type: application/json-patch+json + - Route Filters x-accepts: application/json - /fabric/v4/networks/search: - post: - description: "The API provides capability to get list of user's Fabric Network\ - \ using search criteria, including optional filtering, pagination and sorting" - operationId: searchNetworks - parameters: [] - requestBody: - content: - application/json: - examples: - SearchFilterByStatus: - $ref: '#/components/examples/SearchFilterByStatus' - value: null - SearchFilterOrAnd: - $ref: '#/components/examples/SearchFilterOrAnd' - value: null - schema: - $ref: '#/components/schemas/NetworkSearchRequest' + /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules: + get: + description: This API provides capability to get all Route Filters Rules for + Fabric + operationId: getRouteFilterRules + parameters: + - description: Route Filters Id + explode: false + in: path + name: routeFilterId required: true + schema: + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: number of records to fetch + example: 10 + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkSearchResponseExample' + getAllRouteFilters: + $ref: '#/components/examples/RouteFilterRulesGetAll' value: null schema: - $ref: '#/components/schemas/NetworkSearchResponse' - description: Fabric Network Access point object + $ref: '#/components/schemas/GetRouteFilterRulesResponse' + description: Successful operation "400": content: application/json: - examples: - example: - $ref: '#/components/examples/400_invalid_sorting' - value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -5467,52 +5351,65 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter Rule ID Not Found + "500": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type - summary: Search Network + description: Internal server error + summary: GetRFRules tags: - - Networks - x-content-type: application/json + - Route Filter Rules x-accepts: application/json - /fabric/v4/networks/{networkId}/connections: - get: - description: The API provides capability to get list of user's Fabric Network - connections - operationId: getConnectionsByNetworkUuid + post: + description: This API provides capability to create a Route Filter Rule + operationId: createRouteFilterRule parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' style: simple + requestBody: + content: + application/json: + examples: + RouteFilterRuleBgpIpv4Prefix: + $ref: '#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix' + value: null + schema: + $ref: '#/components/schemas/RouteFilterRulesBase' + required: true responses: - "200": + "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/GetNetworkConnectionExample' + getSpecificRouteFilterRuleResponse: + $ref: '#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/NetworkConnections' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFilterRulesData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_uuid' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5537,6 +5434,12 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter Rule ID Not Found "415": content: application/json: @@ -5547,41 +5450,59 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Unsupported Media Type - summary: Get Connections + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Create RFRule tags: - - Networks + - Route Filter Rules + x-content-type: application/json x-accepts: application/json - /fabric/v4/networks/{networkId}/changes: - get: - description: The API provides capability to get list of user's Fabric Network - changes - operationId: getNetworkChanges + /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}: + delete: + description: This API provides capability to delete a Route Filter Rule + operationId: deleteRouteFilterRuleByUuid parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Route Filter Rules Id + explode: false + in: path + name: routeFilterRuleId + required: true + schema: + $ref: '#/components/schemas/RouteFilterRuleId' style: simple responses: - "200": + "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkChangeResponseExample' + routeFilterDeleteBgpIpv4PrefixResponse: + $ref: '#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/NetworkChangeResponse' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFilterRulesData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_uuid' + $ref: '#/components/examples/400_transient_filter' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5606,6 +5527,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter ID Not Found "415": content: application/json: @@ -5616,49 +5547,57 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Unsupported Media Type - summary: Get Network Changes + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: DeleteRFRule tags: - - Networks + - Route Filter Rules x-accepts: application/json - /fabric/v4/networks/{networkId}/changes/{changeId}: get: - description: This API provides capability to retrieve user's Fabric Network - Change - operationId: getNetworkChangeByUuid + description: This API provides capability to view a Route Filter Rule by UUID + operationId: getRouteFilterRuleByUuid parameters: - - description: Network UUID + - description: Route Filters Id explode: false in: path - name: networkId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteFilterId' style: simple - - description: Network Change UUID + - description: Route Filter Rules Id explode: false in: path - name: changeId + name: routeFilterRuleId required: true schema: - $ref: '#/components/schemas/ChangeId_1' + $ref: '#/components/schemas/RouteFilterRuleId' style: simple responses: - "200": + "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkGetChangeResponseExample' + getSpecificRouteFilterRuleResponse: + $ref: '#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/NetworkChange' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteFilterRulesData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_uuid' + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5688,39 +5627,87 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found - summary: Get Change By ID + description: Route Filter ID Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500_internal_error' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: GetRFRule By UUID tags: - - Networks + - Route Filter Rules x-accepts: application/json - /fabric/v4/timeServices/{serviceId}: - delete: - description: Delete EPT service by it's uuid - operationId: deleteTimeServiceById + patch: + description: This API provides capability to partially update a Route Filter + Rule + operationId: patchRouteFilterRuleByUuid parameters: - - description: Service UUID + - description: Route Filters Id explode: false in: path - name: serviceId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Route Filter Rules Id + explode: false + in: path + name: routeFilterRuleId + required: true + schema: + $ref: '#/components/schemas/RouteFilterRuleId' style: simple + requestBody: + content: + application/json: + examples: + RouteFilterRuleNamePatchExample: + $ref: '#/components/examples/PatchRouteFilterRulePrefixMatch' + value: null + schema: + $ref: '#/components/schemas/RouteFilterRulesPatchRequest' + required: true responses: - "204": + "202": content: application/json: examples: - NtpStandard: - $ref: '#/components/examples/ntpStandardCreateResponse' + RouteFilterNamePatchResponse: + $ref: '#/components/examples/RouteFilterNamePatchResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + $ref: '#/components/schemas/RouteFiltersData' description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_operation' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -5741,6 +5728,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter ID Not Found "415": content: application/json: @@ -5756,173 +5753,63 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Delete Time Service + summary: PatchRFilterRule tags: - - Precision Time + - Route Filter Rules + x-content-type: application/json x-accepts: application/json - get: - description: The API provides capability to get precision timing service's details - operationId: getTimeServicesById + put: + description: This API provides capability to replace a Route Filter Rule completely + operationId: replaceRouteFilterRuleByUuid parameters: - - description: Service UUID + - description: Route Filters Id explode: false in: path - name: serviceId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Route Filter Rules Id + explode: false + in: path + name: routeFilterRuleId + required: true + schema: + $ref: '#/components/schemas/RouteFilterRuleId' style: simple + requestBody: + content: + application/json: + examples: + RouteFilterIpv4ReplaceExample: + $ref: '#/components/examples/UpdateRouteFilterRuleIPv4' + value: null + schema: + $ref: '#/components/schemas/RouteFilterRulesBase' + required: true responses: - "200": + "202": content: application/json: examples: - NtpStandard: - $ref: '#/components/examples/ntpStandardCreateResponse' + routeFilterRuleIpv4ReplaceResponse: + $ref: '#/components/examples/RouteFilterRuleIpv4ReplaceResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + $ref: '#/components/schemas/RouteFilterRulesData' description: Successful operation "400": content: application/json: examples: - MandatoryName: - $ref: '#/components/examples/400-Mandatory-Name' - value: null - InvalidName: - $ref: '#/components/examples/400-Invalid-Name' - value: null - ValidateName: - $ref: '#/components/examples/400-Validate-Name' - value: null - DuplicateName: - $ref: '#/components/examples/400-Duplicate-Name' - value: null - MandatoryConnectionUuid: - $ref: '#/components/examples/400-Mandatory-ConnectionUUid' - value: null - InvalidConnectionUuidFormat: - $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' - value: null - InvalidConnectionStatus: - $ref: '#/components/examples/400-Invalid-Connection-Status' - value: null - ValidateConnectionUuid: - $ref: '#/components/examples/400-Validate-ConnectionUuid' - value: null - InvalidConnectionLocation: - $ref: '#/components/examples/400-Invalid-Connection-Location' - value: null - MandatoryPackageType: - $ref: '#/components/examples/400-Mandatory-PackageType' - value: null - InvalidPackageType: - $ref: '#/components/examples/400-Invalid-PackageType' - value: null - InvalidConnectionPackageType: - $ref: '#/components/examples/400-Invalid-Connection-PackageType' - value: null - MandatoryPackage: - $ref: '#/components/examples/400-Mandatory-Package' - value: null - InvalidPackage: - $ref: '#/components/examples/400-Invalid-Package' - value: null - InvalidConnectionPackage: - $ref: '#/components/examples/400-Invalid-Connection-Package' - value: null - MandatoryPrimaryIP: - $ref: '#/components/examples/400-Mandatory-PrimaryIP' - value: null - InvalidPrimaryIPFormat: - $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' - value: null - ValidatePrimaryIP: - $ref: '#/components/examples/400-Validate-PrimaryIP' - value: null - MandatorySecondaryIP: - $ref: '#/components/examples/400-Mandatory-SecondaryIP' - value: null - InvalidSecondaryIPFormat: - $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' - value: null - ValidateSecondaryIP: - $ref: '#/components/examples/400-Validate-SecondaryIP' - value: null - ValidateSameSubnet: - $ref: '#/components/examples/400-Validate-SameSubnet' - value: null - MandatoryNetworkMask: - $ref: '#/components/examples/400-Mandatory-NetworkMask' - value: null - InvalidNetworkMaskFormat: - $ref: '#/components/examples/400-Invalid-NetworkMask-Format' - value: null - ValidateNetworkMask: - $ref: '#/components/examples/400-Validate-NetworkMask' - value: null - InvalidDefaultGatewayFormat: - $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' - value: null - ValidateDefaultGateway: - $ref: '#/components/examples/400-Validate-DefaultGateway' - value: null - InvalidTimeScale: - $ref: '#/components/examples/400-Invalid-TimeScale' - value: null - InvalidDomain: - $ref: '#/components/examples/400-Invalid-Domain' - value: null - InvalidPriority1: - $ref: '#/components/examples/400-Invalid-Priority1' - value: null - InvalidPriority2: - $ref: '#/components/examples/400-Invalid-Priority2' - value: null - InvalidLogAnnounceInterval: - $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' - value: null - ValidateLogAnnounceIntervalRange: - $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' - value: null - InvalidLogSyncInterval: - $ref: '#/components/examples/400-Invalid-LogSyncInterval' - value: null - ValidateLogSyncIntervalRange: - $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' - value: null - InvalidLogDelayReqInterval: - $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' - value: null - ValidateLogDelayReqIntervalRange: - $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' - value: null - InvalidTransportMode: - $ref: '#/components/examples/400-Invalid-TransportMode' - value: null - InvalidGrantTime: - $ref: '#/components/examples/400-Invalid-GrantTime' - value: null - ValidateGrantTimeRange: - $ref: '#/components/examples/400-Validate-GrantTime-Range' - value: null - InvalidType: - $ref: '#/components/examples/400-Invalid-Type' - value: null - InvalidId: - $ref: '#/components/examples/400-Invalid-Id' - value: null - InvalidPassword: - $ref: '#/components/examples/400-Invalid-Password' - value: null - ValidatePassword: - $ref: '#/components/examples/400-Validate-Password' + example: + $ref: '#/components/examples/400_route_filters' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5947,6 +5834,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Filter ID Not Found "415": content: application/json: @@ -5962,186 +5859,73 @@ paths: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Time Service + summary: ReplaceRFRule tags: - - Precision Time + - Route Filter Rules + x-content-type: application/json x-accepts: application/json - patch: - description: The API provides capability to update timing service - operationId: updateTimeServicesById + /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes: + get: + description: This API provides capability to retrieve all of a Route Filter + Rule's Changes + operationId: getRouteFilterRuleChanges parameters: - - description: Service UUID + - description: Route Filters Id explode: false in: path - name: serviceId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouteFilterId' style: simple - requestBody: - content: - application/json-patch+json: - examples: - editName: - $ref: '#/components/examples/edit' - value: null - schema: - items: - $ref: '#/components/schemas/precisionTimeChangeOperation' - minItems: 1 - type: array + - description: Route Filter Rules Id + explode: false + in: path + name: routeFilterRuleId required: true + schema: + $ref: '#/components/schemas/RouteFilterRuleId' + style: simple + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: number of records to fetch + example: 10 + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form responses: "200": content: application/json: examples: - NtpStandard: - $ref: '#/components/examples/ntpStandardCreateResponse' + RouteFilterRuleChangesResponse: + $ref: '#/components/examples/RouteFilterRulesGetAllChangesResponseExample' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceCreateResponse' - description: Successful operation + $ref: '#/components/schemas/RouteFilterRulesChangeDataResponse' + description: Fabric Route Filter Rule Change object "400": content: application/json: examples: - MandatoryName: - $ref: '#/components/examples/400-Mandatory-Name' - value: null - InvalidName: - $ref: '#/components/examples/400-Invalid-Name' - value: null - ValidateName: - $ref: '#/components/examples/400-Validate-Name' - value: null - DuplicateName: - $ref: '#/components/examples/400-Duplicate-Name' - value: null - MandatoryConnectionUuid: - $ref: '#/components/examples/400-Mandatory-ConnectionUUid' - value: null - InvalidConnectionUuidFormat: - $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' - value: null - InvalidConnectionStatus: - $ref: '#/components/examples/400-Invalid-Connection-Status' - value: null - ValidateConnectionUuid: - $ref: '#/components/examples/400-Validate-ConnectionUuid' - value: null - InvalidConnectionLocation: - $ref: '#/components/examples/400-Invalid-Connection-Location' - value: null - MandatoryPackageType: - $ref: '#/components/examples/400-Mandatory-PackageType' - value: null - InvalidPackageType: - $ref: '#/components/examples/400-Invalid-PackageType' - value: null - InvalidConnectionPackageType: - $ref: '#/components/examples/400-Invalid-Connection-PackageType' - value: null - MandatoryPackage: - $ref: '#/components/examples/400-Mandatory-Package' - value: null - InvalidPackage: - $ref: '#/components/examples/400-Invalid-Package' - value: null - InvalidConnectionPackage: - $ref: '#/components/examples/400-Invalid-Connection-Package' - value: null - MandatoryPrimaryIP: - $ref: '#/components/examples/400-Mandatory-PrimaryIP' - value: null - InvalidPrimaryIPFormat: - $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' - value: null - ValidatePrimaryIP: - $ref: '#/components/examples/400-Validate-PrimaryIP' - value: null - MandatorySecondaryIP: - $ref: '#/components/examples/400-Mandatory-SecondaryIP' - value: null - InvalidSecondaryIPFormat: - $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' - value: null - ValidateSecondaryIP: - $ref: '#/components/examples/400-Validate-SecondaryIP' - value: null - ValidateSameSubnet: - $ref: '#/components/examples/400-Validate-SameSubnet' - value: null - MandatoryNetworkMask: - $ref: '#/components/examples/400-Mandatory-NetworkMask' - value: null - InvalidNetworkMaskFormat: - $ref: '#/components/examples/400-Invalid-NetworkMask-Format' - value: null - ValidateNetworkMask: - $ref: '#/components/examples/400-Validate-NetworkMask' - value: null - InvalidDefaultGatewayFormat: - $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' - value: null - ValidateDefaultGateway: - $ref: '#/components/examples/400-Validate-DefaultGateway' - value: null - InvalidTimeScale: - $ref: '#/components/examples/400-Invalid-TimeScale' - value: null - InvalidDomain: - $ref: '#/components/examples/400-Invalid-Domain' - value: null - InvalidPriority1: - $ref: '#/components/examples/400-Invalid-Priority1' - value: null - InvalidPriority2: - $ref: '#/components/examples/400-Invalid-Priority2' - value: null - InvalidLogAnnounceInterval: - $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' - value: null - ValidateLogAnnounceIntervalRange: - $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' - value: null - InvalidLogSyncInterval: - $ref: '#/components/examples/400-Invalid-LogSyncInterval' - value: null - ValidateLogSyncIntervalRange: - $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' - value: null - InvalidLogDelayReqInterval: - $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' - value: null - ValidateLogDelayReqIntervalRange: - $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' - value: null - InvalidTransportMode: - $ref: '#/components/examples/400-Invalid-TransportMode' - value: null - InvalidGrantTime: - $ref: '#/components/examples/400-Invalid-GrantTime' - value: null - ValidateGrantTimeRange: - $ref: '#/components/examples/400-Validate-GrantTime-Range' - value: null - InvalidType: - $ref: '#/components/examples/400-Invalid-Type' - value: null - InvalidId: - $ref: '#/components/examples/400-Invalid-Id' - value: null - InvalidPassword: - $ref: '#/components/examples/400-Invalid-Password' - value: null - ValidatePassword: - $ref: '#/components/examples/400-Validate-Password' + example: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -6166,198 +5950,77 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Route Filter ID Not Found "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Patch Time Service + summary: Get All Changes tags: - - Precision Time - x-content-type: application/json-patch+json + - Route Filter Rules x-accepts: application/json - /fabric/v4/timeServices: - post: - description: The API provides capability to create timing service - operationId: createTimeServices - parameters: [] - requestBody: - content: - application/json: - examples: - ntpSingleStandard: - $ref: '#/components/examples/ntpSingleStandard' - value: null - ptpSingleStandard: - $ref: '#/components/examples/ptpSingleStandard' - value: null - ptpSingleEnterpriseWithAdvanceConfiguration: - $ref: '#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration' - value: null - schema: - $ref: '#/components/schemas/precisionTimeServiceRequest' + /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}: + get: + description: This API provides capability to retrieve a specific Route Filter + Rule's Changes + operationId: getRouteFilterRuleChangeByUuid + parameters: + - description: Route Filters Id + explode: false + in: path + name: routeFilterId + required: true + schema: + $ref: '#/components/schemas/RouteFilterId' + style: simple + - description: Route Filter Rules Id + explode: false + in: path + name: routeFilterRuleId + required: true + schema: + $ref: '#/components/schemas/RouteFilterRuleId' + style: simple + - description: Route Filter Rule Change UUID + explode: false + in: path + name: changeId required: true + schema: + $ref: '#/components/schemas/ChangeId_2' + style: simple responses: - "202": + "200": content: application/json: examples: - NtpStandard: - $ref: '#/components/examples/ntpStandardCreateResponse' + RouteFilterChangeResponse: + $ref: '#/components/examples/RouteFilterRuleGetChangeResponseExample' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceCreateResponse' - description: Successful operation + $ref: '#/components/schemas/RouteFilterRulesChangeData' + description: Fabric Route Filter Change object "400": content: application/json: examples: - MandatoryName: - $ref: '#/components/examples/400-Mandatory-Name' - value: null - InvalidName: - $ref: '#/components/examples/400-Invalid-Name' - value: null - ValidateName: - $ref: '#/components/examples/400-Validate-Name' - value: null - DuplicateName: - $ref: '#/components/examples/400-Duplicate-Name' - value: null - MandatoryConnectionUuid: - $ref: '#/components/examples/400-Mandatory-ConnectionUUid' - value: null - InvalidConnectionUuidFormat: - $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' - value: null - InvalidConnectionStatus: - $ref: '#/components/examples/400-Invalid-Connection-Status' - value: null - ValidateConnectionUuid: - $ref: '#/components/examples/400-Validate-ConnectionUuid' - value: null - InvalidConnectionLocation: - $ref: '#/components/examples/400-Invalid-Connection-Location' - value: null - MandatoryPackageType: - $ref: '#/components/examples/400-Mandatory-PackageType' - value: null - InvalidPackageType: - $ref: '#/components/examples/400-Invalid-PackageType' - value: null - InvalidConnectionPackageType: - $ref: '#/components/examples/400-Invalid-Connection-PackageType' - value: null - MandatoryPackage: - $ref: '#/components/examples/400-Mandatory-Package' - value: null - InvalidPackage: - $ref: '#/components/examples/400-Invalid-Package' - value: null - InvalidConnectionPackage: - $ref: '#/components/examples/400-Invalid-Connection-Package' - value: null - MandatoryPrimaryIP: - $ref: '#/components/examples/400-Mandatory-PrimaryIP' - value: null - InvalidPrimaryIPFormat: - $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' - value: null - ValidatePrimaryIP: - $ref: '#/components/examples/400-Validate-PrimaryIP' - value: null - MandatorySecondaryIP: - $ref: '#/components/examples/400-Mandatory-SecondaryIP' - value: null - InvalidSecondaryIPFormat: - $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' - value: null - ValidateSecondaryIP: - $ref: '#/components/examples/400-Validate-SecondaryIP' - value: null - ValidateSameSubnet: - $ref: '#/components/examples/400-Validate-SameSubnet' - value: null - MandatoryNetworkMask: - $ref: '#/components/examples/400-Mandatory-NetworkMask' - value: null - InvalidNetworkMaskFormat: - $ref: '#/components/examples/400-Invalid-NetworkMask-Format' - value: null - ValidateNetworkMask: - $ref: '#/components/examples/400-Validate-NetworkMask' - value: null - InvalidDefaultGatewayFormat: - $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' - value: null - ValidateDefaultGateway: - $ref: '#/components/examples/400-Validate-DefaultGateway' - value: null - InvalidTimeScale: - $ref: '#/components/examples/400-Invalid-TimeScale' - value: null - InvalidDomain: - $ref: '#/components/examples/400-Invalid-Domain' - value: null - InvalidPriority1: - $ref: '#/components/examples/400-Invalid-Priority1' - value: null - InvalidPriority2: - $ref: '#/components/examples/400-Invalid-Priority2' - value: null - InvalidLogAnnounceInterval: - $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' - value: null - ValidateLogAnnounceIntervalRange: - $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' - value: null - InvalidLogSyncInterval: - $ref: '#/components/examples/400-Invalid-LogSyncInterval' - value: null - ValidateLogSyncIntervalRange: - $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' - value: null - InvalidLogDelayReqInterval: - $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' - value: null - ValidateLogDelayReqIntervalRange: - $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' - value: null - InvalidTransportMode: - $ref: '#/components/examples/400-Invalid-TransportMode' - value: null - InvalidGrantTime: - $ref: '#/components/examples/400-Invalid-GrantTime' - value: null - ValidateGrantTimeRange: - $ref: '#/components/examples/400-Validate-GrantTime-Range' - value: null - InvalidType: - $ref: '#/components/examples/400-Invalid-Type' - value: null - InvalidId: - $ref: '#/components/examples/400-Invalid-Id' - value: null - InvalidPassword: - $ref: '#/components/examples/400-Invalid-Password' - value: null - ValidatePassword: - $ref: '#/components/examples/400-Validate-Password' + example: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -6382,55 +6045,104 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Route Filter ID Not Found "500": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Time Service + summary: Get Change By ID tags: - - Precision Time - x-content-type: application/json + - Route Filter Rules x-accepts: application/json - /fabric/v4/timeServices/{serviceId}/connections: - get: - description: The API provides capability to get prevision timing service's details - operationId: getTimeServicesConnectionsByServiceId + /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk: + post: + description: This API provides capability to create bulk route filter rules + operationId: createRouteFilterRulesInBulk parameters: - - description: Service UUID + - description: Route Filters Id explode: false in: path - name: serviceId + name: routeFilterId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouteFilterId' style: simple + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RouteFilterRulesPostRequest' + required: true + responses: + "202": + content: + application/json: + examples: + getAllRouteFilters: + $ref: '#/components/examples/RouteFilterRulesGetAll' + value: null + schema: + $ref: '#/components/schemas/GetRouteFilterRulesResponse' + description: Successful operation + summary: Bulk RFRules + tags: + - Route Filter Rules + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routers: + post: + description: This API provides capability to create user's Cloud Routers + operationId: createCloudRouter + parameters: [] + requestBody: + content: + application/json: + examples: + CreateLabPackage: + $ref: '#/components/examples/CreateLabPackage' + value: null + CreateProPackage: + $ref: '#/components/examples/CreateStandardPackage' + value: null + schema: + $ref: '#/components/schemas/CloudRouterPostRequest' + required: true responses: "200": + content: + application/json: + examples: + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterPostResponseExample' + value: null + schema: + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object + "400": content: application/json: examples: example: - $ref: '#/components/examples/serviceConnectionsResponse' + $ref: '#/components/examples/400_invalid_package' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceConnectionsResponse' - description: Return Time Service Connection + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -6471,36 +6183,67 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get all Connections + summary: Create Routers tags: - - Precision Time + - Cloud Routers + x-content-type: application/json x-accepts: application/json - /fabric/v4/timeServicePackages: - get: - description: The API provides capability to get timing service's packages - operationId: getTimeServicesPackages - parameters: [] + /fabric/v4/routers/{routerId}: + delete: + description: This API provides capability to delete user's Cloud Routers + operationId: deleteCloudRouterByUuid + parameters: + - description: Cloud Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId' + style: simple responses: - "200": + "204": + description: Deleted Cloud Router Successfully + "400": content: application/json: examples: example: - $ref: '#/components/examples/servicePackagesResponse' + $ref: '#/components/examples/400_invalid_state' value: null schema: - $ref: '#/components/schemas/precisionTimeServicePackagesResponse' - description: Successful operation - "415": + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/401' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found "500": content: application/json: @@ -6511,63 +6254,2201 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Packages + summary: Delete Routers tags: - - Precision Time + - Cloud Routers x-accepts: application/json - /fabric/v4/timeServicePackages/{packageCode}: get: - description: The API provides capability to get timing service's package by - code - operationId: getTimeServicesPackageByCode + description: This API provides capability to retrieve user's Cloud Routers + operationId: getCloudRouterByUuid parameters: - - description: Package Code + - description: Cloud Router UUID explode: false in: path - name: packageCode + name: routerId required: true schema: - enum: - - NTP_STANDARD - - NTP_ENTERPRISE - - PTP_STANDARD - - PTP_ENTERPRISE - type: string + $ref: '#/components/schemas/RouterId' style: simple responses: "200": content: application/json: examples: - example: - $ref: '#/components/examples/servicePackageResponse' + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterResponseExample' value: null schema: - $ref: '#/components/schemas/PackageResponse' - description: Successful operation - "415": + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object + "401": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/401' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type - "500": + description: Unauthorized + "403": content: application/json: examples: example: - $ref: '#/components/examples/500' + $ref: '#/components/examples/403' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Get Package by Code - tags: + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Routers + tags: + - Cloud Routers + x-accepts: application/json + patch: + description: This API provides capability to update user's Cloud Routers + operationId: updateCloudRouterByUuid + parameters: + - description: Cloud Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId' + style: simple + requestBody: + content: + application/json-patch+json: + examples: + UpdatePackage: + $ref: '#/components/examples/UpdatePackage' + value: null + UpdateName: + $ref: '#/components/examples/UpdateName' + value: null + UpdateNotificationEmail: + $ref: '#/components/examples/UpdateNotifications' + value: null + schema: + $ref: '#/components/schemas/CloudRouterUpdateRequest' + required: true + responses: + "200": + content: + application/json: + examples: + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterPatchResponseExample' + value: null + schema: + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_operation' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Update Routers + tags: + - Cloud Routers + x-content-type: application/json-patch+json + x-accepts: application/json + /fabric/v4/routers/{routerId}/actions: + get: + description: This API provides capability to fetch action status + operationId: getCloudRouterActions + parameters: + - description: Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId_1' + style: simple + - description: Action state + explode: true + in: query + name: state + required: false + schema: + $ref: '#/components/schemas/ActionState' + style: form + responses: + "200": + content: + application/json: + examples: + routerActionExample: + $ref: '#/components/examples/CloudRouterActionResponse' + value: null + schema: + $ref: '#/components/schemas/CloudRouterActionResponse' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_operation' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get actions + tags: + - Cloud Routers + x-accepts: application/json + post: + description: This API provides capability to refresh route table and bgp session + summary information + operationId: createCloudRouterAction + parameters: + - description: Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId_1' + style: simple + requestBody: + content: + application/json: + examples: + RouteEntriesStatusUpdate: + $ref: '#/components/examples/RouteEntriesStatusUpdate' + value: null + schema: + $ref: '#/components/schemas/CloudRouterActionRequest' + required: true + responses: + "202": + content: + application/json: + examples: + cloudRouterActionExample: + $ref: '#/components/examples/CloudRouterActionResponse' + value: null + schema: + $ref: '#/components/schemas/CloudRouterActionResponse' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_operation' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Route table actions + tags: + - Cloud Routers + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routers/{routerId}/routes/search: + post: + description: "The API provides capability to get list of user's Fabric Cloud\ + \ Router route table entries using search criteria, including optional filtering,\ + \ pagination and sorting" + operationId: searchCloudRouterRoutes + parameters: + - description: Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId_1' + style: simple + requestBody: + content: + application/json: + examples: + SearchFilterByNextHop: + $ref: '#/components/examples/SearchFilterByNextHop' + value: null + SearchFilterByPrefix: + $ref: '#/components/examples/SearchFilterByPrefix' + value: null + SearchFilterByType: + $ref: '#/components/examples/SearchFilterByType' + value: null + SearchFilterByStatus: + $ref: '#/components/examples/SearchFilterByStatus' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchFilterOrAnd' + value: null + schema: + $ref: '#/components/schemas/RouteTableEntrySearchRequest' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/RouteTableEntrySearchResponse' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_sorting' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Search Route Table + tags: + - Cloud Routers + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routers/{routerId}/validate: + post: + description: This API provides capability to validate all subnets associated + with any connection in the given FCR + operationId: validateRoutingProtocol + parameters: + - description: Cloud Router UUID + explode: false + in: path + name: routerId + required: true + schema: + $ref: '#/components/schemas/RouterId' + style: simple + requestBody: + content: + application/json: + examples: + ValidateDirectIpv4: + $ref: '#/components/examples/Request-direct-ipv4' + value: null + ValidateDirectIpv6: + $ref: '#/components/examples/Request-direct-ipv6' + value: null + schema: + $ref: '#/components/schemas/ValidateRequest' + required: true + responses: + "200": + content: + application/json: + examples: + ValidateSubnet: + $ref: '#/components/examples/Response-200' + value: null + schema: + $ref: '#/components/schemas/ValidateSubnetResponse' + description: Successful operation + "400": + content: + application/json: + examples: + Bad Request: + $ref: '#/components/examples/error-400' + value: null + Subnet Overlapping: + $ref: '#/components/examples/error-400-overlappingSubnet' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + summary: Validate Subnet + tags: + - Routing Protocols + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routers/search: + post: + description: "The API provides capability to get list of user's Cloud Routers\ + \ using search criteria, including optional filtering, pagination and sorting" + operationId: searchCloudRouters + parameters: [] + requestBody: + content: + application/json: + examples: + SearchFilterByStatus: + $ref: '#/components/examples/SearchFilterByStatus' + value: null + SearchFilterByNameAndMetroName: + $ref: '#/components/examples/SearchFilterByNameAndMetroName' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchFilterOrAnd' + value: null + schema: + $ref: '#/components/schemas/CloudRouterSearchRequest' + required: true + responses: + "200": + content: + application/json: + examples: + Example: + $ref: '#/components/examples/search-example' + value: null + schema: + $ref: '#/components/schemas/SearchResponse' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_sorting' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Search Routers + tags: + - Cloud Routers + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routerPackages: + get: + description: This API provides capability to retrieve user's Cloud Routers Packages + operationId: getCloudRouterPackages + parameters: + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false + schema: + type: integer + style: form + - description: number of records to fetch + example: 10 + explode: true + in: query + name: limit + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/json: + examples: + Example: + $ref: '#/components/examples/ListFCRPackagesResponse' + value: null + schema: + $ref: '#/components/schemas/PackageResponse' + description: Fabric Cloud Router Packages + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: List Packages + tags: + - Cloud Routers + x-accepts: application/json + /fabric/v4/routerPackages/{routerPackageCode}: + get: + description: This API provides capability to retrieve user's Cloud Routers Package + Details + operationId: getCloudRouterPackageByCode + parameters: + - description: Equinix-assigned Cloud Router package identifier + explode: false + in: path + name: routerPackageCode + required: true + schema: + $ref: '#/components/schemas/RouterPackageCode' + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/CloudRouterPackage' + description: Fabric Cloud Router Package details + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_package' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Package Details + tags: + - Cloud Routers + x-accepts: application/json + /fabric/v4/health: + get: + description: GET All service health statys with an option query parameter to + return all Equinix Fabric customer in which the customer has a presence. + operationId: getStatus + parameters: [] + responses: + "200": + content: + application/json: + examples: + metroExample: + $ref: '#/components/examples/healthResponse' + value: null + schema: + $ref: '#/components/schemas/HealthResponse' + description: Successful operation + summary: Get service status + tags: + - Health + x-accepts: application/json + /fabric/v4/connections/validate: + post: + description: This API provides capability to validate by auth key + operationId: validateConnections + parameters: [] + requestBody: + content: + application/json: + examples: + Alibaba-ValidateAuthKey: + $ref: '#/components/examples/Request_Alibaba' + value: null + Aws-ValidateAuthKey: + $ref: '#/components/examples/Request_AWS' + value: null + Azure-ValidateAuthKey: + $ref: '#/components/examples/Request_Azure' + value: null + Google-ValidateAuthKey: + $ref: '#/components/examples/Request_Google' + value: null + IBM-1.0-ValidateAuthKey: + $ref: '#/components/examples/Request_IBM_1' + value: null + IBM-2.0-ValidateAuthKey: + $ref: '#/components/examples/Request_IBM_2' + value: null + Oracle-ValidateAuthKey: + $ref: '#/components/examples/Request_Oracle' + value: null + Dot1q-ValidateVlanAvailability: + $ref: '#/components/examples/Dot1q_Vlan' + value: null + Qinq-ValidateVlanAvailability: + $ref: '#/components/examples/Qinq_Vlan' + value: null + schema: + $ref: '#/components/schemas/ValidateRequest' + required: true + responses: + "200": + content: + application/json: + examples: + Alibaba-ValidateAuthKey: + $ref: '#/components/examples/Response-Alibaba' + value: null + Aws-ValidateAuthKey: + $ref: '#/components/examples/Response-Aws' + value: null + Azure-ValidateAuthKey-no-existing-connections: + $ref: '#/components/examples/Response-Azure-no-existing-connections' + value: null + Azure-ValidateAuthKey-1-existing-Dot1q-connection: + $ref: '#/components/examples/Response-Azure-1-existing-Dot1q-connection' + value: null + Azure-ValidateAuthKey-1-existing-Qinq-connection: + $ref: '#/components/examples/Response-Azure-1-existing-Qinq-connection' + value: null + Azure-ValidateAuthKey-2-existing-Dot1q-connection: + $ref: '#/components/examples/Response-Azure-2-existing-Dot1q-connections' + value: null + Google-ValidateAuthKey: + $ref: '#/components/examples/Response-Google' + value: null + IBM-1.0-ValidateAuthKey: + $ref: '#/components/examples/Response-IBM-1' + value: null + IBM-2.0-ValidateAuthKey: + $ref: '#/components/examples/Response-IBM-2' + value: null + Oracle-ValidateAuthKey: + $ref: '#/components/examples/Response-Oracle' + value: null + Dot1q-ValidateAuthKey: + $ref: '#/components/examples/Response-Dot1q-Vlan' + value: null + Qinq-ValidateAuthKey: + $ref: '#/components/examples/Response-Qinq-Vlan' + value: null + schema: + $ref: '#/components/schemas/ConnectionResponse' + description: Successful operation + "400": + content: + application/json: + examples: + Bad Request: + $ref: '#/components/examples/error-400' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + summary: Validate Connection + tags: + - Connections + x-content-type: application/json + x-accepts: application/json + /fabric/v4/networks: + post: + description: This API provides capability to create user's Fabric Network + operationId: createNetwork + parameters: [] + requestBody: + content: + application/json: + examples: + CreateGlobalNetwork: + $ref: '#/components/examples/CreateGlobalNetwork' + value: null + CreateRegionalNetwork: + $ref: '#/components/examples/CreateRegionalNetwork' + value: null + schema: + $ref: '#/components/schemas/NetworkPostRequest' + required: true + responses: + "202": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkPostResponseExample' + value: null + schema: + $ref: '#/components/schemas/Network' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Create Network + tags: + - Networks + x-content-type: application/json + x-accepts: application/json + /fabric/v4/networks/{networkId}: + delete: + description: This API provides capability to delete user's Fabric Network + operationId: deleteNetworkByUuid + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + responses: + "202": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkDeleteResponseExample' + value: null + schema: + $ref: '#/components/schemas/Network' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_state' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + summary: Delete Network By ID + tags: + - Networks + x-accepts: application/json + get: + description: This API provides capability to retrieve user's Fabric Network + operationId: getNetworkByUuid + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkGetResponseExample' + value: null + schema: + $ref: '#/components/schemas/Network' + description: Fabric Network Access point object + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + summary: Get Network By ID + tags: + - Networks + x-accepts: application/json + patch: + description: This API provides capability to update user's Fabric Network + operationId: updateNetworkByUuid + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + requestBody: + content: + application/json-patch+json: + examples: + UpdateName: + $ref: '#/components/examples/UpdateNetworkName' + value: null + UpdateNotificationEmail: + $ref: '#/components/examples/UpdateNetworkNotifications' + value: null + schema: + $ref: '#/components/schemas/NetworkUpdateRequest' + required: true + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkPatchResponseExample' + value: null + schema: + $ref: '#/components/schemas/Network' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_state' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + summary: Update Network By ID + tags: + - Networks + x-content-type: application/json-patch+json + x-accepts: application/json + /fabric/v4/networks/search: + post: + description: "The API provides capability to get list of user's Fabric Network\ + \ using search criteria, including optional filtering, pagination and sorting" + operationId: searchNetworks + parameters: [] + requestBody: + content: + application/json: + examples: + SearchFilterByStatus: + $ref: '#/components/examples/SearchFilterByStatus' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchFilterOrAnd' + value: null + schema: + $ref: '#/components/schemas/NetworkSearchRequest' + required: true + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkSearchResponseExample' + value: null + schema: + $ref: '#/components/schemas/NetworkSearchResponse' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_sorting' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + summary: Search Network + tags: + - Networks + x-content-type: application/json + x-accepts: application/json + /fabric/v4/networks/{networkId}/connections: + get: + description: The API provides capability to get list of user's Fabric Network + connections + operationId: getConnectionsByNetworkUuid + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/GetNetworkConnectionExample' + value: null + schema: + $ref: '#/components/schemas/NetworkConnections' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_uuid' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + summary: Get Connections + tags: + - Networks + x-accepts: application/json + /fabric/v4/networks/{networkId}/changes: + get: + description: The API provides capability to get list of user's Fabric Network + changes + operationId: getNetworkChanges + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkChangeResponseExample' + value: null + schema: + $ref: '#/components/schemas/NetworkChangeResponse' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_uuid' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + summary: Get Network Changes + tags: + - Networks + x-accepts: application/json + /fabric/v4/networks/{networkId}/changes/{changeId}: + get: + description: This API provides capability to retrieve user's Fabric Network + Change + operationId: getNetworkChangeByUuid + parameters: + - description: Network UUID + explode: false + in: path + name: networkId + required: true + schema: + $ref: '#/components/schemas/NetworkId' + style: simple + - description: Network Change UUID + explode: false + in: path + name: changeId + required: true + schema: + $ref: '#/components/schemas/ChangeId_3' + style: simple + responses: + "200": + content: + application/json: + examples: + networkResponse: + $ref: '#/components/examples/NetworkGetChangeResponseExample' + value: null + schema: + $ref: '#/components/schemas/NetworkChange' + description: Fabric Network Access point object + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_invalid_uuid' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Not Found + summary: Get Change By ID + tags: + - Networks + x-accepts: application/json + /fabric/v4/timeServices/{serviceId}: + delete: + description: Delete EPT service by it's uuid + operationId: deleteTimeServiceById + parameters: + - description: Service UUID + explode: false + in: path + name: serviceId + required: true + schema: + $ref: '#/components/schemas/ServiceId' + style: simple + responses: + "202": + content: + application/json: + examples: + NtpStandard: + $ref: '#/components/examples/ntpStandardCreateResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + description: Successful operation + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Delete time service + tags: + - Precision Time + x-accepts: application/json + get: + description: The API provides capability to get precision timing service's details + operationId: getTimeServicesById + parameters: + - description: Service UUID + explode: false + in: path + name: serviceId + required: true + schema: + $ref: '#/components/schemas/ServiceId' + style: simple + responses: + "202": + content: + application/json: + examples: + NtpStandard: + $ref: '#/components/examples/ntpStandardCreateResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + description: Successful operation + "400": + content: + application/json: + examples: + MandatoryName: + $ref: '#/components/examples/400-Mandatory-Name' + value: null + InvalidName: + $ref: '#/components/examples/400-Invalid-Name' + value: null + ValidateName: + $ref: '#/components/examples/400-Validate-Name' + value: null + DuplicateName: + $ref: '#/components/examples/400-Duplicate-Name' + value: null + MandatoryConnectionUuid: + $ref: '#/components/examples/400-Mandatory-ConnectionUUid' + value: null + InvalidConnectionUuidFormat: + $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' + value: null + InvalidConnectionStatus: + $ref: '#/components/examples/400-Invalid-Connection-Status' + value: null + ValidateConnectionUuid: + $ref: '#/components/examples/400-Validate-ConnectionUuid' + value: null + InvalidConnectionLocation: + $ref: '#/components/examples/400-Invalid-Connection-Location' + value: null + MandatoryPackageType: + $ref: '#/components/examples/400-Mandatory-PackageType' + value: null + InvalidPackageType: + $ref: '#/components/examples/400-Invalid-PackageType' + value: null + InvalidConnectionPackageType: + $ref: '#/components/examples/400-Invalid-Connection-PackageType' + value: null + MandatoryPackage: + $ref: '#/components/examples/400-Mandatory-Package' + value: null + InvalidPackage: + $ref: '#/components/examples/400-Invalid-Package' + value: null + InvalidConnectionPackage: + $ref: '#/components/examples/400-Invalid-Connection-Package' + value: null + MandatoryPrimaryIP: + $ref: '#/components/examples/400-Mandatory-PrimaryIP' + value: null + InvalidPrimaryIPFormat: + $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' + value: null + ValidatePrimaryIP: + $ref: '#/components/examples/400-Validate-PrimaryIP' + value: null + MandatorySecondaryIP: + $ref: '#/components/examples/400-Mandatory-SecondaryIP' + value: null + InvalidSecondaryIPFormat: + $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' + value: null + ValidateSecondaryIP: + $ref: '#/components/examples/400-Validate-SecondaryIP' + value: null + ValidateSameSubnet: + $ref: '#/components/examples/400-Validate-SameSubnet' + value: null + MandatoryNetworkMask: + $ref: '#/components/examples/400-Mandatory-NetworkMask' + value: null + InvalidNetworkMaskFormat: + $ref: '#/components/examples/400-Invalid-NetworkMask-Format' + value: null + ValidateNetworkMask: + $ref: '#/components/examples/400-Validate-NetworkMask' + value: null + InvalidDefaultGatewayFormat: + $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' + value: null + ValidateDefaultGateway: + $ref: '#/components/examples/400-Validate-DefaultGateway' + value: null + InvalidTimeScale: + $ref: '#/components/examples/400-Invalid-TimeScale' + value: null + InvalidDomain: + $ref: '#/components/examples/400-Invalid-Domain' + value: null + InvalidPriority1: + $ref: '#/components/examples/400-Invalid-Priority1' + value: null + InvalidPriority2: + $ref: '#/components/examples/400-Invalid-Priority2' + value: null + InvalidLogAnnounceInterval: + $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' + value: null + ValidateLogAnnounceIntervalRange: + $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' + value: null + InvalidLogSyncInterval: + $ref: '#/components/examples/400-Invalid-LogSyncInterval' + value: null + ValidateLogSyncIntervalRange: + $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' + value: null + InvalidLogDelayReqInterval: + $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' + value: null + ValidateLogDelayReqIntervalRange: + $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' + value: null + InvalidTransportMode: + $ref: '#/components/examples/400-Invalid-TransportMode' + value: null + InvalidGrantTime: + $ref: '#/components/examples/400-Invalid-GrantTime' + value: null + ValidateGrantTimeRange: + $ref: '#/components/examples/400-Validate-GrantTime-Range' + value: null + InvalidType: + $ref: '#/components/examples/400-Invalid-Type' + value: null + InvalidId: + $ref: '#/components/examples/400-Invalid-Id' + value: null + InvalidPassword: + $ref: '#/components/examples/400-Invalid-Password' + value: null + ValidatePassword: + $ref: '#/components/examples/400-Validate-Password' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Time Service + tags: + - Precision Time + x-accepts: application/json + patch: + description: The API provides capability to update timing service + operationId: updateTimeServicesById + parameters: + - description: Service UUID + explode: false + in: path + name: serviceId + required: true + schema: + $ref: '#/components/schemas/ServiceId' + style: simple + requestBody: + content: + application/json-patch+json: + examples: + editName: + $ref: '#/components/examples/edit' + value: null + schema: + items: + $ref: '#/components/schemas/precisionTimeChangeOperation' + maxItems: 1 + minItems: 1 + type: array + required: true + responses: + "202": + content: + application/json: + examples: + NtpStandard: + $ref: '#/components/examples/ntpStandardCreateResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + description: Successful operation + "400": + content: + application/json: + examples: + MandatoryName: + $ref: '#/components/examples/400-Mandatory-Name' + value: null + InvalidName: + $ref: '#/components/examples/400-Invalid-Name' + value: null + ValidateName: + $ref: '#/components/examples/400-Validate-Name' + value: null + DuplicateName: + $ref: '#/components/examples/400-Duplicate-Name' + value: null + MandatoryConnectionUuid: + $ref: '#/components/examples/400-Mandatory-ConnectionUUid' + value: null + InvalidConnectionUuidFormat: + $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' + value: null + InvalidConnectionStatus: + $ref: '#/components/examples/400-Invalid-Connection-Status' + value: null + ValidateConnectionUuid: + $ref: '#/components/examples/400-Validate-ConnectionUuid' + value: null + InvalidConnectionLocation: + $ref: '#/components/examples/400-Invalid-Connection-Location' + value: null + MandatoryPackageType: + $ref: '#/components/examples/400-Mandatory-PackageType' + value: null + InvalidPackageType: + $ref: '#/components/examples/400-Invalid-PackageType' + value: null + InvalidConnectionPackageType: + $ref: '#/components/examples/400-Invalid-Connection-PackageType' + value: null + MandatoryPackage: + $ref: '#/components/examples/400-Mandatory-Package' + value: null + InvalidPackage: + $ref: '#/components/examples/400-Invalid-Package' + value: null + InvalidConnectionPackage: + $ref: '#/components/examples/400-Invalid-Connection-Package' + value: null + MandatoryPrimaryIP: + $ref: '#/components/examples/400-Mandatory-PrimaryIP' + value: null + InvalidPrimaryIPFormat: + $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' + value: null + ValidatePrimaryIP: + $ref: '#/components/examples/400-Validate-PrimaryIP' + value: null + MandatorySecondaryIP: + $ref: '#/components/examples/400-Mandatory-SecondaryIP' + value: null + InvalidSecondaryIPFormat: + $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' + value: null + ValidateSecondaryIP: + $ref: '#/components/examples/400-Validate-SecondaryIP' + value: null + ValidateSameSubnet: + $ref: '#/components/examples/400-Validate-SameSubnet' + value: null + MandatoryNetworkMask: + $ref: '#/components/examples/400-Mandatory-NetworkMask' + value: null + InvalidNetworkMaskFormat: + $ref: '#/components/examples/400-Invalid-NetworkMask-Format' + value: null + ValidateNetworkMask: + $ref: '#/components/examples/400-Validate-NetworkMask' + value: null + InvalidDefaultGatewayFormat: + $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' + value: null + ValidateDefaultGateway: + $ref: '#/components/examples/400-Validate-DefaultGateway' + value: null + InvalidTimeScale: + $ref: '#/components/examples/400-Invalid-TimeScale' + value: null + InvalidDomain: + $ref: '#/components/examples/400-Invalid-Domain' + value: null + InvalidPriority1: + $ref: '#/components/examples/400-Invalid-Priority1' + value: null + InvalidPriority2: + $ref: '#/components/examples/400-Invalid-Priority2' + value: null + InvalidLogAnnounceInterval: + $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' + value: null + ValidateLogAnnounceIntervalRange: + $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' + value: null + InvalidLogSyncInterval: + $ref: '#/components/examples/400-Invalid-LogSyncInterval' + value: null + ValidateLogSyncIntervalRange: + $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' + value: null + InvalidLogDelayReqInterval: + $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' + value: null + ValidateLogDelayReqIntervalRange: + $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' + value: null + InvalidTransportMode: + $ref: '#/components/examples/400-Invalid-TransportMode' + value: null + InvalidGrantTime: + $ref: '#/components/examples/400-Invalid-GrantTime' + value: null + ValidateGrantTimeRange: + $ref: '#/components/examples/400-Validate-GrantTime-Range' + value: null + InvalidType: + $ref: '#/components/examples/400-Invalid-Type' + value: null + InvalidId: + $ref: '#/components/examples/400-Invalid-Id' + value: null + InvalidPassword: + $ref: '#/components/examples/400-Invalid-Password' + value: null + ValidatePassword: + $ref: '#/components/examples/400-Validate-Password' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Patch time service + tags: + - Precision Time + x-content-type: application/json-patch+json + x-accepts: application/json + /fabric/v4/timeServices: + post: + description: The API provides capability to create timing service + operationId: createTimeServices + parameters: [] + requestBody: + content: + application/json: + examples: + ntpSingleStandard: + $ref: '#/components/examples/ntpSingleStandard' + value: null + ptpSingleStandard: + $ref: '#/components/examples/ptpSingleStandard' + value: null + ptpSingleEnterpriseWithAdvanceConfiguration: + $ref: '#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceRequest' + required: true + responses: + "202": + content: + application/json: + examples: + NtpStandard: + $ref: '#/components/examples/ntpStandardCreateResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceCreateResponse' + description: Successful operation + "400": + content: + application/json: + examples: + MandatoryName: + $ref: '#/components/examples/400-Mandatory-Name' + value: null + InvalidName: + $ref: '#/components/examples/400-Invalid-Name' + value: null + ValidateName: + $ref: '#/components/examples/400-Validate-Name' + value: null + DuplicateName: + $ref: '#/components/examples/400-Duplicate-Name' + value: null + MandatoryConnectionUuid: + $ref: '#/components/examples/400-Mandatory-ConnectionUUid' + value: null + InvalidConnectionUuidFormat: + $ref: '#/components/examples/400-Invalid-ConnectionUuid-Format' + value: null + InvalidConnectionStatus: + $ref: '#/components/examples/400-Invalid-Connection-Status' + value: null + ValidateConnectionUuid: + $ref: '#/components/examples/400-Validate-ConnectionUuid' + value: null + InvalidConnectionLocation: + $ref: '#/components/examples/400-Invalid-Connection-Location' + value: null + MandatoryPackageType: + $ref: '#/components/examples/400-Mandatory-PackageType' + value: null + InvalidPackageType: + $ref: '#/components/examples/400-Invalid-PackageType' + value: null + InvalidConnectionPackageType: + $ref: '#/components/examples/400-Invalid-Connection-PackageType' + value: null + MandatoryPackage: + $ref: '#/components/examples/400-Mandatory-Package' + value: null + InvalidPackage: + $ref: '#/components/examples/400-Invalid-Package' + value: null + InvalidConnectionPackage: + $ref: '#/components/examples/400-Invalid-Connection-Package' + value: null + MandatoryPrimaryIP: + $ref: '#/components/examples/400-Mandatory-PrimaryIP' + value: null + InvalidPrimaryIPFormat: + $ref: '#/components/examples/400-Invalid-PrimaryIP-Format' + value: null + ValidatePrimaryIP: + $ref: '#/components/examples/400-Validate-PrimaryIP' + value: null + MandatorySecondaryIP: + $ref: '#/components/examples/400-Mandatory-SecondaryIP' + value: null + InvalidSecondaryIPFormat: + $ref: '#/components/examples/400-Invalid-SecondaryIP-Format' + value: null + ValidateSecondaryIP: + $ref: '#/components/examples/400-Validate-SecondaryIP' + value: null + ValidateSameSubnet: + $ref: '#/components/examples/400-Validate-SameSubnet' + value: null + MandatoryNetworkMask: + $ref: '#/components/examples/400-Mandatory-NetworkMask' + value: null + InvalidNetworkMaskFormat: + $ref: '#/components/examples/400-Invalid-NetworkMask-Format' + value: null + ValidateNetworkMask: + $ref: '#/components/examples/400-Validate-NetworkMask' + value: null + InvalidDefaultGatewayFormat: + $ref: '#/components/examples/400-Invalid-DefaultGateway-Format' + value: null + ValidateDefaultGateway: + $ref: '#/components/examples/400-Validate-DefaultGateway' + value: null + InvalidTimeScale: + $ref: '#/components/examples/400-Invalid-TimeScale' + value: null + InvalidDomain: + $ref: '#/components/examples/400-Invalid-Domain' + value: null + InvalidPriority1: + $ref: '#/components/examples/400-Invalid-Priority1' + value: null + InvalidPriority2: + $ref: '#/components/examples/400-Invalid-Priority2' + value: null + InvalidLogAnnounceInterval: + $ref: '#/components/examples/400-Invalid-LogAnnounceInterval' + value: null + ValidateLogAnnounceIntervalRange: + $ref: '#/components/examples/400-Validate-LogAnnounceInterval-Range' + value: null + InvalidLogSyncInterval: + $ref: '#/components/examples/400-Invalid-LogSyncInterval' + value: null + ValidateLogSyncIntervalRange: + $ref: '#/components/examples/400-Validate-LogSyncInterval-Range' + value: null + InvalidLogDelayReqInterval: + $ref: '#/components/examples/400-Invalid-LogDelayReqInterval' + value: null + ValidateLogDelayReqIntervalRange: + $ref: '#/components/examples/400-Validate-LogDelayReqInterval-Range' + value: null + InvalidTransportMode: + $ref: '#/components/examples/400-Invalid-TransportMode' + value: null + InvalidGrantTime: + $ref: '#/components/examples/400-Invalid-GrantTime' + value: null + ValidateGrantTimeRange: + $ref: '#/components/examples/400-Validate-GrantTime-Range' + value: null + InvalidType: + $ref: '#/components/examples/400-Invalid-Type' + value: null + InvalidId: + $ref: '#/components/examples/400-Invalid-Id' + value: null + InvalidPassword: + $ref: '#/components/examples/400-Invalid-Password' + value: null + ValidatePassword: + $ref: '#/components/examples/400-Validate-Password' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Unsupported Media Type + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Create Time Service + tags: - Precision Time + x-content-type: application/json x-accepts: application/json components: examples: @@ -7067,38 +8948,6 @@ components: - type: ALL emails: - test@test.com - COLO2AWSSPwithDot1q-Secondary: - value: - type: EVPL_VC - name: Secondary-Aws - bandwidth: 1000 - redundancy: - group: e04db764-f865-470b-8394-d2efdd651577 - priority: SECONDARY - aSide: - accessPoint: - type: COLO - port: - uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d - linkProtocol: - type: DOT1Q - vlanTag: 1001 - order: - purchaseOrderNumber: po1234 - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c - location: - metroCode: DC - sellerRegion: us-east-1 - authenticationKey: xxx-xxx-xxx - notifications: - - type: ALL - emails: - - test@test.com COLO2AzureSPwithDot1q-Primary: value: type: EVPL_VC @@ -7962,6 +9811,30 @@ components: - type: ALL emails: - test@test.com + Metal2Sp-Aws: + value: + type: EVPL_VC + name: My-Metal-sp-connection + bandwidth: 1000 + aSide: + accessPoint: + type: METAL_NETWORK + virtualNetwork: + uuid: a867f685-41b0-1b07-6de0-320a5c00abd + interface: + projectId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + zSide: + accessPoint: + type: SP + profile: + type: L2_PROFILE + uuid: 9127bb72-5f4f-4517-be74-3af7ce612687 + authenticationKey: xxxxxxxxx + sellerRegion: us-west-1 + order: + purchaseOrderNumber: 1-129105284100 + project: + projectId: 567 ConnectionExample: value: href: https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62 @@ -8535,6 +10408,48 @@ components: order: purchaseOrderNumber: "1122334" billingTier: Up to 50 MB + Metal2Sp-Aws-Response: + value: + href: https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce + type: EVPL_VC + uuid: f37e40c5-2802-4df7-9732-839a8a5868ce + name: My-Metal-sp-connection + bandwidth: 1000 + aSide: + accessPoint: + type: METAL_NETWORK + virtualNetwork: + href: https://api.equinix.com/metal/v1/virtual-networks/a867f685-41b0-1b07-6de0-320a5c00abd + uuid: a867f685-41b0-1b07-6de0-320a5c00abd + interface: + projectId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + zSide: + accessPoint: + type: SP + profile: + type: L2_PROFILE + uuid: 9127bb72-5f4f-4517-be74-3af7ce612687 + authenticationKey: xxxxxxxxx + sellerRegion: us-west-1 + order: + purchaseOrderNumber: 1-129105284100 + project: + projectId: 567 + operation: + equinixStatus: PROVISIONING + providerStatus: NOT_AVAILABLE + account: + href: https://api.equinix.com/accountService/v1/accounts/123213 + accountNumber: 123213 + notifications: + - type: ALL + emails: + - test@equinix.com + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z createBulkGeneric: value: data: @@ -11581,7 +13496,7 @@ components: values: - LAB - BASIC - - PRO + - STANDARD - PREMIUM IpBlockProduct: value: @@ -14759,6 +16674,560 @@ components: sort: - property: /device/name direction: DESC + ConnectionRouteFiltersGetAll: + value: + pagination: + offset: 0 + limit: 20 + total: 4 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: DETACHING + direction: INBOUND + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/52f7791a-fe90-49bc-8807-18b3d6eda566 + type: BGP_IPv6_PREFIX_FILTER + uuid: 52f7791a-fe90-49bc-8807-18b3d6eda566 + attachmentStatus: ATTACHED + direction: INBOUND + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652 + type: BGP_IPv4_PREFIX_FILTER + uuid: 8b67bf1c-7afa-4a9e-98c3-d5ab17da6652 + attachmentStatus: ATTACHED + direction: OUTBOUND + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/65d74639-8f48-4e10-9684-45d364645e97 + type: BGP_IPv6_PREFIX_FILTER + uuid: 65d74639-8f48-4e10-9684-45d364645e97 + attachmentStatus: ATTACHED + direction: OUTBOUND + "400_route_filters": + value: + - errorCode: EQ-3044001 + errorMessage: Invalid input + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: type + - errorCode: EQ-3044001 + errorMessage: Invalid input + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: name + - errorCode: EQ-3044002 + errorMessage: Connection already deleted + correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec + additionalInfo: + - property: connectionId + - errorCode: EQ-3044003 + errorMessage: Route Filter is in transient state + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: routeFilterId + - errorCode: EQ-3044003 + errorMessage: Connection is in transient state + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: connectionId + AttachConnectionRouteFiltersResponse: + value: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: ATTACHING + direction: INBOUND + AttachConnectionRouteFilterInbound: + value: + direction: INBOUND + AttachConnectionRouteFilterOutbound: + value: + direction: OUTBOUND + "400_invalid_direction": + value: + - errorCode: EQ-3044001 + errorMessage: Invalid input + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: direction + "400_transient_state": + value: + - errorCode: EQ-3044008 + errorMessage: Cannot attach or detach Route Filter with Connection in transient + state + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Cannot attach or detach Route Filter with Connection in transient + state + DetachConnectionRouteFilterInboundResponse: + value: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: DETACHING + direction: INBOUND + DetachConnectionRouteFilterOutboundResponse: + value: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: DETACHING + direction: OUTBOUND + RouteFilterCreateBgpIpv4Prefix: + value: + type: BGP_IPv4_PREFIX_FILTER + name: My-route-filter-v4 + description: Test filter + project: + projectId: 567 + notifications: + type: ALL + emails: + - test@equinix.com + RouteFilterCreateBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-filter-v4 + description: Test filter + state: PROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_CREATION + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + notMatchedRuleAction: DENY + connectionsCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 567 + notifications: + - type: ALL + emails: + - test@equinix.com + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + UpdateRouteFilterIPv4: + value: + type: BGP_IPv4_PREFIX_FILTER + name: My-route-filter-v4-update + description: Test filter update + project: + projectId: 789 + notifications: + - type: ALL + emails: + - test@equinix.com + RouteFilterIpv4ReplaceResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-filter-v4-update + description: Test filter update + state: REPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + notMatchedRuleAction: DENY + connectionsCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 789 + notifications: + - type: ALL + emails: + - test@equinix.com + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteFilterDeleteBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-filter-v4 + description: Test filter + state: DEPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31 + type: BGP_IPv4_PREFIX_FILTER_DELETION + uuid: c2ec84c5-6de6-4f5c-b506-3ce218630c31 + notMatchedRuleAction: DENY + connectionsCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 567 + notifications: + - type: ALL + emails: + - test@equinix.com + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: testuser1 + updatedByEmail: testuser@equinix.com + updatedByFullName: testuser testuser + updatedDateTime: 2020-05-21T10:30:00Z + deletedBy: testuser1 + deletedByEmail: testuser@equinix.com + deletedByFullName: testuser testuser + deletedDateTime: 2020-05-21T10:30:00Z + "400_attached_connection": + value: + - errorCode: EQ-3044007 + errorMessage: Cannot delete Route Filter still attached to a Connection + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Cannot delete Route Filter still attached to a Connection + PatchRouteFilterName: + value: + - op: replace + path: /name + value: My-route-filter-v4-updated + RouteFilterNamePatchResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-filter-v4-updated + description: Test filter + state: REPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + notMatchedRuleAction: DENY + connectionsCount: 1 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 567 + notifications: + - type: ALL + emails: + - test@equinix.com + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + "400_invalid_operation": + value: + - errorCode: EQ-3044011 + errorMessage: Invalid Argument passed + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Only replace name operation is supported. + RouteFilterGetAllChangesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 4 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_CREATION + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + type: BGP_IPv4_PREFIX_FILTER + name: My-route-filter-v4 + description: Test filter + project: + projectId: 567 + notifications: + - type: ALL + emails: + - test@equinix.com + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + - op: replace + path: /name + value: My-route-filter-v4-updated + previousValue: My-route-filter-v4 + RouteFilterGetChangeResponseExample: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_FILTER_CREATION + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + type: BGP_IPv4_PREFIX_FILTER + name: My-route-filter-v4 + description: Test filter + project: + projectId: 567 + notifications: + - type: ALL + emails: + - test@equinix.com + RouteFilterGetConnectionsResponse: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + next: null + previous: null + data: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f + type: IP_VC + name: test-connection + uuid: 05de355a-6c9d-4636-8d7d-7b7595821c15 + RouteFilterRulesGetAll: + value: + pagination: + offset: 0 + limit: 20 + total: 2 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b + name: Private-subnet-filter-2 + description: Test rule + prefixMatch: exact + action: PERMIT + prefix: 192.168.10.0/24 + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_FILTER_RULE_CREATION + uuid: 9397f111-19aa-489c-b3c7-349c86818f2d + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/ea48337b-fe04-4164-a3f0-48d81abf575b + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: ea48337b-fe04-4164-a3f0-48d81abf575b + name: Private-subnet-filter-2 + description: Test rule + prefixMatch: orlonger + action: PERMIT + prefix: 192.168.20.0/24 + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_FILTER_RULE_CREATION + uuid: 9397f111-19aa-489c-b3c7-349c86818f2d + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteFilterRuleCreateBgpIpv4Prefix: + value: + name: Private-subnet-filter + description: Test rule + prefix: 192.168.0.0/24 + prefixMatch: exact + RouteFilterRuleCreateBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-filter + description: Test rule + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_FILTER_RULE_CREATION + uuid: ff9653dc-88c5-47b5-b552-8a08d2f73f7e + action: PERMIT + prefix: 192.168.0.0/24 + prefixMatch: exact + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + UpdateRouteFilterRuleIPv4: + value: + type: BGP_IPv4_PREFIX_FILTER_RULE + name: Private-subnet-filter + description: Test rule + prefix: 192.168.0.0/25 + prefixMach: exact + action: PERMIT + RouteFilterRuleIpv4ReplaceResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-filter + description: Test rule + prefixMach: exact + action: PERMIT + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628 + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: a25ca469-721a-4614-89a9-cdef287aa628 + prefix: 192.168.0.0/24 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: testuser1 + updatedByEmail: testuser@equinix.com + updatedByFullName: testuser testuser + updatedDateTime: 2020-05-21T10:30:00Z + RouteFilterRuleDeleteBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-filter + description: Test rule + change: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485 + type: BGP_IPv4_PREFIX_FILTER_RULE_DELETION + uuid: e8528788-14d3-4a7b-a740-99b702067485 + action: PERMIT + prefix: 192.168.0.0/24 + prefixMach: exact + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: testuser1 + updatedByEmail: testuser@equinix.com + updatedByFullName: testuser testuser + updatedDateTime: 2020-05-21T10:30:00Z + deletedBy: testuser1 + deletedByEmail: testuser@equinix.com + deletedByFullName: testuser testuser + deletedDateTime: 2020-05-21T10:30:00Z + "400_transient_filter": + value: + - errorCode: EQ-3044015 + errorMessage: "Cannot delete Route Filter Rule, Route Filter transient state" + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: "Cannot delete Route Filter Rule, Route filter is in transient state" + PatchRouteFilterRulePrefixMatch: + value: + - op: replace + path: /prefixMatch + value: orlonger + RouteFilterRulesGetAllChangesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 3 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_FILTER_RULE_CREATION + uuid: ff9653dc-88c5-47b5-b552-8a08d2f73f7e + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + type: BGP_IPv4_PREFIX_FILTER_RULE + name: Private-subnet-filter + description: Test rule + prefix: 192.168.0.0/25 + prefixMach: exact + action: PERMIT + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a40085a4-f0cc-416c-af01-286f7f7ec736 + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: a40085a4-f0cc-416c-af01-286f7f7ec736 + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + - op: replace + path: /prefixMatch + value: orlonger + previousValue: exact + - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628 + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: a25ca469-721a-4614-89a9-cdef287aa628 + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + - op: replace + path: /prefixMatch + value: exact + previousValue: orlonger + RouteFilterRuleGetChangeResponseExample: + value: + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_FILTER_RULE_CREATION + uuid: ff9653dc-88c5-47b5-b552-8a08d2f73f7e + status: COMPLETED + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: _system + updatedByEmail: null + updatedByFullName: null + updatedDateTime: 2020-05-21T10:30:00Z + data: + type: BGP_IPv4_PREFIX_FILTER_RULE + name: Private-subnet-filter + description: Test rule + prefix: 192.168.0.0/25 + prefixMach: exact + action: PERMIT CreateLabPackage: value: type: XF_ROUTER @@ -14775,14 +17244,14 @@ components: accountNumber: 272010 project: projectId: "995072000433550" - CreateProPackage: + CreateStandardPackage: value: type: XF_ROUTER name: My-Cloud-Router location: metroCode: SV package: - code: PRO + code: STANDARD notifications: - type: ALL emails: @@ -14802,7 +17271,7 @@ components: metroCode: HH equinixAsn: 30000 package: - code: PRO + code: STANDARD order: purchaseOrderNumber: 1-129105284100 project: @@ -14838,7 +17307,7 @@ components: metroCode: HH equinixAsn: 30000 package: - code: PRO + code: STANDARD order: purchaseOrderNumber: 1-129105284100 project: @@ -14903,7 +17372,7 @@ components: metroCode: HH equinixAsn: 30000 package: - code: PRO + code: STANDARD order: purchaseOrderNumber: 1-129105284100 project: @@ -14936,13 +17405,6 @@ components: deletedByFullName: abc deletedByEmail: abc@xyz.com deletedDateTime: 2021-09-24T06:59:46Z - "400_invalid_operation": - value: - - errorCode: EQ-3040054 - errorMessage: Invalid Argument passed - correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - details: "Only replace name, replace package and replace notifications operations\ - \ are supported." CloudRouterActionResponse: value: type: ROUTE_TABLE_ENTRY_UPDATE @@ -15067,8 +17529,8 @@ components: value: - errorCode: EQ-2041022 errorMessage: The provided subnet is not valid. - details: The provided subnet is overlapping to other connection in the same - FCR. + details: The provided subnet is overlapping with other connections in the + same Fabric Cloud Router. correlationId: 5f9f9ab9-a6cb-4e8a-aa34-105cd4cb6cc8 SearchFilterByNameAndMetroName: value: @@ -15110,7 +17572,7 @@ components: metroCode: HH equinixAsn: 30000 package: - code: PRO + code: STANDARD order: purchaseOrderNumber: 1-129105284100 project: @@ -15142,7 +17604,7 @@ components: pagination: offset: 0 limit: 20 - total: 1 + total: 2 data: - href: https://api.equinix.com/fabric/v4/routerPackages/LAB type: ROUTER_PACKAGE @@ -15163,6 +17625,25 @@ components: changeLog: createdDateTime: 2022-02-10T00:14:47Z updatedDateTime: 2022-02-10T00:14:47Z + - href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD + type: ROUTER_PACKAGE + code: STANDARD + description: string + totalIPv4RoutesMax: 1000 + totalIPv6RoutesMax: 100 + staticIPv4RoutesMax: 150 + staticIPv6RoutesMax: 150 + naclsMax: 60 + naclRulesMax: 1000 + haSupported: true + routeFilterSupported: true + natType: STATIC_NAT + vcCountMax: 10 + crCountMax: 3 + vcBandwidthMax: 10000 + changeLog: + createdDateTime: 2023-02-10T00:14:47Z + updatedDateTime: 2023-02-10T00:14:47Z healthResponse: value: href: null @@ -15993,6 +18474,7 @@ components: state: PROVISIONING connections: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011 + type: EVPL_VC uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 package: href: https://api.equinix.com/fabric/v4/timeServicePackages/NTP_STANDARD @@ -16318,6 +18800,10 @@ components: type: TIME_SERVICE_PACKAGE bandwidth: 1 clientsPerSecondMax: 2000 + accuracyUnit: microseconds + accuracySla: -1 + accuracyAvgMin: 1 + accuracyAvgMax: 100 redundancySupported: true multiSubnetSupported: true changeLog: @@ -16328,6 +18814,10 @@ components: type: TIME_SERVICE_PACKAGE bandwidth: 5 clientsPerSecondMax: 1000 + accuracyUnit: microseconds + accuracySla: -1 + accuracyAvgMin: 1 + accuracyAvgMax: 100 redundancySupported: true multiSubnetSupported: true changeLog: @@ -16338,16 +18828,24 @@ components: type: TIME_SERVICE_PACKAGE bandwidth: 5 clientsPerSecondMax: 100 + accuracyUnit: microseconds + accuracySla: 50 + accuracyAvgMin: 1 + accuracyAvgMax: 10 redundancySupported: true multiSubnetSupported: true changeLog: createdDateTime: 2023-05-16T07:50:49.749Z updatedDateTime: 2023-05-17T07:50:49.749Z - - href: https://api.equinix.com/fabric/v4/precisiontimePackages/PTP_ENTERPRISE + - href: https://api.equinix.com/fabric/v4/timeServicePackages/PTP_ENTERPRISE code: PTP_ENTERPRISE type: TIME_SERVICE_PACKAGE bandwidth: 10 clientsPerSecondMax: 20 + accuracyUnit: microseconds + accuracySla: 50 + accuracyAvgMin: 1 + accuracyAvgMax: 10 redundancySupported: true multiSubnetSupported: true changeLog: @@ -16355,11 +18853,15 @@ components: updatedDateTime: 2023-05-17T07:50:49.749Z servicePackageResponse: value: - href: https://api.equinix.com/fabric/v4/precisiontimePackages/NTP_STANDARD + href: https://api.equinix.com/fabric/v4/timeServicePackages/NTP_STANDARD code: NTP_STANDARD type: TIME_SERVICE_PACKAGE bandwidth: 10 clientsPerSecondMax: 100 + accuracyUnit: microseconds + accuracySla: 50 + accuracyAvgMin: 1 + accuracyAvgMax: 10 redundancySupported: true multiSubnetSupported: true changeLog: @@ -16597,6 +19099,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -16606,6 +19109,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -16631,9 +19135,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -16690,6 +19195,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -16975,10 +19483,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -17235,6 +19743,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -17244,6 +19753,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -17269,9 +19779,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -17328,6 +19839,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -17613,10 +20127,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion properties: type: @@ -17877,6 +20391,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -17886,6 +20401,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -17911,9 +20427,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -17970,6 +20487,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -18255,10 +20775,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -18510,6 +21030,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -18519,6 +21040,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -18544,9 +21066,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -18603,6 +21126,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -18888,10 +21414,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -19283,6 +21809,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -19292,6 +21819,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -19317,9 +21845,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -19376,6 +21905,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -19661,10 +22193,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion description: description type: null @@ -19903,6 +22435,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -19912,6 +22445,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -19937,9 +22471,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -19996,6 +22531,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -20281,10 +22819,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion description: description changeLog: @@ -21019,6 +23557,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -21028,6 +23567,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -21053,9 +23593,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -21112,6 +23653,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -21397,10 +23941,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -21652,6 +24196,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -21661,6 +24206,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -21686,9 +24232,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -21745,6 +24292,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -22030,10 +24580,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -22330,6 +24880,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -22339,6 +24890,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -22364,9 +24916,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -22423,6 +24976,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -22708,10 +25264,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -22963,6 +25519,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -22972,6 +25529,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -22997,9 +25555,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -23056,6 +25615,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -23341,10 +25903,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -24167,6 +26729,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -24176,6 +26739,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -24639,6 +27203,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -24649,6 +27214,9 @@ components: name: description: metro name type: string + vcBandwidthMax: + description: max VC speed supported in Mbps + type: integer ibxs: items: description: ibx codes @@ -24848,6 +27416,44 @@ components: - path - value type: object + ServiceMetros: + description: Service Profile Metros + example: + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 + data: + - code: code + sellerRegions: + key: sellerRegions + ibxs: + - ibxs + - ibxs + vcBandwidthMax: 1 + displayName: displayName + name: name + inTrail: true + - code: code + sellerRegions: + key: sellerRegions + ibxs: + - ibxs + - ibxs + vcBandwidthMax: 1 + displayName: displayName + name: name + inTrail: true + properties: + data: + items: + $ref: '#/components/schemas/ServiceMetro' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + type: object ServiceTokenUUID: description: Service Token UUID format: uuid @@ -27144,12 +29750,151 @@ components: operationalStatus: UP connectionCount: 4 opStatusChangedAt: 2020-11-06T07:00:00Z - device: - name: name - redundancy: - priority: PRIMARY - group: group - asn: 9 + device: + name: name + redundancy: + priority: PRIMARY + group: group + asn: 9 + account: + resellerOrgId: 5 + organizationName: organizationName + resellerAccountNumber: 1 + accountName: accountName + ucmId: ucmId + resellerUcmId: resellerUcmId + globalOrganizationName: globalOrganizationName + globalOrgId: globalOrgId + resellerAccountName: resellerAccountName + accountNumber: 0 + globalCustId: globalCustId + orgId: 6 + notifications: + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + properties: + data: + items: + $ref: '#/components/schemas/Port' + type: array + type: object + BulkPhysicalPort: + description: Add to Lag request + example: + data: + - demarcationPoint: + patchPanel: patchPanel + patchPanelName: patchPanelName + connectorType: connectorType + cabinetUniqueSpaceId: cabinetUniqueSpaceId + patchPanelPortB: patchPanelPortB + patchPanelPortA: patchPanelPortA + cageUniqueSpaceId: cageUniqueSpaceId + ibx: ibx + tether: + patchPanel: patchPanel + systemName: systemName + patchPanelPortB: patchPanelPortB + patchPanelPortA: patchPanelPortA + cabinetNumber: cabinetNumber + ibx: ibx + crossConnectId: crossConnectId + loas: + - href: https://openapi-generator.tech + type: CTR_LOA + uuid: uuid + - href: https://openapi-generator.tech + type: CTR_LOA + uuid: uuid + type: null + interfaceType: interfaceType + additionalInfo: + - value: value + key: key + - value: value + key: key + id: 6 + href: https://openapi-generator.tech + state: null + operation: + operationalStatus: UP + connectionCount: 4 + opStatusChangedAt: 2020-11-06T07:00:00Z + account: + resellerOrgId: 5 + organizationName: organizationName + resellerAccountNumber: 1 + accountName: accountName + ucmId: ucmId + resellerUcmId: resellerUcmId + globalOrganizationName: globalOrganizationName + globalOrgId: globalOrgId + resellerAccountName: resellerAccountName + accountNumber: 0 + globalCustId: globalCustId + orgId: 6 + interfaceSpeed: 0 + order: + orderNumber: orderNumber + orderId: orderId + signature: + delegate: + firstName: firstName + lastName: lastName + email: email + signatory: DELEGATE + purchaseOrder: + number: number + amount: amount + selectionType: EXEMPTION + endDate: endDate + attachmentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + startDate: startDate + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - demarcationPoint: + patchPanel: patchPanel + patchPanelName: patchPanelName + connectorType: connectorType + cabinetUniqueSpaceId: cabinetUniqueSpaceId + patchPanelPortB: patchPanelPortB + patchPanelPortA: patchPanelPortA + cageUniqueSpaceId: cageUniqueSpaceId + ibx: ibx + tether: + patchPanel: patchPanel + systemName: systemName + patchPanelPortB: patchPanelPortB + patchPanelPortA: patchPanelPortA + cabinetNumber: cabinetNumber + ibx: ibx + crossConnectId: crossConnectId + loas: + - href: https://openapi-generator.tech + type: CTR_LOA + uuid: uuid + - href: https://openapi-generator.tech + type: CTR_LOA + uuid: uuid + type: null + interfaceType: interfaceType + additionalInfo: + - value: value + key: key + - value: value + key: key + id: 6 + href: https://openapi-generator.tech + state: null + operation: + operationalStatus: UP + connectionCount: 4 + opStatusChangedAt: 2020-11-06T07:00:00Z account: resellerOrgId: 5 organizationName: organizationName @@ -27163,24 +29908,40 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 - notifications: - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION + interfaceSpeed: 0 + order: + orderNumber: orderNumber + orderId: orderId + signature: + delegate: + firstName: firstName + lastName: lastName + email: email + signatory: DELEGATE + purchaseOrder: + number: number + amount: amount + selectionType: EXEMPTION + endDate: endDate + attachmentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + startDate: startDate + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: data: + description: add physical ports to virtual port items: - $ref: '#/components/schemas/Port' + $ref: '#/components/schemas/PhysicalPort' type: array type: object - BulkPhysicalPort: - description: Add to Lag request + AllPhysicalPortsResponse: + description: GET All Physical Ports example: + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 data: - demarcationPoint: patchPanel: patchPanel @@ -27321,14 +30082,580 @@ components: startDate: startDate uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: + pagination: + $ref: '#/components/schemas/Pagination' + data: + description: GET All Physical Ports + items: + $ref: '#/components/schemas/PhysicalPort' + type: array + type: object + LinkProtocolGetResponse: + description: List of Vlans + example: + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 + data: + - vlanTag: 20 + vlanCTag: 20 + changeLog: + createdByEmail: john.smith@example.com + deletedByFullName: John Smith + updatedBy: johnsmith + createdBy: johnsmith + updatedByEmail: john.smith@example.com + createdByFullName: John Smith + createdDateTime: 2020-11-06T07:00:00Z + deletedDateTime: 2020-11-06T07:00:00Z + updatedByFullName: John Smith + deletedBy: johnsmith + deletedByEmail: john.smith@example.com + updatedDateTime: 2020-11-06T07:00:00Z + type: null + vlanSTag: 20 + vlanCTagMin: 20 + uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 + vlanTagMin: 20 + subInterface: + unit: 200 + name: name + type: VNI + additionalInfo: + - value: value + key: key + - value: value + key: key + connection: + bandwidth: 100 + href: https://openapi-generator.tech + type: EVPL_VC + uuid: cd67f685-41b0-1b07-6de0-320a5c00abe + state: null + vlanTagMax: 200 + serviceToken: + bandwidth: 1000 + href: https://openapi-generator.tech + type: TOKEN + uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe + vlanCTagMax: 200 + - vlanTag: 20 + vlanCTag: 20 + changeLog: + createdByEmail: john.smith@example.com + deletedByFullName: John Smith + updatedBy: johnsmith + createdBy: johnsmith + updatedByEmail: john.smith@example.com + createdByFullName: John Smith + createdDateTime: 2020-11-06T07:00:00Z + deletedDateTime: 2020-11-06T07:00:00Z + updatedByFullName: John Smith + deletedBy: johnsmith + deletedByEmail: john.smith@example.com + updatedDateTime: 2020-11-06T07:00:00Z + type: null + vlanSTag: 20 + vlanCTagMin: 20 + uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 + vlanTagMin: 20 + subInterface: + unit: 200 + name: name + type: VNI + additionalInfo: + - value: value + key: key + - value: value + key: key + connection: + bandwidth: 100 + href: https://openapi-generator.tech + type: EVPL_VC + uuid: cd67f685-41b0-1b07-6de0-320a5c00abe + state: null + vlanTagMax: 200 + serviceToken: + bandwidth: 1000 + href: https://openapi-generator.tech + type: TOKEN + uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe + vlanCTagMax: 200 + properties: + pagination: + $ref: '#/components/schemas/Pagination' + data: + items: + $ref: '#/components/schemas/LinkProtocolResponse' + type: array + type: object + PortV4SearchRequest: + description: Search requests containing criteria + example: + filter: + or: + - null + - null + and: + - null + - null + values: + - values + - values + property: null + operator: = + pagination: + offset: 0 + limit: 1 + sort: + - property: null + direction: null + - property: null + direction: null + properties: + filter: + $ref: '#/components/schemas/PortExpression' + pagination: + $ref: '#/components/schemas/PaginationRequest' + sort: + items: + $ref: '#/components/schemas/PortSortCriteria' + type: array + type: object + PortExpression: + example: + or: + - null + - null + and: + - null + - null + values: + - values + - values + property: null + operator: = + properties: + and: + items: + $ref: '#/components/schemas/PortExpression' + type: array + or: + items: + $ref: '#/components/schemas/PortExpression' + type: array + property: + $ref: '#/components/schemas/PortSearchFieldName' + operator: + enum: + - = + type: string + values: + items: + type: string + type: array + type: object + PortExpressions: + items: + $ref: '#/components/schemas/PortExpression' + type: array + PortSearchFieldName: + description: Possible field names to use on filters + enum: + - /project/projectId + - /settings/productCode + - /state + type: string + PortSortCriteria: + example: + property: null + direction: null + properties: + direction: + $ref: '#/components/schemas/PortSortDirection' + property: + $ref: '#/components/schemas/PortSortBy' + type: object + GetAllConnectionRouteFiltersResponse: + example: + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 + data: + - attachmentStatus: ATTACHING + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + direction: INBOUND + - attachmentStatus: ATTACHING + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + direction: INBOUND + properties: + pagination: + $ref: '#/components/schemas/Pagination' + data: + description: List of Route Filters attached to a Connection + items: + $ref: '#/components/schemas/ConnectionRouteFilterData' + type: array + type: object + RouteFilterId: + description: Route Filters UUID + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: string + ConnectionRouteFilterData: + example: + attachmentStatus: ATTACHING + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + direction: INBOUND + properties: + href: + description: Route Filter URI + example: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uri + type: string + type: + description: Route Filter type + enum: + - BGP_IPv4_PREFIX_FILTER + - BGP_IPv6_PREFIX_FILTER + type: string + uuid: + description: Route Filter identifier + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uuid + type: string + attachmentStatus: + enum: + - ATTACHING + - ATTACHED + - DETACHED + - DETACHING + - FAILED + type: string + direction: + enum: + - INBOUND + - OUTBOUND + type: string + type: object + ConnectionRouteFiltersBase: + example: + direction: INBOUND + properties: + direction: + description: Route Filter direction to attach to a connection + enum: + - INBOUND + - OUTBOUND + type: string + type: object + RouteFiltersBase: + example: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + properties: + type: + description: Route Filter type + enum: + - BGP_IPv4_PREFIX_FILTER + - BGP_IPv6_PREFIX_FILTER + type: string + name: + example: My-direct-route-1 + type: string + description: + description: Customer-provided connection description + type: string + project: + $ref: '#/components/schemas/Project' + notifications: + description: Preferences for notifications on route filter configuration + or status changes + items: + $ref: '#/components/schemas/SimplifiedNotification' + type: array + type: object + RouteFiltersData: + example: + change: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: uuid + name: My-direct-route-1 + description: description + project: null + changelog: + createdByEmail: john.smith@example.com + deletedByFullName: John Smith + updatedBy: johnsmith + createdBy: johnsmith + updatedByEmail: john.smith@example.com + createdByFullName: John Smith + createdDateTime: 2020-11-06T07:00:00Z + deletedDateTime: 2020-11-06T07:00:00Z + updatedByFullName: John Smith + deletedBy: johnsmith + deletedByEmail: john.smith@example.com + updatedDateTime: 2020-11-06T07:00:00Z + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + state: null + type: BGP_IPv4_PREFIX_FILTER + notMatchedRuleAction: ALLOW + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + connectionsCount: 0 + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + properties: + href: + description: Route Filter URI + example: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uri + type: string + type: + description: Route Filter type + enum: + - BGP_IPv4_PREFIX_FILTER + - BGP_IPv6_PREFIX_FILTER + type: string + uuid: + description: Route Filter identifier + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uuid + type: string + name: + example: My-direct-route-1 + type: string + description: + description: Customer-provided connection description + type: string + state: + $ref: '#/components/schemas/RouteFilterState' + change: + $ref: '#/components/schemas/RouteFiltersChange' + notMatchedRuleAction: + enum: + - ALLOW + - DENY + type: string + connectionsCount: + example: 0 + type: integer + project: + $ref: '#/components/schemas/RouteFiltersData_project' + notifications: + description: Preferences for notifications on route filter configuration + or status changes + items: + $ref: '#/components/schemas/SimplifiedNotification' + type: array + changelog: + $ref: '#/components/schemas/Changelog' + type: object + RouteFiltersPatchRequest: + description: Patch Route Filters request + items: + $ref: '#/components/schemas/ConnectionChangeOperation' + minItems: 1 + type: array + RouteFilterChangeDataResponse: + description: List of Route Filter changes + example: + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 + data: + - updatedBy: updatedBy + data: + op: add + path: / + value: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + information: information + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 + - updatedBy: updatedBy + data: + op: add + path: / + value: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + information: information + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 + properties: + pagination: + $ref: '#/components/schemas/Pagination' + data: + items: + $ref: '#/components/schemas/RouteFilterChangeData' + type: array + type: object + ChangeId_1: + description: Route Filters Change UUID + example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 + format: uuid + type: string + RouteFilterChangeData: + allOf: + - $ref: '#/components/schemas/RouteFiltersChange' + description: Current state of latest Route Filter change + example: + updatedBy: updatedBy + data: + op: add + path: / + value: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + information: information + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 + properties: + status: + description: Current outcome of the change flow + enum: + - COMPLETED + - FAILED + - REQUESTED + type: string + createdBy: + description: Created by User Key + type: string + createdDateTime: + description: Set when change flow starts + format: date-time + type: string + updatedBy: + description: Updated by User Key + type: string + updatedDateTime: + description: Set when change object is updated + format: date-time + type: string + information: + description: Additional information + type: string data: - description: add physical ports to virtual port - items: - $ref: '#/components/schemas/PhysicalPort' - type: array + $ref: '#/components/schemas/RouteFiltersChangeOperation' type: object - AllPhysicalPortsResponse: - description: GET All Physical Ports + GetRouteFilterGetConnectionsResponse: example: pagination: next: next @@ -27337,155 +30664,24 @@ components: previous: previous limit: 0 data: - - demarcationPoint: - patchPanel: patchPanel - patchPanelName: patchPanelName - connectorType: connectorType - cabinetUniqueSpaceId: cabinetUniqueSpaceId - patchPanelPortB: patchPanelPortB - patchPanelPortA: patchPanelPortA - cageUniqueSpaceId: cageUniqueSpaceId - ibx: ibx - tether: - patchPanel: patchPanel - systemName: systemName - patchPanelPortB: patchPanelPortB - patchPanelPortA: patchPanelPortA - cabinetNumber: cabinetNumber - ibx: ibx - crossConnectId: crossConnectId - loas: - - href: https://openapi-generator.tech - type: CTR_LOA - uuid: uuid - - href: https://openapi-generator.tech - type: CTR_LOA - uuid: uuid + - name: connection-1 + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f type: null - interfaceType: interfaceType - additionalInfo: - - value: value - key: key - - value: value - key: key - id: 6 - href: https://openapi-generator.tech - state: null - operation: - operationalStatus: UP - connectionCount: 4 - opStatusChangedAt: 2020-11-06T07:00:00Z - account: - resellerOrgId: 5 - organizationName: organizationName - resellerAccountNumber: 1 - accountName: accountName - ucmId: ucmId - resellerUcmId: resellerUcmId - globalOrganizationName: globalOrganizationName - globalOrgId: globalOrgId - resellerAccountName: resellerAccountName - accountNumber: 0 - globalCustId: globalCustId - orgId: 6 - interfaceSpeed: 0 - order: - orderNumber: orderNumber - orderId: orderId - signature: - delegate: - firstName: firstName - lastName: lastName - email: email - signatory: DELEGATE - purchaseOrder: - number: number - amount: amount - selectionType: EXEMPTION - endDate: endDate - attachmentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - startDate: startDate - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - demarcationPoint: - patchPanel: patchPanel - patchPanelName: patchPanelName - connectorType: connectorType - cabinetUniqueSpaceId: cabinetUniqueSpaceId - patchPanelPortB: patchPanelPortB - patchPanelPortA: patchPanelPortA - cageUniqueSpaceId: cageUniqueSpaceId - ibx: ibx - tether: - patchPanel: patchPanel - systemName: systemName - patchPanelPortB: patchPanelPortB - patchPanelPortA: patchPanelPortA - cabinetNumber: cabinetNumber - ibx: ibx - crossConnectId: crossConnectId - loas: - - href: https://openapi-generator.tech - type: CTR_LOA - uuid: uuid - - href: https://openapi-generator.tech - type: CTR_LOA - uuid: uuid + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + - name: connection-1 + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f type: null - interfaceType: interfaceType - additionalInfo: - - value: value - key: key - - value: value - key: key - id: 6 - href: https://openapi-generator.tech - state: null - operation: - operationalStatus: UP - connectionCount: 4 - opStatusChangedAt: 2020-11-06T07:00:00Z - account: - resellerOrgId: 5 - organizationName: organizationName - resellerAccountNumber: 1 - accountName: accountName - ucmId: ucmId - resellerUcmId: resellerUcmId - globalOrganizationName: globalOrganizationName - globalOrgId: globalOrgId - resellerAccountName: resellerAccountName - accountNumber: 0 - globalCustId: globalCustId - orgId: 6 - interfaceSpeed: 0 - order: - orderNumber: orderNumber - orderId: orderId - signature: - delegate: - firstName: firstName - lastName: lastName - email: email - signatory: DELEGATE - purchaseOrder: - number: number - amount: amount - selectionType: EXEMPTION - endDate: endDate - attachmentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - startDate: startDate - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d properties: pagination: $ref: '#/components/schemas/Pagination' data: - description: GET All Physical Ports + description: List of Connections using a Route Filter items: - $ref: '#/components/schemas/PhysicalPort' + $ref: '#/components/schemas/RouteFilterConnectionsData' type: array type: object - LinkProtocolGetResponse: - description: List of Vlans + GetRouteFilterRulesResponse: example: pagination: next: next @@ -27494,9 +30690,15 @@ components: previous: previous limit: 0 data: - - vlanTag: 20 - vlanCTag: 20 - changeLog: + - prefix: 192.168.0.0/24 + change: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: uuid + name: Private-subnet-filter-2 + description: description + action: PERMIT + changelog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -27509,36 +30711,19 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - type: null - vlanSTag: 20 - vlanCTagMin: 20 - uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 - vlanTagMin: 20 - subInterface: - unit: 200 - name: name - type: VNI - additionalInfo: - - value: value - key: key - - value: value - key: key - connection: - bandwidth: 100 - href: https://openapi-generator.tech - type: EVPL_VC - uuid: cd67f685-41b0-1b07-6de0-320a5c00abe - state: null - vlanTagMax: 200 - serviceToken: - bandwidth: 1000 + prefixMatch: exact + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b + - prefix: 192.168.0.0/24 + change: href: https://openapi-generator.tech - type: TOKEN - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - vlanCTagMax: 200 - - vlanTag: 20 - vlanCTag: 20 - changeLog: + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: uuid + name: Private-subnet-filter-2 + description: description + action: PERMIT + changelog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -27551,127 +30736,222 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - type: null - vlanSTag: 20 - vlanCTagMin: 20 - uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 - vlanTagMin: 20 - subInterface: - unit: 200 - name: name - type: VNI - additionalInfo: - - value: value - key: key - - value: value - key: key - connection: - bandwidth: 100 - href: https://openapi-generator.tech - type: EVPL_VC - uuid: cd67f685-41b0-1b07-6de0-320a5c00abe - state: null - vlanTagMax: 200 - serviceToken: - bandwidth: 1000 - href: https://openapi-generator.tech - type: TOKEN - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - vlanCTagMax: 200 + prefixMatch: exact + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b properties: pagination: $ref: '#/components/schemas/Pagination' data: + description: List of Route Filter Rules items: - $ref: '#/components/schemas/LinkProtocolResponse' + $ref: '#/components/schemas/RouteFilterRulesData' type: array type: object - PortV4SearchRequest: - description: Search requests containing criteria + RouteFilterRulesBase: + example: + prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: orlonger + properties: + name: + example: Private-subnet-filter + type: string + description: + description: Customer-provided Route Filter Rule description + type: string + prefix: + example: 192.168.0.0/24 + type: string + prefixMatch: + default: orlonger + example: orlonger + type: string + type: object + RouteFilterRulesData: + example: + prefix: 192.168.0.0/24 + change: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: uuid + name: Private-subnet-filter-2 + description: description + action: PERMIT + changelog: + createdByEmail: john.smith@example.com + deletedByFullName: John Smith + updatedBy: johnsmith + createdBy: johnsmith + updatedByEmail: john.smith@example.com + createdByFullName: John Smith + createdDateTime: 2020-11-06T07:00:00Z + deletedDateTime: 2020-11-06T07:00:00Z + updatedByFullName: John Smith + deletedBy: johnsmith + deletedByEmail: john.smith@example.com + updatedDateTime: 2020-11-06T07:00:00Z + prefixMatch: exact + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b + properties: + href: + description: Route Filter Rules URI + example: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b + format: uri + type: string + type: + description: Route Filter type + enum: + - BGP_IPv4_PREFIX_FILTER_RULE + - BGP_IPv6_PREFIX_FILTER_RULE + type: string + uuid: + description: Route Filter Rule identifier + example: 65b025ef-022b-4180-85cf-82cfc1ab655b + format: uuid + type: string + name: + example: Private-subnet-filter-2 + type: string + description: + description: Customer-provided Route Filter Rule description + type: string + prefixMatch: + default: orlonger + description: prefix matching operator + example: exact + type: string + change: + $ref: '#/components/schemas/RouteFilterRulesChange' + action: + enum: + - PERMIT + - DENY + type: string + prefix: + example: 192.168.0.0/24 + type: string + changelog: + $ref: '#/components/schemas/Changelog' + type: object + RouteFilterRuleId: + description: Route Filter Rule UUID + example: 65b025ef-022b-4180-85cf-82cfc1ab655b + type: string + RouteFilterRulesPatchRequest: + description: Patch Route Filters Rule request + items: + $ref: '#/components/schemas/RouteFilterChangePrefixMatch' + minItems: 1 + type: array + RouteFilterRulesChangeDataResponse: + description: List of Route Filter Rule changes example: - filter: - or: - - null - - null - and: - - null - - null - values: - - values - - values - property: null - operator: = pagination: + next: next + total: 0 offset: 0 - limit: 1 - sort: - - property: null - direction: null - - property: null - direction: null + previous: previous + limit: 0 + data: + - updatedBy: updatedBy + data: + prefix: prefix + name: Private-subnet-filter + description: description + action: PERMIT + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 + - updatedBy: updatedBy + data: + prefix: prefix + name: Private-subnet-filter + description: description + action: PERMIT + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 properties: - filter: - $ref: '#/components/schemas/PortExpression' pagination: - $ref: '#/components/schemas/PaginationRequest' - sort: + $ref: '#/components/schemas/Pagination' + data: items: - $ref: '#/components/schemas/PortSortCriteria' + $ref: '#/components/schemas/RouteFilterRulesChangeData' type: array type: object - PortExpression: + ChangeId_2: + description: Route Filter Rule Change UUID + example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 + format: uuid + type: string + RouteFilterRulesChangeData: + allOf: + - $ref: '#/components/schemas/RouteFilterRulesChange' + description: Current state of latest Route Filter Rules change example: - or: - - null - - null - and: - - null - - null - values: - - values - - values - property: null - operator: = + updatedBy: updatedBy + data: + prefix: prefix + name: Private-subnet-filter + description: description + action: PERMIT + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 properties: - and: - items: - $ref: '#/components/schemas/PortExpression' - type: array - or: - items: - $ref: '#/components/schemas/PortExpression' - type: array - property: - $ref: '#/components/schemas/PortSearchFieldName' - operator: + status: + description: Current outcome of the change flow enum: - - = + - COMPLETED + - FAILED + - REQUESTED type: string - values: - items: - type: string - type: array + createdBy: + description: Created by User Key + type: string + createdDateTime: + description: Set when change flow starts + format: date-time + type: string + updatedBy: + description: Updated by User Key + type: string + updatedDateTime: + description: Set when change object is updated + format: date-time + type: string + data: + $ref: '#/components/schemas/RouteFilterRulesChangeOperation' type: object - PortExpressions: - items: - $ref: '#/components/schemas/PortExpression' - type: array - PortSearchFieldName: - description: Possible field names to use on filters - enum: - - /project/projectId - - /settings/productCode - - /state - type: string - PortSortCriteria: + RouteFilterRulesPostRequest: + description: Create Route Filter Rule POST request example: - property: null - direction: null + data: + - prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: orlonger + - prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: orlonger properties: - direction: - $ref: '#/components/schemas/PortSortDirection' - property: - $ref: '#/components/schemas/PortSortBy' + data: + description: Route Filter Rule configuration + items: + $ref: '#/components/schemas/RouteFilterRulesBase' + type: array type: object CloudRouterPostRequest: description: Create Cloud Router @@ -28101,8 +31381,8 @@ components: $ref: '#/components/schemas/RouteTableEntry' type: array type: object - ValidateSubnetRequest: - description: Validate subnet for Routing Protocol Configuration + ValidateRequest: + description: Validate connection auth api key or vlan example: filter: and: @@ -28118,7 +31398,7 @@ components: operator: operator properties: filter: - $ref: '#/components/schemas/ValidateSubnetRequest_filter' + $ref: '#/components/schemas/ValidateRequest_filter' type: object ValidateSubnetResponse: description: ValidateResponse @@ -28404,7 +31684,7 @@ components: enum: - LAB - BASIC - - PRO + - STANDARD - PREMIUM type: string CloudRouterPackage: @@ -28534,25 +31814,6 @@ components: apiServices: $ref: '#/components/schemas/ApiServices' type: object - ValidateConnectionRequest: - description: Validate connection auth api key or vlan - example: - filter: - and: - - values: - - values - - values - property: property - operator: operator - - values: - - values - - values - property: property - operator: operator - properties: - filter: - $ref: '#/components/schemas/ValidateSubnetRequest_filter' - type: object ConnectionResponse: description: ValidateResponse example: @@ -28778,6 +32039,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -28787,6 +32049,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -28812,9 +32075,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -28871,6 +32135,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -29156,10 +32423,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -29411,6 +32678,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -29420,6 +32688,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -29445,9 +32714,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -29504,6 +32774,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -29789,10 +33062,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -30089,6 +33362,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -30098,6 +33372,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -30123,9 +33398,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -30182,6 +33458,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -30467,10 +33746,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -30722,6 +34001,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -30731,6 +34011,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -30756,9 +34037,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -30815,6 +34097,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -31100,10 +34385,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -31693,6 +34978,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -31702,6 +34988,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -31727,9 +35014,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -31786,6 +35074,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -32071,10 +35362,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -32326,6 +35617,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -32335,6 +35627,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -32360,9 +35653,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -32419,6 +35713,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -32704,10 +36001,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -33004,6 +36301,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -33013,6 +36311,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -33038,9 +36337,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -33097,6 +36397,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -33382,10 +36685,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion change: data: @@ -33637,6 +36940,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -33646,6 +36950,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -33671,9 +36976,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -33730,6 +37036,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -34015,10 +37324,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion name: name additionalInfo: @@ -34146,7 +37455,7 @@ components: $ref: '#/components/schemas/NetworkChange' type: array type: object - ChangeId_1: + ChangeId_3: description: Network Change UUID example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 format: uuid @@ -34407,142 +37716,6 @@ components: - type title: precisionTimeServiceRequest type: object - precisionTimeServiceConnectionsResponse: - description: EPT service instance's L2 connections - example: - pagination: - next: next - total: 0 - offset: 0 - previous: previous - limit: 0 - data: - - href: https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections - type: EVPL_VC - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - href: https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections - type: EVPL_VC - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - properties: - pagination: - $ref: '#/components/schemas/Pagination' - data: - description: Data returned from the API call - items: - $ref: '#/components/schemas/connectionLink' - type: array - title: precisionTimeServiceConnectionResponse - type: object - precisionTimeServicePackagesResponse: - description: Precision Packages - example: - pagination: - next: next - total: 0 - offset: 0 - previous: previous - limit: 0 - data: - - pagination: - next: next - total: 0 - offset: 0 - previous: previous - limit: 0 - data: - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT - description: description - crCountMax: 3 - changeLog: - createdDateTime: 2020-11-06T07:00:00Z - updatedDateTime: 2020-11-06T07:00:00Z - type: ROUTER_PACKAGE - totalIPv4RoutesMax: 50 - haSupported: true - staticIPv4RoutesMax: 3 - vcBandwidthMax: 50 - naclsMax: 2 - totalIPv6RoutesMax: 50 - href: https://api.equinix.com/fabric/v4/routerPackages/LAB - vcCountMax: 10 - routeFilterSupported: true - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT - description: description - crCountMax: 3 - changeLog: - createdDateTime: 2020-11-06T07:00:00Z - updatedDateTime: 2020-11-06T07:00:00Z - type: ROUTER_PACKAGE - totalIPv4RoutesMax: 50 - haSupported: true - staticIPv4RoutesMax: 3 - vcBandwidthMax: 50 - naclsMax: 2 - totalIPv6RoutesMax: 50 - href: https://api.equinix.com/fabric/v4/routerPackages/LAB - vcCountMax: 10 - routeFilterSupported: true - - pagination: - next: next - total: 0 - offset: 0 - previous: previous - limit: 0 - data: - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT - description: description - crCountMax: 3 - changeLog: - createdDateTime: 2020-11-06T07:00:00Z - updatedDateTime: 2020-11-06T07:00:00Z - type: ROUTER_PACKAGE - totalIPv4RoutesMax: 50 - haSupported: true - staticIPv4RoutesMax: 3 - vcBandwidthMax: 50 - naclsMax: 2 - totalIPv6RoutesMax: 50 - href: https://api.equinix.com/fabric/v4/routerPackages/LAB - vcCountMax: 10 - routeFilterSupported: true - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT - description: description - crCountMax: 3 - changeLog: - createdDateTime: 2020-11-06T07:00:00Z - updatedDateTime: 2020-11-06T07:00:00Z - type: ROUTER_PACKAGE - totalIPv4RoutesMax: 50 - haSupported: true - staticIPv4RoutesMax: 3 - vcBandwidthMax: 50 - naclsMax: 2 - totalIPv6RoutesMax: 50 - href: https://api.equinix.com/fabric/v4/routerPackages/LAB - vcCountMax: 10 - routeFilterSupported: true - properties: - pagination: - $ref: '#/components/schemas/Pagination' - data: - description: Data returned from the API call - items: - $ref: '#/components/schemas/PackageResponse' - type: array - title: precisionTimeServicePackagesResponse - type: object ConnectionType: description: Connection type enum: @@ -34850,6 +38023,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -34859,6 +38033,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -34884,9 +38059,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -34943,6 +38119,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -35228,10 +38407,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion properties: serviceToken: @@ -35809,6 +38988,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -35818,6 +38998,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -35843,9 +39024,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -35902,6 +39084,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -36187,10 +39372,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion properties: zSide: @@ -37211,6 +40396,207 @@ components: enum: - /device/name type: string + RouteFilterState: + description: Route Filter status + enum: + - PROVISIONING + - REPROVISIONING + - DEPROVISIONING + - PROVISIONED + - DEPROVISIONED + - NOT_PROVISIONED + - NOT_DEPROVISIONED + type: string + RouteFiltersChange: + description: Current state of latest Route Filter change + example: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: uuid + properties: + uuid: + description: Uniquely identifies a change + type: string + type: + description: Type of change + enum: + - BGP_IPv4_PREFIX_FILTER_UPDATE + - BGP_IPv4_PREFIX_FILTER_CREATION + - BGP_IPv4_PREFIX_FILTER_DELETION + - BGP_IPv6_PREFIX_FILTER_UPDATE + - BGP_IPv6_PREFIX_FILTER_CREATION + - BGP_IPv6_PREFIX_FILTER_DELETION + type: string + href: + description: Route Filter Change URI + format: uri + type: string + required: + - type + - uuid + type: object + RouteFiltersChangeOperation: + description: Route Filter change operation data + example: + op: add + path: / + value: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + properties: + op: + description: Handy shortcut for operation name + enum: + - add + - replace + - remove + type: string + path: + description: path inside document leading to updated parameter + example: / + type: string + value: + $ref: '#/components/schemas/RouteFiltersBase' + required: + - op + - path + - value + type: object + RouteFilterConnectionsData: + example: + name: connection-1 + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f + type: null + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + properties: + href: + description: Connection URI + example: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f + format: uri + type: string + type: + $ref: '#/components/schemas/ConnectionType' + uuid: + description: Route Filter identifier + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uuid + type: string + name: + example: connection-1 + type: string + type: object + RouteFilterRulesChange: + description: Current state of latest Route Filter Rule change + example: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + uuid: uuid + properties: + uuid: + description: Uniquely identifies a change + type: string + type: + description: Type of change + enum: + - BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + - BGP_IPv4_PREFIX_FILTER_RULE_CREATION + - BGP_IPv4_PREFIX_FILTER_RULE_DELETION + - BGP_IPv6_PREFIX_FILTER_RULE_UPDATE + - BGP_IPv6_PREFIX_FILTER_RULE_CREATION + - BGP_IPv6_PREFIX_FILTER_RULE_DELETION + type: string + href: + description: Route Filter Change URI + format: uri + type: string + required: + - type + - uuid + type: object + RouteFilterChangePrefixMatch: + description: Route Filter Rule change operation data + example: + op: replace + path: /prefixMatch + value: "{}" + properties: + op: + description: Handy shortcut for operation name + example: replace + type: string + path: + description: path to change + example: /prefixMatch + type: string + value: + description: new value for updated parameter + type: object + required: + - op + - path + - value + type: object + RouteFilterRulesChangeOperation: + description: Route Filter change operation data + example: + prefix: prefix + name: Private-subnet-filter + description: description + action: PERMIT + type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + properties: + name: + description: name of route filter rule + example: Private-subnet-filter + type: string + description: + description: cust provided description + type: string + type: + description: type of filter rule + enum: + - BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + - BGP_IPv4_PREFIX_FILTER_RULE_CREATION + - BGP_IPv4_PREFIX_FILTER_RULE_DELETION + - BGP_IPv6_PREFIX_FILTER_RULE_UPDATE + - BGP_IPv6_PREFIX_FILTER_RULE_CREATION + - BGP_IPv6_PREFIX_FILTER_RULE_DELETION + type: string + prefix: + description: given prefix (does not change) + type: string + action: + description: change to be made + enum: + - PERMIT + - DENY + type: string + required: + - action + - name + - prefix + - type + type: object SimplifiedLocationWithoutIBX: example: metroName: Amsterdam @@ -37256,7 +40642,7 @@ components: enum: - LAB - BASIC - - PRO + - STANDARD - PREMIUM example: LAB type: string @@ -37424,7 +40810,7 @@ components: enum: - LAB - BASIC - - PRO + - STANDARD - PREMIUM example: LAB type: string @@ -37694,24 +41080,6 @@ components: - code title: package type: object - connectionLink: - example: - href: https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections - type: EVPL_VC - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - properties: - href: - example: https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections - format: uri - type: string - type: - enum: - - EVPL_VC - type: string - uuid: - format: uuid - type: string - type: object ConnectionPriority: description: Connection priority in redundancy group enum: @@ -37836,6 +41204,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -37845,6 +41214,7 @@ components: ibxs: - ibxs - ibxs + vcBandwidthMax: 1 displayName: displayName name: name inTrail: true @@ -37870,9 +41240,10 @@ components: type: null interface: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId network: change: href: https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9 @@ -37929,6 +41300,9 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + virtualNetwork: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: bgpIpv4RoutesCount: 0 equinixAsn: 30000 @@ -38214,10 +41588,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 sellerRegion: sellerRegion properties: type: @@ -38251,6 +41625,8 @@ components: providerConnectionId: description: Provider assigned Connection Id type: string + virtualNetwork: + $ref: '#/components/schemas/VirtualNetwork' type: object ConnectionCompanyProfile: description: Connection Company Profile Details @@ -38796,6 +42172,7 @@ components: - SUBNET - CLOUD_ROUTER - NETWORK + - METAL_NETWORK type: string SimplifiedPort: description: Port specification @@ -39126,10 +42503,10 @@ components: SimplifiedLinkProtocol: description: Connection link protocol Configuration example: - vlanTag: 2735 - vlanCTag: 3690 + vlanTag: 3585 + vlanCTag: 2635 type: null - vlanSTag: 3585 + vlanSTag: 3690 properties: type: $ref: '#/components/schemas/LinkProtocolType' @@ -39191,31 +42568,35 @@ components: $ref: '#/components/schemas/SimplifiedAccount' type: object Interface: - description: Virtual Device Interface Information + description: Interface Information example: href: https://openapi-generator.tech - id: 6 + id: 3 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + projectId: projectId properties: href: - description: Virtual Interface URI + description: Interface URI format: uri readOnly: true type: string uuid: - description: Equinix-assigned Virtual Device Interface identifier + description: Equinix-assigned Interface identifier format: uuid type: string id: description: Interface id type: integer type: - description: Virtual Device Interface type + description: Interface type enum: - CLOUD - NETWORK type: string + projectId: + description: Interface Project ID + type: string type: object SimplifiedNetwork: description: Network specification @@ -39324,6 +42705,22 @@ components: - PUBLIC - MANUAL type: string + VirtualNetwork: + description: Virtual Network Information + example: + href: https://openapi-generator.tech + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + properties: + href: + description: The Canonical URL at which the resource resides. + format: uri + readOnly: true + type: string + uuid: + description: Equinix-assigned Virtual Network identifier + format: uuid + type: string + type: object VirtualConnectionPriceConnectionType: description: Virtual Connection type enum: @@ -39503,6 +42900,7 @@ components: - DOT1Q - QINQ - EVPN_VXLAN + - VXLAN type: string VirtualConnectionPriceAccessPointType: description: Virtual Connection access point type @@ -39525,7 +42923,7 @@ components: enum: - LAB - BASIC - - PRO + - STANDARD - PREMIUM type: string ConnectivitySourceType: @@ -39565,12 +42963,14 @@ components: UNTAGGED: '#/components/schemas/LinkProtocolUntagged' DOT1Q: '#/components/schemas/LinkProtocolDot1q' QINQ: '#/components/schemas/LinkProtocolQinq' + VXLAN: '#/components/schemas/LinkProtocolVxlan' EVPN_VXLAN: '#/components/schemas/LinkProtocolEvpnVxlan' propertyName: type oneOf: - $ref: '#/components/schemas/LinkProtocolUntagged' - $ref: '#/components/schemas/LinkProtocolDot1q' - $ref: '#/components/schemas/LinkProtocolQinq' + - $ref: '#/components/schemas/LinkProtocolVxlan' - $ref: '#/components/schemas/LinkProtocolEvpnVxlan' required: - type @@ -39637,6 +43037,19 @@ components: - vlanCTag - vlanSTag type: object + LinkProtocolVxlan: + description: Connection link protocol configuration - VXLAN + properties: + type: + $ref: '#/components/schemas/LinkProtocolType' + vni: + description: Virtual Network Identifier + maximum: 16777215 + minimum: 4097 + type: integer + required: + - vni + type: object LinkProtocolEvpnVxlan: description: Connection link protocol configuration - EVPN_VXLAN properties: @@ -39677,7 +43090,7 @@ components: reason: type: string type: object - ValidateSubnetRequest_filter_and: + ValidateRequest_filter_and: example: values: - values @@ -39696,7 +43109,7 @@ components: items: type: string type: array - ValidateSubnetRequest_filter: + ValidateRequest_filter: description: Filters example: and: @@ -39713,7 +43126,7 @@ components: properties: and: items: - $ref: '#/components/schemas/ValidateSubnetRequest_filter_and' + $ref: '#/components/schemas/ValidateRequest_filter_and' type: array type: object PortOrder_purchaseOrder: @@ -39885,6 +43298,18 @@ components: bridge: $ref: '#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge' type: object + RouteFiltersData_project_allOf: + properties: + href: + description: Project URI + example: https://api.equinix.com/resourceManager/v1/projects/567 + format: uri + type: string + type: object + RouteFiltersData_project: + allOf: + - $ref: '#/components/schemas/Project' + - $ref: '#/components/schemas/RouteFiltersData_project_allOf' Network_allOf: properties: href: diff --git a/equinix-openapi-fabric/build.gradle b/equinix-openapi-fabric/build.gradle index 944289d9..3330f38a 100644 --- a/equinix-openapi-fabric/build.gradle +++ b/equinix-openapi-fabric/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'java' apply plugin: 'com.diffplug.spotless' group = 'com.equinix' -version = '0.4.0' +version = '0.5.0' buildscript { repositories { diff --git a/equinix-openapi-fabric/build.sbt b/equinix-openapi-fabric/build.sbt index 51d888bb..27d26644 100644 --- a/equinix-openapi-fabric/build.sbt +++ b/equinix-openapi-fabric/build.sbt @@ -2,7 +2,7 @@ lazy val root = (project in file(".")). settings( organization := "com.equinix", name := "equinix-openapi-fabric", - version := "0.4.0", + version := "0.5.0", scalaVersion := "2.11.4", scalacOptions ++= Seq("-feature"), javacOptions in compile ++= Seq("-Xlint:deprecation"), diff --git a/equinix-openapi-fabric/docs/AccessPoint.md b/equinix-openapi-fabric/docs/AccessPoint.md index 09a43009..6b2e5c16 100644 --- a/equinix-openapi-fabric/docs/AccessPoint.md +++ b/equinix-openapi-fabric/docs/AccessPoint.md @@ -22,6 +22,7 @@ Access point object |**peeringType** | **PeeringType** | | [optional] | |**authenticationKey** | **String** | Access point authentication key | [optional] | |**providerConnectionId** | **String** | Provider assigned Connection Id | [optional] | +|**virtualNetwork** | [**VirtualNetwork**](VirtualNetwork.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/AccessPointType.md b/equinix-openapi-fabric/docs/AccessPointType.md index 97ee9d43..fa925f39 100644 --- a/equinix-openapi-fabric/docs/AccessPointType.md +++ b/equinix-openapi-fabric/docs/AccessPointType.md @@ -21,5 +21,7 @@ * `NETWORK` (value: `"NETWORK"`) +* `METAL_NETWORK` (value: `"METAL_NETWORK"`) + diff --git a/equinix-openapi-fabric/docs/CloudRouterPackageType.md b/equinix-openapi-fabric/docs/CloudRouterPackageType.md index c13d7f46..5246668c 100644 --- a/equinix-openapi-fabric/docs/CloudRouterPackageType.md +++ b/equinix-openapi-fabric/docs/CloudRouterPackageType.md @@ -28,7 +28,7 @@ Fabric Cloud Router Package Type |---- | -----| | LAB | "LAB" | | BASIC | "BASIC" | -| PRO | "PRO" | +| STANDARD | "STANDARD" | | PREMIUM | "PREMIUM" | diff --git a/equinix-openapi-fabric/docs/CloudRoutersApi.md b/equinix-openapi-fabric/docs/CloudRoutersApi.md index a0ff772f..092a087e 100644 --- a/equinix-openapi-fabric/docs/CloudRoutersApi.md +++ b/equinix-openapi-fabric/docs/CloudRoutersApi.md @@ -427,7 +427,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **routerPackageCode** | [**RouterPackageCode**](.md)| Equinix-assigned Cloud Router package identifier | [enum: LAB, BASIC, PRO, PREMIUM] | +| **routerPackageCode** | [**RouterPackageCode**](.md)| Equinix-assigned Cloud Router package identifier | [enum: LAB, BASIC, STANDARD, PREMIUM] | ### Return type diff --git a/equinix-openapi-fabric/docs/Code.md b/equinix-openapi-fabric/docs/Code.md index 17a40436..f2dcad25 100644 --- a/equinix-openapi-fabric/docs/Code.md +++ b/equinix-openapi-fabric/docs/Code.md @@ -9,7 +9,7 @@ * `BASIC` (value: `"BASIC"`) -* `PRO` (value: `"PRO"`) +* `STANDARD` (value: `"STANDARD"`) * `PREMIUM` (value: `"PREMIUM"`) diff --git a/equinix-openapi-fabric/docs/ConnectionLink.md b/equinix-openapi-fabric/docs/ConnectionLink.md deleted file mode 100644 index d6a5f179..00000000 --- a/equinix-openapi-fabric/docs/ConnectionLink.md +++ /dev/null @@ -1,23 +0,0 @@ - - -# ConnectionLink - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**href** | **URI** | | [optional] | -|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | -|**uuid** | **UUID** | | [optional] | - - - -## Enum: TypeEnum - -| Name | Value | -|---- | -----| -| EVPL_VC | "EVPL_VC" | - - - diff --git a/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md b/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md new file mode 100644 index 00000000..f7e0e4bd --- /dev/null +++ b/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md @@ -0,0 +1,47 @@ + + +# ConnectionRouteFilterData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Filter URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | +|**uuid** | **UUID** | Route Filter identifier | [optional] | +|**attachmentStatus** | [**AttachmentStatusEnum**](#AttachmentStatusEnum) | | [optional] | +|**direction** | [**DirectionEnum**](#DirectionEnum) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER | "BGP_IPv4_PREFIX_FILTER" | +| IPV6_PREFIX_FILTER | "BGP_IPv6_PREFIX_FILTER" | + + + +## Enum: AttachmentStatusEnum + +| Name | Value | +|---- | -----| +| ATTACHING | "ATTACHING" | +| ATTACHED | "ATTACHED" | +| DETACHED | "DETACHED" | +| DETACHING | "DETACHING" | +| FAILED | "FAILED" | + + + +## Enum: DirectionEnum + +| Name | Value | +|---- | -----| +| INBOUND | "INBOUND" | +| OUTBOUND | "OUTBOUND" | + + + diff --git a/equinix-openapi-fabric/docs/ConnectionRouteFiltersBase.md b/equinix-openapi-fabric/docs/ConnectionRouteFiltersBase.md new file mode 100644 index 00000000..5505fe4e --- /dev/null +++ b/equinix-openapi-fabric/docs/ConnectionRouteFiltersBase.md @@ -0,0 +1,22 @@ + + +# ConnectionRouteFiltersBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**direction** | [**DirectionEnum**](#DirectionEnum) | Route Filter direction to attach to a connection | [optional] | + + + +## Enum: DirectionEnum + +| Name | Value | +|---- | -----| +| INBOUND | "INBOUND" | +| OUTBOUND | "OUTBOUND" | + + + diff --git a/equinix-openapi-fabric/docs/ConnectionsApi.md b/equinix-openapi-fabric/docs/ConnectionsApi.md index 911ee21c..91585525 100644 --- a/equinix-openapi-fabric/docs/ConnectionsApi.md +++ b/equinix-openapi-fabric/docs/ConnectionsApi.md @@ -446,7 +446,7 @@ public class Example { # **validateConnections** -> ConnectionResponse validateConnections(validateConnectionRequest) +> ConnectionResponse validateConnections(validateRequest) Validate Connection @@ -472,9 +472,9 @@ public class Example { BearerAuth.setBearerToken("BEARER TOKEN"); ConnectionsApi apiInstance = new ConnectionsApi(defaultClient); - ValidateConnectionRequest validateConnectionRequest = new ValidateConnectionRequest(); // ValidateConnectionRequest | + ValidateRequest validateRequest = new ValidateRequest(); // ValidateRequest | try { - ConnectionResponse result = apiInstance.validateConnections(validateConnectionRequest); + ConnectionResponse result = apiInstance.validateConnections(validateRequest); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ConnectionsApi#validateConnections"); @@ -491,7 +491,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **validateConnectionRequest** | [**ValidateConnectionRequest**](ValidateConnectionRequest.md)| | | +| **validateRequest** | [**ValidateRequest**](ValidateRequest.md)| | | ### Return type diff --git a/equinix-openapi-fabric/docs/FabricCloudRouterCode.md b/equinix-openapi-fabric/docs/FabricCloudRouterCode.md index 26428e5b..9059c4a0 100644 --- a/equinix-openapi-fabric/docs/FabricCloudRouterCode.md +++ b/equinix-openapi-fabric/docs/FabricCloudRouterCode.md @@ -9,7 +9,7 @@ * `BASIC` (value: `"BASIC"`) -* `PRO` (value: `"PRO"`) +* `STANDARD` (value: `"STANDARD"`) * `PREMIUM` (value: `"PREMIUM"`) diff --git a/equinix-openapi-fabric/docs/GetAllConnectionRouteFiltersResponse.md b/equinix-openapi-fabric/docs/GetAllConnectionRouteFiltersResponse.md new file mode 100644 index 00000000..668064b9 --- /dev/null +++ b/equinix-openapi-fabric/docs/GetAllConnectionRouteFiltersResponse.md @@ -0,0 +1,14 @@ + + +# GetAllConnectionRouteFiltersResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<ConnectionRouteFilterData>**](ConnectionRouteFilterData.md) | List of Route Filters attached to a Connection | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/GetRouteFilterGetConnectionsResponse.md b/equinix-openapi-fabric/docs/GetRouteFilterGetConnectionsResponse.md new file mode 100644 index 00000000..65775e32 --- /dev/null +++ b/equinix-openapi-fabric/docs/GetRouteFilterGetConnectionsResponse.md @@ -0,0 +1,14 @@ + + +# GetRouteFilterGetConnectionsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteFilterConnectionsData>**](RouteFilterConnectionsData.md) | List of Connections using a Route Filter | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/PrecisionTimeServicePackagesResponse.md b/equinix-openapi-fabric/docs/GetRouteFilterRulesResponse.md similarity index 52% rename from equinix-openapi-fabric/docs/PrecisionTimeServicePackagesResponse.md rename to equinix-openapi-fabric/docs/GetRouteFilterRulesResponse.md index aee17ebd..4ff2875e 100644 --- a/equinix-openapi-fabric/docs/PrecisionTimeServicePackagesResponse.md +++ b/equinix-openapi-fabric/docs/GetRouteFilterRulesResponse.md @@ -1,15 +1,14 @@ -# PrecisionTimeServicePackagesResponse +# GetRouteFilterRulesResponse -Precision Packages ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**pagination** | [**Pagination**](Pagination.md) | | [optional] | -|**data** | [**List<PackageResponse>**](PackageResponse.md) | Data returned from the API call | [optional] | +|**data** | [**List<RouteFilterRulesData>**](RouteFilterRulesData.md) | List of Route Filter Rules | [optional] | diff --git a/equinix-openapi-fabric/docs/LinkProtocol.md b/equinix-openapi-fabric/docs/LinkProtocol.md index 8d6044a0..5fbef4e7 100644 --- a/equinix-openapi-fabric/docs/LinkProtocol.md +++ b/equinix-openapi-fabric/docs/LinkProtocol.md @@ -22,6 +22,7 @@ Connection link protocol Configuration |**vlanCTagMin** | **Integer** | Outer tag Min value specified for QINQ connections | [optional] | |**vlanCTagMax** | **Integer** | Outer tag Max value specified for QINQ connections | [optional] | |**subInterface** | **Integer** | Subinterface identifier | [optional] | +|**vni** | **Integer** | Virtual Network Identifier | | |**vnid** | **Integer** | Virtual Network Identifier | | |**type5vni** | **Integer** | Type 5 VNI identifier | | diff --git a/equinix-openapi-fabric/docs/LinkProtocolType.md b/equinix-openapi-fabric/docs/LinkProtocolType.md index 16fdc484..0601937d 100644 --- a/equinix-openapi-fabric/docs/LinkProtocolType.md +++ b/equinix-openapi-fabric/docs/LinkProtocolType.md @@ -13,5 +13,7 @@ * `EVPN_VXLAN` (value: `"EVPN_VXLAN"`) +* `VXLAN` (value: `"VXLAN"`) + diff --git a/equinix-openapi-fabric/docs/LinkProtocolVxlan.md b/equinix-openapi-fabric/docs/LinkProtocolVxlan.md new file mode 100644 index 00000000..7680f8c3 --- /dev/null +++ b/equinix-openapi-fabric/docs/LinkProtocolVxlan.md @@ -0,0 +1,15 @@ + + +# LinkProtocolVxlan + +Connection link protocol configuration - VXLAN + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **LinkProtocolType** | | [optional] | +|**vni** | **Integer** | Virtual Network Identifier | | + + + diff --git a/equinix-openapi-fabric/docs/ModelInterface.md b/equinix-openapi-fabric/docs/ModelInterface.md index 378aaee7..8e9130c5 100644 --- a/equinix-openapi-fabric/docs/ModelInterface.md +++ b/equinix-openapi-fabric/docs/ModelInterface.md @@ -2,16 +2,17 @@ # ModelInterface -Virtual Device Interface Information +Interface Information ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**href** | **URI** | Virtual Interface URI | [optional] [readonly] | -|**uuid** | **UUID** | Equinix-assigned Virtual Device Interface identifier | [optional] | +|**href** | **URI** | Interface URI | [optional] [readonly] | +|**uuid** | **UUID** | Equinix-assigned Interface identifier | [optional] | |**id** | **Integer** | Interface id | [optional] | -|**type** | [**TypeEnum**](#TypeEnum) | Virtual Device Interface type | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Interface type | [optional] | +|**projectId** | **String** | Interface Project ID | [optional] | diff --git a/equinix-openapi-fabric/docs/PrecisionTimeApi.md b/equinix-openapi-fabric/docs/PrecisionTimeApi.md index f787dd2d..5593bccc 100644 --- a/equinix-openapi-fabric/docs/PrecisionTimeApi.md +++ b/equinix-openapi-fabric/docs/PrecisionTimeApi.md @@ -5,12 +5,9 @@ All URIs are relative to *https://api.equinix.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createTimeServices**](PrecisionTimeApi.md#createTimeServices) | **POST** /fabric/v4/timeServices | Create Time Service | -| [**deleteTimeServiceById**](PrecisionTimeApi.md#deleteTimeServiceById) | **DELETE** /fabric/v4/timeServices/{serviceId} | Delete Time Service | +| [**deleteTimeServiceById**](PrecisionTimeApi.md#deleteTimeServiceById) | **DELETE** /fabric/v4/timeServices/{serviceId} | Delete time service | | [**getTimeServicesById**](PrecisionTimeApi.md#getTimeServicesById) | **GET** /fabric/v4/timeServices/{serviceId} | Get Time Service | -| [**getTimeServicesConnectionsByServiceId**](PrecisionTimeApi.md#getTimeServicesConnectionsByServiceId) | **GET** /fabric/v4/timeServices/{serviceId}/connections | Get all Connections | -| [**getTimeServicesPackageByCode**](PrecisionTimeApi.md#getTimeServicesPackageByCode) | **GET** /fabric/v4/timeServicePackages/{packageCode} | Get Package by Code | -| [**getTimeServicesPackages**](PrecisionTimeApi.md#getTimeServicesPackages) | **GET** /fabric/v4/timeServicePackages | Get Packages | -| [**updateTimeServicesById**](PrecisionTimeApi.md#updateTimeServicesById) | **PATCH** /fabric/v4/timeServices/{serviceId} | Patch Time Service | +| [**updateTimeServicesById**](PrecisionTimeApi.md#updateTimeServicesById) | **PATCH** /fabric/v4/timeServices/{serviceId} | Patch time service | @@ -89,7 +86,7 @@ public class Example { # **deleteTimeServiceById** > PrecisionTimeServiceCreateResponse deleteTimeServiceById(serviceId) -Delete Time Service +Delete time service Delete EPT service by it's uuid @@ -150,7 +147,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **204** | Successful operation | - | +| **202** | Successful operation | - | | **401** | Unauthorized | - | | **403** | Forbidden | - | | **415** | Unsupported Media Type | - | @@ -221,223 +218,18 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Successful operation | - | +| **202** | Successful operation | - | | **400** | Bad request | - | | **401** | Unauthorized | - | | **403** | Forbidden | - | | **415** | Unsupported Media Type | - | | **500** | Internal server error | - | - -# **getTimeServicesConnectionsByServiceId** -> PrecisionTimeServiceConnectionsResponse getTimeServicesConnectionsByServiceId(serviceId) - -Get all Connections - -The API provides capability to get prevision timing service's details - -### Example -```java -// Import classes: -import com.equinix.openapi.fabric.ApiClient; -import com.equinix.openapi.fabric.ApiException; -import com.equinix.openapi.fabric.Configuration; -import com.equinix.openapi.fabric.auth.*; -import com.equinix.openapi.fabric.models.*; -import com.equinix.openapi.fabric.v4.api.PrecisionTimeApi; - -public class Example { - public static void main(String[] args) { - ApiClient defaultClient = Configuration.getDefaultApiClient(); - defaultClient.setBasePath("https://api.equinix.com"); - - // Configure HTTP bearer authorization: BearerAuth - HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); - BearerAuth.setBearerToken("BEARER TOKEN"); - - PrecisionTimeApi apiInstance = new PrecisionTimeApi(defaultClient); - UUID serviceId = UUID.randomUUID(); // UUID | Service UUID - try { - PrecisionTimeServiceConnectionsResponse result = apiInstance.getTimeServicesConnectionsByServiceId(serviceId); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling PrecisionTimeApi#getTimeServicesConnectionsByServiceId"); - System.err.println("Status code: " + e.getCode()); - System.err.println("Reason: " + e.getResponseBody()); - System.err.println("Response headers: " + e.getResponseHeaders()); - e.printStackTrace(); - } - } -} -``` - -### Parameters - -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **serviceId** | **UUID**| Service UUID | | - -### Return type - -[**PrecisionTimeServiceConnectionsResponse**](PrecisionTimeServiceConnectionsResponse.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** | Return Time Service Connection | - | -| **401** | Unauthorized | - | -| **403** | Forbidden | - | -| **415** | Unsupported Media Type | - | -| **500** | Internal server error | - | - - -# **getTimeServicesPackageByCode** -> PackageResponse getTimeServicesPackageByCode(packageCode) - -Get Package by Code - -The API provides capability to get timing service's package by code - -### Example -```java -// Import classes: -import com.equinix.openapi.fabric.ApiClient; -import com.equinix.openapi.fabric.ApiException; -import com.equinix.openapi.fabric.Configuration; -import com.equinix.openapi.fabric.auth.*; -import com.equinix.openapi.fabric.models.*; -import com.equinix.openapi.fabric.v4.api.PrecisionTimeApi; - -public class Example { - public static void main(String[] args) { - ApiClient defaultClient = Configuration.getDefaultApiClient(); - defaultClient.setBasePath("https://api.equinix.com"); - - // Configure HTTP bearer authorization: BearerAuth - HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); - BearerAuth.setBearerToken("BEARER TOKEN"); - - PrecisionTimeApi apiInstance = new PrecisionTimeApi(defaultClient); - String packageCode = "NTP_STANDARD"; // String | Package Code - try { - PackageResponse result = apiInstance.getTimeServicesPackageByCode(packageCode); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling PrecisionTimeApi#getTimeServicesPackageByCode"); - System.err.println("Status code: " + e.getCode()); - System.err.println("Reason: " + e.getResponseBody()); - System.err.println("Response headers: " + e.getResponseHeaders()); - e.printStackTrace(); - } - } -} -``` - -### Parameters - -| Name | Type | Description | Notes | -|------------- | ------------- | ------------- | -------------| -| **packageCode** | **String**| Package Code | [enum: NTP_STANDARD, NTP_ENTERPRISE, PTP_STANDARD, PTP_ENTERPRISE] | - -### Return type - -[**PackageResponse**](PackageResponse.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 | - | -| **415** | Unsupported Media Type | - | -| **500** | Internal server error | - | - - -# **getTimeServicesPackages** -> PrecisionTimeServicePackagesResponse getTimeServicesPackages() - -Get Packages - -The API provides capability to get timing service's packages - -### Example -```java -// Import classes: -import com.equinix.openapi.fabric.ApiClient; -import com.equinix.openapi.fabric.ApiException; -import com.equinix.openapi.fabric.Configuration; -import com.equinix.openapi.fabric.auth.*; -import com.equinix.openapi.fabric.models.*; -import com.equinix.openapi.fabric.v4.api.PrecisionTimeApi; - -public class Example { - public static void main(String[] args) { - ApiClient defaultClient = Configuration.getDefaultApiClient(); - defaultClient.setBasePath("https://api.equinix.com"); - - // Configure HTTP bearer authorization: BearerAuth - HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); - BearerAuth.setBearerToken("BEARER TOKEN"); - - PrecisionTimeApi apiInstance = new PrecisionTimeApi(defaultClient); - try { - PrecisionTimeServicePackagesResponse result = apiInstance.getTimeServicesPackages(); - System.out.println(result); - } catch (ApiException e) { - System.err.println("Exception when calling PrecisionTimeApi#getTimeServicesPackages"); - System.err.println("Status code: " + e.getCode()); - System.err.println("Reason: " + e.getResponseBody()); - System.err.println("Response headers: " + e.getResponseHeaders()); - e.printStackTrace(); - } - } -} -``` - -### Parameters -This endpoint does not need any parameter. - -### Return type - -[**PrecisionTimeServicePackagesResponse**](PrecisionTimeServicePackagesResponse.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 | - | -| **415** | Unsupported Media Type | - | -| **500** | Internal server error | - | - # **updateTimeServicesById** > PrecisionTimeServiceCreateResponse updateTimeServicesById(serviceId, precisionTimeChangeOperation) -Patch Time Service +Patch time service The API provides capability to update timing service @@ -500,7 +292,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Successful operation | - | +| **202** | Successful operation | - | | **400** | Bad request | - | | **401** | Unauthorized | - | | **403** | Forbidden | - | diff --git a/equinix-openapi-fabric/docs/PrecisionTimeServiceConnectionsResponse.md b/equinix-openapi-fabric/docs/PrecisionTimeServiceConnectionsResponse.md deleted file mode 100644 index 0dfa37e8..00000000 --- a/equinix-openapi-fabric/docs/PrecisionTimeServiceConnectionsResponse.md +++ /dev/null @@ -1,15 +0,0 @@ - - -# PrecisionTimeServiceConnectionsResponse - -EPT service instance's L2 connections - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**pagination** | [**Pagination**](Pagination.md) | | [optional] | -|**data** | [**List<ConnectionLink>**](ConnectionLink.md) | Data returned from the API call | [optional] | - - - diff --git a/equinix-openapi-fabric/docs/RouteFilterChangeData.md b/equinix-openapi-fabric/docs/RouteFilterChangeData.md new file mode 100644 index 00000000..eb4f2b31 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterChangeData.md @@ -0,0 +1,46 @@ + + +# RouteFilterChangeData + +Current state of latest Route Filter change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**status** | [**StatusEnum**](#StatusEnum) | Current outcome of the change flow | [optional] | +|**createdBy** | **String** | Created by User Key | [optional] | +|**createdDateTime** | **OffsetDateTime** | Set when change flow starts | [optional] | +|**updatedBy** | **String** | Updated by User Key | [optional] | +|**updatedDateTime** | **OffsetDateTime** | Set when change object is updated | [optional] | +|**information** | **String** | Additional information | [optional] | +|**data** | [**RouteFiltersChangeOperation**](RouteFiltersChangeOperation.md) | | [optional] | +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Filter Change URI | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| REQUESTED | "REQUESTED" | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_UPDATE | "BGP_IPv4_PREFIX_FILTER_UPDATE" | +| IPV4_PREFIX_FILTER_CREATION | "BGP_IPv4_PREFIX_FILTER_CREATION" | +| IPV4_PREFIX_FILTER_DELETION | "BGP_IPv4_PREFIX_FILTER_DELETION" | +| IPV6_PREFIX_FILTER_UPDATE | "BGP_IPv6_PREFIX_FILTER_UPDATE" | +| IPV6_PREFIX_FILTER_CREATION | "BGP_IPv6_PREFIX_FILTER_CREATION" | +| IPV6_PREFIX_FILTER_DELETION | "BGP_IPv6_PREFIX_FILTER_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md new file mode 100644 index 00000000..79219c99 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md @@ -0,0 +1,15 @@ + + +# RouteFilterChangeDataResponse + +List of Route Filter changes + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteFilterChangeData>**](RouteFilterChangeData.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterChangePrefixMatch.md b/equinix-openapi-fabric/docs/RouteFilterChangePrefixMatch.md new file mode 100644 index 00000000..7b89ba82 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterChangePrefixMatch.md @@ -0,0 +1,16 @@ + + +# RouteFilterChangePrefixMatch + +Route Filter Rule change operation data + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**op** | **String** | Handy shortcut for operation name | | +|**path** | **String** | path to change | | +|**value** | **Object** | new value for updated parameter | | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md b/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md new file mode 100644 index 00000000..e5d644f1 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md @@ -0,0 +1,16 @@ + + +# RouteFilterConnectionsData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Connection URI | [optional] | +|**type** | **ConnectionType** | | [optional] | +|**uuid** | **UUID** | Route Filter identifier | [optional] | +|**name** | **String** | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesApi.md b/equinix-openapi-fabric/docs/RouteFilterRulesApi.md new file mode 100644 index 00000000..a24aa19d --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesApi.md @@ -0,0 +1,695 @@ +# RouteFilterRulesApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createRouteFilterRule**](RouteFilterRulesApi.md#createRouteFilterRule) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Create RFRule | +| [**createRouteFilterRulesInBulk**](RouteFilterRulesApi.md#createRouteFilterRulesInBulk) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk | Bulk RFRules | +| [**deleteRouteFilterRuleByUuid**](RouteFilterRulesApi.md#deleteRouteFilterRuleByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | DeleteRFRule | +| [**getRouteFilterRuleByUuid**](RouteFilterRulesApi.md#getRouteFilterRuleByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | GetRFRule By UUID | +| [**getRouteFilterRuleChangeByUuid**](RouteFilterRulesApi.md#getRouteFilterRuleChangeByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId} | Get Change By ID | +| [**getRouteFilterRuleChanges**](RouteFilterRulesApi.md#getRouteFilterRuleChanges) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes | Get All Changes | +| [**getRouteFilterRules**](RouteFilterRulesApi.md#getRouteFilterRules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | GetRFRules | +| [**patchRouteFilterRuleByUuid**](RouteFilterRulesApi.md#patchRouteFilterRuleByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | PatchRFilterRule | +| [**replaceRouteFilterRuleByUuid**](RouteFilterRulesApi.md#replaceRouteFilterRuleByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | ReplaceRFRule | + + + +# **createRouteFilterRule** +> RouteFilterRulesData createRouteFilterRule(routeFilterId, routeFilterRulesBase) + +Create RFRule + +This API provides capability to create a Route Filter Rule + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + RouteFilterRulesBase routeFilterRulesBase = new RouteFilterRulesBase(); // RouteFilterRulesBase | + try { + RouteFilterRulesData result = apiInstance.createRouteFilterRule(routeFilterId, routeFilterRulesBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#createRouteFilterRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRulesBase** | [**RouteFilterRulesBase**](RouteFilterRulesBase.md)| | | + +### Return type + +[**RouteFilterRulesData**](RouteFilterRulesData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter Rule ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **createRouteFilterRulesInBulk** +> GetRouteFilterRulesResponse createRouteFilterRulesInBulk(routeFilterId, routeFilterRulesPostRequest) + +Bulk RFRules + +This API provides capability to create bulk route filter rules + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + RouteFilterRulesPostRequest routeFilterRulesPostRequest = new RouteFilterRulesPostRequest(); // RouteFilterRulesPostRequest | + try { + GetRouteFilterRulesResponse result = apiInstance.createRouteFilterRulesInBulk(routeFilterId, routeFilterRulesPostRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#createRouteFilterRulesInBulk"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRulesPostRequest** | [**RouteFilterRulesPostRequest**](RouteFilterRulesPostRequest.md)| | | + +### Return type + +[**GetRouteFilterRulesResponse**](GetRouteFilterRulesResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | + + +# **deleteRouteFilterRuleByUuid** +> RouteFilterRulesData deleteRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId) + +DeleteRFRule + +This API provides capability to delete a Route Filter Rule + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + try { + RouteFilterRulesData result = apiInstance.deleteRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#deleteRouteFilterRuleByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | + +### Return type + +[**RouteFilterRulesData**](RouteFilterRulesData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteFilterRuleByUuid** +> RouteFilterRulesData getRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId) + +GetRFRule By UUID + +This API provides capability to view a Route Filter Rule by UUID + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + try { + RouteFilterRulesData result = apiInstance.getRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#getRouteFilterRuleByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | + +### Return type + +[**RouteFilterRulesData**](RouteFilterRulesData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteFilterRuleChangeByUuid** +> RouteFilterRulesChangeData getRouteFilterRuleChangeByUuid(routeFilterId, routeFilterRuleId, changeId) + +Get Change By ID + +This API provides capability to retrieve a specific Route Filter Rule's Changes + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + UUID changeId = UUID.randomUUID(); // UUID | Route Filter Rule Change UUID + try { + RouteFilterRulesChangeData result = apiInstance.getRouteFilterRuleChangeByUuid(routeFilterId, routeFilterRuleId, changeId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#getRouteFilterRuleChangeByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | +| **changeId** | **UUID**| Route Filter Rule Change UUID | | + +### Return type + +[**RouteFilterRulesChangeData**](RouteFilterRulesChangeData.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** | Fabric Route Filter Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteFilterRuleChanges** +> RouteFilterRulesChangeDataResponse getRouteFilterRuleChanges(routeFilterId, routeFilterRuleId, offset, limit) + +Get All Changes + +This API provides capability to retrieve all of a Route Filter Rule's Changes + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + RouteFilterRulesChangeDataResponse result = apiInstance.getRouteFilterRuleChanges(routeFilterId, routeFilterRuleId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#getRouteFilterRuleChanges"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**RouteFilterRulesChangeDataResponse**](RouteFilterRulesChangeDataResponse.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** | Fabric Route Filter Rule Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteFilterRules** +> GetRouteFilterRulesResponse getRouteFilterRules(routeFilterId, offset, limit) + +GetRFRules + +This API provides capability to get all Route Filters Rules for Fabric + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + GetRouteFilterRulesResponse result = apiInstance.getRouteFilterRules(routeFilterId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#getRouteFilterRules"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**GetRouteFilterRulesResponse**](GetRouteFilterRulesResponse.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 | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter Rule ID Not Found | - | +| **500** | Internal server error | - | + + +# **patchRouteFilterRuleByUuid** +> RouteFiltersData patchRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch) + +PatchRFilterRule + +This API provides capability to partially update a Route Filter Rule + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + List routeFilterChangePrefixMatch = Arrays.asList(); // List | + try { + RouteFiltersData result = apiInstance.patchRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#patchRouteFilterRuleByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | +| **routeFilterChangePrefixMatch** | [**List<RouteFilterChangePrefixMatch>**](RouteFilterChangePrefixMatch.md)| | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **replaceRouteFilterRuleByUuid** +> RouteFilterRulesData replaceRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterRulesBase) + +ReplaceRFRule + +This API provides capability to replace a Route Filter Rule completely + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String routeFilterRuleId = "routeFilterRuleId_example"; // String | Route Filter Rules Id + RouteFilterRulesBase routeFilterRulesBase = new RouteFilterRulesBase(); // RouteFilterRulesBase | + try { + RouteFilterRulesData result = apiInstance.replaceRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterRulesBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#replaceRouteFilterRuleByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRuleId** | **String**| Route Filter Rules Id | | +| **routeFilterRulesBase** | [**RouteFilterRulesBase**](RouteFilterRulesBase.md)| | | + +### Return type + +[**RouteFilterRulesData**](RouteFilterRulesData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesBase.md b/equinix-openapi-fabric/docs/RouteFilterRulesBase.md new file mode 100644 index 00000000..90f70cee --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesBase.md @@ -0,0 +1,16 @@ + + +# RouteFilterRulesBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided Route Filter Rule description | [optional] | +|**prefix** | **String** | | [optional] | +|**prefixMatch** | **String** | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChange.md b/equinix-openapi-fabric/docs/RouteFilterRulesChange.md new file mode 100644 index 00000000..3d3f02c2 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChange.md @@ -0,0 +1,29 @@ + + +# RouteFilterRulesChange + +Current state of latest Route Filter Rule change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Filter Change URI | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE" | +| IPV4_PREFIX_FILTER_RULE_CREATION | "BGP_IPv4_PREFIX_FILTER_RULE_CREATION" | +| IPV4_PREFIX_FILTER_RULE_DELETION | "BGP_IPv4_PREFIX_FILTER_RULE_DELETION" | +| IPV6_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE" | +| IPV6_PREFIX_FILTER_RULE_CREATION | "BGP_IPv6_PREFIX_FILTER_RULE_CREATION" | +| IPV6_PREFIX_FILTER_RULE_DELETION | "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md new file mode 100644 index 00000000..86c304ad --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md @@ -0,0 +1,45 @@ + + +# RouteFilterRulesChangeData + +Current state of latest Route Filter Rules change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**status** | [**StatusEnum**](#StatusEnum) | Current outcome of the change flow | [optional] | +|**createdBy** | **String** | Created by User Key | [optional] | +|**createdDateTime** | **OffsetDateTime** | Set when change flow starts | [optional] | +|**updatedBy** | **String** | Updated by User Key | [optional] | +|**updatedDateTime** | **OffsetDateTime** | Set when change object is updated | [optional] | +|**data** | [**RouteFilterRulesChangeOperation**](RouteFilterRulesChangeOperation.md) | | [optional] | +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Filter Change URI | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| REQUESTED | "REQUESTED" | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE" | +| IPV4_PREFIX_FILTER_RULE_CREATION | "BGP_IPv4_PREFIX_FILTER_RULE_CREATION" | +| IPV4_PREFIX_FILTER_RULE_DELETION | "BGP_IPv4_PREFIX_FILTER_RULE_DELETION" | +| IPV6_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE" | +| IPV6_PREFIX_FILTER_RULE_CREATION | "BGP_IPv6_PREFIX_FILTER_RULE_CREATION" | +| IPV6_PREFIX_FILTER_RULE_DELETION | "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md new file mode 100644 index 00000000..a22551b4 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md @@ -0,0 +1,15 @@ + + +# RouteFilterRulesChangeDataResponse + +List of Route Filter Rule changes + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteFilterRulesChangeData>**](RouteFilterRulesChangeData.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md new file mode 100644 index 00000000..1df4e5f1 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md @@ -0,0 +1,40 @@ + + +# RouteFilterRulesChangeOperation + +Route Filter change operation data + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | name of route filter rule | | +|**description** | **String** | cust provided description | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | type of filter rule | | +|**prefix** | **String** | given prefix (does not change) | | +|**action** | [**ActionEnum**](#ActionEnum) | change to be made | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE" | +| IPV4_PREFIX_FILTER_RULE_CREATION | "BGP_IPv4_PREFIX_FILTER_RULE_CREATION" | +| IPV4_PREFIX_FILTER_RULE_DELETION | "BGP_IPv4_PREFIX_FILTER_RULE_DELETION" | +| IPV6_PREFIX_FILTER_RULE_UPDATE | "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE" | +| IPV6_PREFIX_FILTER_RULE_CREATION | "BGP_IPv6_PREFIX_FILTER_RULE_CREATION" | +| IPV6_PREFIX_FILTER_RULE_DELETION | "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" | + + + +## Enum: ActionEnum + +| Name | Value | +|---- | -----| +| PERMIT | "PERMIT" | +| DENY | "DENY" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesData.md b/equinix-openapi-fabric/docs/RouteFilterRulesData.md new file mode 100644 index 00000000..b67140ad --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesData.md @@ -0,0 +1,40 @@ + + +# RouteFilterRulesData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Filter Rules URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | +|**uuid** | **UUID** | Route Filter Rule identifier | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided Route Filter Rule description | [optional] | +|**prefixMatch** | **String** | prefix matching operator | [optional] | +|**change** | [**RouteFilterRulesChange**](RouteFilterRulesChange.md) | | [optional] | +|**action** | [**ActionEnum**](#ActionEnum) | | [optional] | +|**prefix** | **String** | | [optional] | +|**changelog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_RULE | "BGP_IPv4_PREFIX_FILTER_RULE" | +| IPV6_PREFIX_FILTER_RULE | "BGP_IPv6_PREFIX_FILTER_RULE" | + + + +## Enum: ActionEnum + +| Name | Value | +|---- | -----| +| PERMIT | "PERMIT" | +| DENY | "DENY" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesPostRequest.md b/equinix-openapi-fabric/docs/RouteFilterRulesPostRequest.md new file mode 100644 index 00000000..94a5c10f --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterRulesPostRequest.md @@ -0,0 +1,14 @@ + + +# RouteFilterRulesPostRequest + +Create Route Filter Rule POST request + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<RouteFilterRulesBase>**](RouteFilterRulesBase.md) | Route Filter Rule configuration | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterState.md b/equinix-openapi-fabric/docs/RouteFilterState.md new file mode 100644 index 00000000..0ce46dd6 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFilterState.md @@ -0,0 +1,23 @@ + + +# RouteFilterState + +## Enum + + +* `PROVISIONING` (value: `"PROVISIONING"`) + +* `REPROVISIONING` (value: `"REPROVISIONING"`) + +* `DEPROVISIONING` (value: `"DEPROVISIONING"`) + +* `PROVISIONED` (value: `"PROVISIONED"`) + +* `DEPROVISIONED` (value: `"DEPROVISIONED"`) + +* `NOT_PROVISIONED` (value: `"NOT_PROVISIONED"`) + +* `NOT_DEPROVISIONED` (value: `"NOT_DEPROVISIONED"`) + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersApi.md b/equinix-openapi-fabric/docs/RouteFiltersApi.md new file mode 100644 index 00000000..4dd26f15 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersApi.md @@ -0,0 +1,912 @@ +# RouteFiltersApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**attachConnectionRouteFilter**](RouteFiltersApi.md#attachConnectionRouteFilter) | **PUT** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Attach Route Filter | +| [**createRouteFilter**](RouteFiltersApi.md#createRouteFilter) | **POST** /fabric/v4/routeFilters | Create Route Filters | +| [**deleteRouteFilterByUuid**](RouteFiltersApi.md#deleteRouteFilterByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId} | Delete Route Filter | +| [**detachConnectionRouteFilter**](RouteFiltersApi.md#detachConnectionRouteFilter) | **DELETE** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Detach Route Filter | +| [**getConnectionRouteFilterByUuid**](RouteFiltersApi.md#getConnectionRouteFilterByUuid) | **GET** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Get Route Filter | +| [**getConnectionRouteFilters**](RouteFiltersApi.md#getConnectionRouteFilters) | **GET** /fabric/v4/connections/{connectionId}/routeFilters | Get All RouteFilters | +| [**getRouteFilterByUuid**](RouteFiltersApi.md#getRouteFilterByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId} | Get Filter By UUID | +| [**getRouteFilterChangeByUuid**](RouteFiltersApi.md#getRouteFilterChangeByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes/{changeId} | Get Change By ID | +| [**getRouteFilterChanges**](RouteFiltersApi.md#getRouteFilterChanges) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes | Get All Changes | +| [**getRouteFilterConnections**](RouteFiltersApi.md#getRouteFilterConnections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get Connections | +| [**patchRouteFilterByUuid**](RouteFiltersApi.md#patchRouteFilterByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter | +| [**replaceRouteFilterByUuid**](RouteFiltersApi.md#replaceRouteFilterByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId} | Replace Route Filter | + + + +# **attachConnectionRouteFilter** +> ConnectionRouteFilterData attachConnectionRouteFilter(routeFilterId, connectionId, connectionRouteFiltersBase) + +Attach Route Filter + +This API provides capability to attach a Route Filter to a Connection + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String connectionId = "connectionId_example"; // String | Connection Id + ConnectionRouteFiltersBase connectionRouteFiltersBase = new ConnectionRouteFiltersBase(); // ConnectionRouteFiltersBase | + try { + ConnectionRouteFilterData result = apiInstance.attachConnectionRouteFilter(routeFilterId, connectionId, connectionRouteFiltersBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#attachConnectionRouteFilter"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **connectionId** | **String**| Connection Id | | +| **connectionRouteFiltersBase** | [**ConnectionRouteFiltersBase**](ConnectionRouteFiltersBase.md)| | | + +### Return type + +[**ConnectionRouteFilterData**](ConnectionRouteFilterData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **createRouteFilter** +> RouteFiltersData createRouteFilter(routeFiltersBase) + +Create Route Filters + +This API provides capability to create a Route Filter + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + RouteFiltersBase routeFiltersBase = new RouteFiltersBase(); // RouteFiltersBase | + try { + RouteFiltersData result = apiInstance.createRouteFilter(routeFiltersBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#createRouteFilter"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFiltersBase** | [**RouteFiltersBase**](RouteFiltersBase.md)| | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **deleteRouteFilterByUuid** +> RouteFiltersData deleteRouteFilterByUuid(routeFilterId) + +Delete Route Filter + +This API provides capability to delete a Route Filter + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + try { + RouteFiltersData result = apiInstance.deleteRouteFilterByUuid(routeFilterId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#deleteRouteFilterByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **detachConnectionRouteFilter** +> ConnectionRouteFilterData detachConnectionRouteFilter(routeFilterId, connectionId) + +Detach Route Filter + +This API provides capability to detach a Route Filter from a Connection + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String connectionId = "connectionId_example"; // String | Connection Id + try { + ConnectionRouteFilterData result = apiInstance.detachConnectionRouteFilter(routeFilterId, connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#detachConnectionRouteFilter"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**ConnectionRouteFilterData**](ConnectionRouteFilterData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getConnectionRouteFilterByUuid** +> ConnectionRouteFilterData getConnectionRouteFilterByUuid(routeFilterId, connectionId) + +Get Route Filter + +This API provides capability to view a specific Route Filter attached to a Connection + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + String connectionId = "connectionId_example"; // String | Connection Id + try { + ConnectionRouteFilterData result = apiInstance.getConnectionRouteFilterByUuid(routeFilterId, connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getConnectionRouteFilterByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**ConnectionRouteFilterData**](ConnectionRouteFilterData.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 | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getConnectionRouteFilters** +> GetAllConnectionRouteFiltersResponse getConnectionRouteFilters(connectionId) + +Get All RouteFilters + +This API provides capability to view all Route Filters attached to a Connection + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String connectionId = "connectionId_example"; // String | Connection Id + try { + GetAllConnectionRouteFiltersResponse result = apiInstance.getConnectionRouteFilters(connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getConnectionRouteFilters"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**GetAllConnectionRouteFiltersResponse**](GetAllConnectionRouteFiltersResponse.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 | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteFilterByUuid** +> RouteFiltersData getRouteFilterByUuid(routeFilterId) + +Get Filter By UUID + +This API provides capability to view a Route Filter by UUID + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + try { + RouteFiltersData result = apiInstance.getRouteFilterByUuid(routeFilterId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getRouteFilterByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.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 | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteFilterChangeByUuid** +> RouteFilterChangeData getRouteFilterChangeByUuid(routeFilterId, changeId) + +Get Change By ID + +This API provides capability to retrieve a specific Route Filter's Changes + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + UUID changeId = UUID.randomUUID(); // UUID | Routing Protocol Change UUID + try { + RouteFilterChangeData result = apiInstance.getRouteFilterChangeByUuid(routeFilterId, changeId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getRouteFilterChangeByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **changeId** | **UUID**| Routing Protocol Change UUID | | + +### Return type + +[**RouteFilterChangeData**](RouteFilterChangeData.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** | Fabric Route Filter Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteFilterChanges** +> RouteFilterChangeDataResponse getRouteFilterChanges(routeFilterId, offset, limit) + +Get All Changes + +This API provides capability to retrieve all of a Route Filter's Changes + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + RouteFilterChangeDataResponse result = apiInstance.getRouteFilterChanges(routeFilterId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getRouteFilterChanges"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**RouteFilterChangeDataResponse**](RouteFilterChangeDataResponse.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** | Fabric Route Filter Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteFilterConnections** +> GetRouteFilterGetConnectionsResponse getRouteFilterConnections(routeFilterId) + +Get Connections + +This API provides capability to view all Connections using the Route Filter + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + try { + GetRouteFilterGetConnectionsResponse result = apiInstance.getRouteFilterConnections(routeFilterId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#getRouteFilterConnections"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | + +### Return type + +[**GetRouteFilterGetConnectionsResponse**](GetRouteFilterGetConnectionsResponse.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 | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **patchRouteFilterByUuid** +> RouteFiltersData patchRouteFilterByUuid(routeFilterId, connectionChangeOperation) + +Patch Route Filter + +This API provides capability to partially update a Route Filter + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + List connectionChangeOperation = Arrays.asList(); // List | + try { + RouteFiltersData result = apiInstance.patchRouteFilterByUuid(routeFilterId, connectionChangeOperation); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#patchRouteFilterByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **connectionChangeOperation** | [**List<ConnectionChangeOperation>**](ConnectionChangeOperation.md)| | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **replaceRouteFilterByUuid** +> RouteFiltersData replaceRouteFilterByUuid(routeFilterId, routeFiltersBase) + +Replace Route Filter + +This API provides capability to replace a Route Filter completely + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + RouteFiltersBase routeFiltersBase = new RouteFiltersBase(); // RouteFiltersBase | + try { + RouteFiltersData result = apiInstance.replaceRouteFilterByUuid(routeFilterId, routeFiltersBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#replaceRouteFilterByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFiltersBase** | [**RouteFiltersBase**](RouteFiltersBase.md)| | | + +### Return type + +[**RouteFiltersData**](RouteFiltersData.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **202** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/equinix-openapi-fabric/docs/RouteFiltersBase.md b/equinix-openapi-fabric/docs/RouteFiltersBase.md new file mode 100644 index 00000000..e10d9d38 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersBase.md @@ -0,0 +1,26 @@ + + +# RouteFiltersBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided connection description | [optional] | +|**project** | [**Project**](Project.md) | | [optional] | +|**notifications** | [**List<SimplifiedNotification>**](SimplifiedNotification.md) | Preferences for notifications on route filter configuration or status changes | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER | "BGP_IPv4_PREFIX_FILTER" | +| IPV6_PREFIX_FILTER | "BGP_IPv6_PREFIX_FILTER" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersChange.md b/equinix-openapi-fabric/docs/RouteFiltersChange.md new file mode 100644 index 00000000..44ccc348 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersChange.md @@ -0,0 +1,29 @@ + + +# RouteFiltersChange + +Current state of latest Route Filter change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Filter Change URI | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER_UPDATE | "BGP_IPv4_PREFIX_FILTER_UPDATE" | +| IPV4_PREFIX_FILTER_CREATION | "BGP_IPv4_PREFIX_FILTER_CREATION" | +| IPV4_PREFIX_FILTER_DELETION | "BGP_IPv4_PREFIX_FILTER_DELETION" | +| IPV6_PREFIX_FILTER_UPDATE | "BGP_IPv6_PREFIX_FILTER_UPDATE" | +| IPV6_PREFIX_FILTER_CREATION | "BGP_IPv6_PREFIX_FILTER_CREATION" | +| IPV6_PREFIX_FILTER_DELETION | "BGP_IPv6_PREFIX_FILTER_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md b/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md new file mode 100644 index 00000000..8072e21c --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md @@ -0,0 +1,26 @@ + + +# RouteFiltersChangeOperation + +Route Filter change operation data + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**op** | [**OpEnum**](#OpEnum) | Handy shortcut for operation name | | +|**path** | **String** | path inside document leading to updated parameter | | +|**value** | [**RouteFiltersBase**](RouteFiltersBase.md) | | | + + + +## Enum: OpEnum + +| Name | Value | +|---- | -----| +| ADD | "add" | +| REPLACE | "replace" | +| REMOVE | "remove" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersData.md b/equinix-openapi-fabric/docs/RouteFiltersData.md new file mode 100644 index 00000000..17ba8c0c --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersData.md @@ -0,0 +1,42 @@ + + +# RouteFiltersData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Filter URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | +|**uuid** | **UUID** | Route Filter identifier | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided connection description | [optional] | +|**state** | **RouteFilterState** | | [optional] | +|**change** | [**RouteFiltersChange**](RouteFiltersChange.md) | | [optional] | +|**notMatchedRuleAction** | [**NotMatchedRuleActionEnum**](#NotMatchedRuleActionEnum) | | [optional] | +|**connectionsCount** | **Integer** | | [optional] | +|**project** | [**RouteFiltersDataProject**](RouteFiltersDataProject.md) | | [optional] | +|**notifications** | [**List<SimplifiedNotification>**](SimplifiedNotification.md) | Preferences for notifications on route filter configuration or status changes | [optional] | +|**changelog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_FILTER | "BGP_IPv4_PREFIX_FILTER" | +| IPV6_PREFIX_FILTER | "BGP_IPv6_PREFIX_FILTER" | + + + +## Enum: NotMatchedRuleActionEnum + +| Name | Value | +|---- | -----| +| ALLOW | "ALLOW" | +| DENY | "DENY" | + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersDataProject.md b/equinix-openapi-fabric/docs/RouteFiltersDataProject.md new file mode 100644 index 00000000..e5f409c0 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersDataProject.md @@ -0,0 +1,14 @@ + + +# RouteFiltersDataProject + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**projectId** | **String** | Subscriber-assigned project ID | | +|**href** | **URI** | Project URI | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFiltersDataProjectAllOf.md b/equinix-openapi-fabric/docs/RouteFiltersDataProjectAllOf.md new file mode 100644 index 00000000..527ad650 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteFiltersDataProjectAllOf.md @@ -0,0 +1,13 @@ + + +# RouteFiltersDataProjectAllOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Project URI | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouterPackageCode.md b/equinix-openapi-fabric/docs/RouterPackageCode.md index 0a701412..b274e1e6 100644 --- a/equinix-openapi-fabric/docs/RouterPackageCode.md +++ b/equinix-openapi-fabric/docs/RouterPackageCode.md @@ -9,7 +9,7 @@ * `BASIC` (value: `"BASIC"`) -* `PRO` (value: `"PRO"`) +* `STANDARD` (value: `"STANDARD"`) * `PREMIUM` (value: `"PREMIUM"`) diff --git a/equinix-openapi-fabric/docs/RoutingProtocolsApi.md b/equinix-openapi-fabric/docs/RoutingProtocolsApi.md index 4dd70d55..b9206b52 100644 --- a/equinix-openapi-fabric/docs/RoutingProtocolsApi.md +++ b/equinix-openapi-fabric/docs/RoutingProtocolsApi.md @@ -937,7 +937,7 @@ public class Example { # **validateRoutingProtocol** -> ValidateSubnetResponse validateRoutingProtocol(routerId, validateSubnetRequest) +> ValidateSubnetResponse validateRoutingProtocol(routerId, validateRequest) Validate Subnet @@ -964,9 +964,9 @@ public class Example { RoutingProtocolsApi apiInstance = new RoutingProtocolsApi(defaultClient); UUID routerId = UUID.randomUUID(); // UUID | Cloud Router UUID - ValidateSubnetRequest validateSubnetRequest = new ValidateSubnetRequest(); // ValidateSubnetRequest | + ValidateRequest validateRequest = new ValidateRequest(); // ValidateRequest | try { - ValidateSubnetResponse result = apiInstance.validateRoutingProtocol(routerId, validateSubnetRequest); + ValidateSubnetResponse result = apiInstance.validateRoutingProtocol(routerId, validateRequest); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling RoutingProtocolsApi#validateRoutingProtocol"); @@ -984,7 +984,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **routerId** | **UUID**| Cloud Router UUID | | -| **validateSubnetRequest** | [**ValidateSubnetRequest**](ValidateSubnetRequest.md)| | | +| **validateRequest** | [**ValidateRequest**](ValidateRequest.md)| | | ### Return type diff --git a/equinix-openapi-fabric/docs/ServiceMetro.md b/equinix-openapi-fabric/docs/ServiceMetro.md index 264eb490..bb2ead67 100644 --- a/equinix-openapi-fabric/docs/ServiceMetro.md +++ b/equinix-openapi-fabric/docs/ServiceMetro.md @@ -9,6 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**code** | **String** | metro code | [optional] | |**name** | **String** | metro name | [optional] | +|**vcBandwidthMax** | **Integer** | max VC speed supported in Mbps | [optional] | |**ibxs** | **List<String>** | | [optional] | |**inTrail** | **Boolean** | | [optional] | |**displayName** | **String** | service metro display name | [optional] | diff --git a/equinix-openapi-fabric/docs/ServiceMetros.md b/equinix-openapi-fabric/docs/ServiceMetros.md new file mode 100644 index 00000000..61907aab --- /dev/null +++ b/equinix-openapi-fabric/docs/ServiceMetros.md @@ -0,0 +1,15 @@ + + +# ServiceMetros + +Service Profile Metros + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<ServiceMetro>**](ServiceMetro.md) | | [optional] | +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/ServiceProfilesApi.md b/equinix-openapi-fabric/docs/ServiceProfilesApi.md index 4771089a..63641f3f 100644 --- a/equinix-openapi-fabric/docs/ServiceProfilesApi.md +++ b/equinix-openapi-fabric/docs/ServiceProfilesApi.md @@ -7,6 +7,7 @@ All URIs are relative to *https://api.equinix.com* | [**createServiceProfile**](ServiceProfilesApi.md#createServiceProfile) | **POST** /fabric/v4/serviceProfiles | Create Profile | | [**deleteServiceProfileByUuid**](ServiceProfilesApi.md#deleteServiceProfileByUuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile | | [**getServiceProfileByUuid**](ServiceProfilesApi.md#getServiceProfileByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile | +| [**getServiceProfileMetrosByUuid**](ServiceProfilesApi.md#getServiceProfileMetrosByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros | | [**getServiceProfiles**](ServiceProfilesApi.md#getServiceProfiles) | **GET** /fabric/v4/serviceProfiles | Get all Profiles | | [**putServiceProfileByUuid**](ServiceProfilesApi.md#putServiceProfileByUuid) | **PUT** /fabric/v4/serviceProfiles/{serviceProfileId} | Replace Profile | | [**searchServiceProfiles**](ServiceProfilesApi.md#searchServiceProfiles) | **POST** /fabric/v4/serviceProfiles/search | Profile Search | @@ -229,6 +230,81 @@ public class Example { | **403** | Forbidden | - | | **500** | Internal Server Error | - | + +# **getServiceProfileMetrosByUuid** +> ServiceMetros getServiceProfileMetrosByUuid(serviceProfileId, offset, limit) + +Get Profile Metros + +Get service profile metros by UUID. + +### Example +```java +// Import classes: +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.auth.*; +import com.equinix.openapi.fabric.models.*; +import com.equinix.openapi.fabric.v4.api.ServiceProfilesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + ServiceProfilesApi apiInstance = new ServiceProfilesApi(defaultClient); + UUID serviceProfileId = UUID.randomUUID(); // UUID | Service Profile UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + ServiceMetros result = apiInstance.getServiceProfileMetrosByUuid(serviceProfileId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServiceProfilesApi#getServiceProfileMetrosByUuid"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serviceProfileId** | **UUID**| Service Profile UUID | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**ServiceMetros**](ServiceMetros.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 | +|-------------|-------------|------------------| +| **200** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **500** | Internal Server Error | - | + # **getServiceProfiles** > ServiceProfiles getServiceProfiles(offset, limit, viewPoint) diff --git a/equinix-openapi-fabric/docs/ValidateConnectionRequest.md b/equinix-openapi-fabric/docs/ValidateRequest.md similarity index 56% rename from equinix-openapi-fabric/docs/ValidateConnectionRequest.md rename to equinix-openapi-fabric/docs/ValidateRequest.md index dacd18d1..6d0e4088 100644 --- a/equinix-openapi-fabric/docs/ValidateConnectionRequest.md +++ b/equinix-openapi-fabric/docs/ValidateRequest.md @@ -1,6 +1,6 @@ -# ValidateConnectionRequest +# ValidateRequest Validate connection auth api key or vlan @@ -8,7 +8,7 @@ Validate connection auth api key or vlan | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**filter** | [**ValidateSubnetRequestFilter**](ValidateSubnetRequestFilter.md) | | [optional] | +|**filter** | [**ValidateRequestFilter**](ValidateRequestFilter.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/ValidateRequestFilter.md b/equinix-openapi-fabric/docs/ValidateRequestFilter.md new file mode 100644 index 00000000..12b97dec --- /dev/null +++ b/equinix-openapi-fabric/docs/ValidateRequestFilter.md @@ -0,0 +1,14 @@ + + +# ValidateRequestFilter + +Filters + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<ValidateRequestFilterAnd>**](ValidateRequestFilterAnd.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/ValidateSubnetRequestFilterAnd.md b/equinix-openapi-fabric/docs/ValidateRequestFilterAnd.md similarity index 90% rename from equinix-openapi-fabric/docs/ValidateSubnetRequestFilterAnd.md rename to equinix-openapi-fabric/docs/ValidateRequestFilterAnd.md index e3b02de4..1184dc66 100644 --- a/equinix-openapi-fabric/docs/ValidateSubnetRequestFilterAnd.md +++ b/equinix-openapi-fabric/docs/ValidateRequestFilterAnd.md @@ -1,6 +1,6 @@ -# ValidateSubnetRequestFilterAnd +# ValidateRequestFilterAnd ## Properties diff --git a/equinix-openapi-fabric/docs/ValidateSubnetRequest.md b/equinix-openapi-fabric/docs/ValidateSubnetRequest.md deleted file mode 100644 index 47722b61..00000000 --- a/equinix-openapi-fabric/docs/ValidateSubnetRequest.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ValidateSubnetRequest - -Validate subnet for Routing Protocol Configuration - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**filter** | [**ValidateSubnetRequestFilter**](ValidateSubnetRequestFilter.md) | | [optional] | - - - diff --git a/equinix-openapi-fabric/docs/ValidateSubnetRequestFilter.md b/equinix-openapi-fabric/docs/ValidateSubnetRequestFilter.md deleted file mode 100644 index cd307b1a..00000000 --- a/equinix-openapi-fabric/docs/ValidateSubnetRequestFilter.md +++ /dev/null @@ -1,14 +0,0 @@ - - -# ValidateSubnetRequestFilter - -Filters - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**and** | [**List<ValidateSubnetRequestFilterAnd>**](ValidateSubnetRequestFilterAnd.md) | | [optional] | - - - diff --git a/equinix-openapi-fabric/docs/VirtualNetwork.md b/equinix-openapi-fabric/docs/VirtualNetwork.md new file mode 100644 index 00000000..b36f216c --- /dev/null +++ b/equinix-openapi-fabric/docs/VirtualNetwork.md @@ -0,0 +1,15 @@ + + +# VirtualNetwork + +Virtual Network Information + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | The Canonical URL at which the resource resides. | [optional] [readonly] | +|**uuid** | **UUID** | Equinix-assigned Virtual Network identifier | [optional] | + + + diff --git a/equinix-openapi-fabric/pom.xml b/equinix-openapi-fabric/pom.xml index 10fbcf64..1484171d 100644 --- a/equinix-openapi-fabric/pom.xml +++ b/equinix-openapi-fabric/pom.xml @@ -5,9 +5,9 @@ equinix-openapi-fabric jar equinix-openapi-fabric - 0.4.0 + 0.5.0 https://github.com/openapitools/openapi-generator - Equinix Fabric API Specification 4.10 generated SDK + Equinix Fabric API Specification 4.11 generated SDK scm:git:git@github.com:openapitools/openapi-generator.git scm:git:git@github.com:openapitools/openapi-generator.git diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/ApiClient.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/ApiClient.java index f62576ff..f51e73a8 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/ApiClient.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/ApiClient.java @@ -142,7 +142,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/0.4.0/java"); + setUserAgent("OpenAPI-Generator/0.5.0/java"); authentications = new HashMap(); } diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/JSON.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/JSON.java index 9107506f..4615c139 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/JSON.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/JSON.java @@ -65,6 +65,7 @@ public Class getClas classByDiscriminatorValue.put("EVPN_VXLAN", com.equinix.openapi.fabric.v4.model.LinkProtocolEvpnVxlan.class); classByDiscriminatorValue.put("QINQ", com.equinix.openapi.fabric.v4.model.LinkProtocolQinq.class); classByDiscriminatorValue.put("UNTAGGED", com.equinix.openapi.fabric.v4.model.LinkProtocolUntagged.class); + classByDiscriminatorValue.put("VXLAN", com.equinix.openapi.fabric.v4.model.LinkProtocolVxlan.class); classByDiscriminatorValue.put("LinkProtocol", com.equinix.openapi.fabric.v4.model.LinkProtocol.class); return getClassByDiscriminator(classByDiscriminatorValue, getDiscriminatorValue(readElement, "type")); @@ -166,11 +167,12 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionChangeOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionCompanyProfile.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionInvitation.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionLink.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionPostRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRedundancy.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRouteFilterData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRouteFiltersBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRoutingProtocolPostRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionSearchResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionSide.CustomTypeAdapterFactory()); @@ -187,7 +189,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.FabricConnectionUuid.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.FilterBody.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GeoCoordinates.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetAllConnectionRouteFiltersResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetRouteFilterGetConnectionsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetRouteFilterRulesResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.HealthResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.IpBlockPrice.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Ipv4.CustomTypeAdapterFactory()); @@ -204,6 +209,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.LinkProtocolResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.LinkProtocolServiceToken.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.LinkProtocolUntagged.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.LinkProtocolVxlan.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.MarketingInfo.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Md5.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Metrics.CustomTypeAdapterFactory()); @@ -253,9 +259,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PortTether.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PortV4SearchRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeChangeOperation.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceConnectionsResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceCreateResponse.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServicePackagesResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Price.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PriceCharge.CustomTypeAdapterFactory()); @@ -268,6 +272,23 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PtpAdvanceConfiguration.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RemoveOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ReplaceOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterChangeData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterChangeDataResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterChangePrefixMatch.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterConnectionsData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesChange.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeDataResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFilterRulesPostRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersChange.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersChangeOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersDataProject.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteFiltersDataProjectAllOf.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteTableEntry.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteTableEntryConnection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteTableEntryFilter.CustomTypeAdapterFactory()); @@ -293,6 +314,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.SearchRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.SearchResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ServiceMetro.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ServiceMetros.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ServiceProfile.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ServiceProfileAccessPointCOLO.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ServiceProfileAccessPointType.CustomTypeAdapterFactory()); @@ -331,10 +353,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Statistics.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.SubInterface.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TopUtilizedStatistics.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateConnectionRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateSubnetRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilter.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilterAnd.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateRequestFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateRequestFilterAnd.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ValidateSubnetResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualConnectionPrice.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualConnectionPriceASide.CustomTypeAdapterFactory()); @@ -347,6 +368,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualConnectionPriceZSideAccessPointBridgePackage.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualConnectionPriceZSideAccessPointProfile.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualDevice.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualNetwork.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualPortConfiguration.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualPortLocation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.VirtualPortPrice.CustomTypeAdapterFactory()); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ConnectionsApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ConnectionsApi.java index a025fb83..c9bd0a8b 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ConnectionsApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ConnectionsApi.java @@ -36,7 +36,7 @@ import com.equinix.openapi.fabric.v4.model.ConnectionSearchResponse; import com.equinix.openapi.fabric.v4.model.Error; import com.equinix.openapi.fabric.v4.model.SearchRequest; -import com.equinix.openapi.fabric.v4.model.ValidateConnectionRequest; +import com.equinix.openapi.fabric.v4.model.ValidateRequest; import java.lang.reflect.Type; import java.util.ArrayList; @@ -942,7 +942,7 @@ public okhttp3.Call updateConnectionByUuidAsync(String connectionId, List 400 Bad request - */ - public okhttp3.Call validateConnectionsCall(ValidateConnectionRequest validateConnectionRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call validateConnectionsCall(ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -967,7 +967,7 @@ public okhttp3.Call validateConnectionsCall(ValidateConnectionRequest validateCo basePath = null; } - Object localVarPostBody = validateConnectionRequest; + Object localVarPostBody = validateRequest; // create path and map variables String localVarPath = "/fabric/v4/connections/validate"; @@ -999,20 +999,20 @@ public okhttp3.Call validateConnectionsCall(ValidateConnectionRequest validateCo } @SuppressWarnings("rawtypes") - private okhttp3.Call validateConnectionsValidateBeforeCall(ValidateConnectionRequest validateConnectionRequest, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'validateConnectionRequest' is set - if (validateConnectionRequest == null) { - throw new ApiException("Missing the required parameter 'validateConnectionRequest' when calling validateConnections(Async)"); + private okhttp3.Call validateConnectionsValidateBeforeCall(ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'validateRequest' is set + if (validateRequest == null) { + throw new ApiException("Missing the required parameter 'validateRequest' when calling validateConnections(Async)"); } - return validateConnectionsCall(validateConnectionRequest, _callback); + return validateConnectionsCall(validateRequest, _callback); } /** * Validate Connection * This API provides capability to validate by auth key - * @param validateConnectionRequest (required) + * @param validateRequest (required) * @return ConnectionResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1022,15 +1022,15 @@ private okhttp3.Call validateConnectionsValidateBeforeCall(ValidateConnectionReq 400 Bad request - */ - public ConnectionResponse validateConnections(ValidateConnectionRequest validateConnectionRequest) throws ApiException { - ApiResponse localVarResp = validateConnectionsWithHttpInfo(validateConnectionRequest); + public ConnectionResponse validateConnections(ValidateRequest validateRequest) throws ApiException { + ApiResponse localVarResp = validateConnectionsWithHttpInfo(validateRequest); return localVarResp.getData(); } /** * Validate Connection * This API provides capability to validate by auth key - * @param validateConnectionRequest (required) + * @param validateRequest (required) * @return ApiResponse<ConnectionResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1040,8 +1040,8 @@ public ConnectionResponse validateConnections(ValidateConnectionRequest validate 400 Bad request - */ - public ApiResponse validateConnectionsWithHttpInfo(ValidateConnectionRequest validateConnectionRequest) throws ApiException { - okhttp3.Call localVarCall = validateConnectionsValidateBeforeCall(validateConnectionRequest, null); + public ApiResponse validateConnectionsWithHttpInfo(ValidateRequest validateRequest) throws ApiException { + okhttp3.Call localVarCall = validateConnectionsValidateBeforeCall(validateRequest, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1049,7 +1049,7 @@ public ApiResponse validateConnectionsWithHttpInfo(ValidateC /** * Validate Connection (asynchronously) * This API provides capability to validate by auth key - * @param validateConnectionRequest (required) + * @param validateRequest (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -1060,9 +1060,9 @@ public ApiResponse validateConnectionsWithHttpInfo(ValidateC 400 Bad request - */ - public okhttp3.Call validateConnectionsAsync(ValidateConnectionRequest validateConnectionRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call validateConnectionsAsync(ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = validateConnectionsValidateBeforeCall(validateConnectionRequest, _callback); + okhttp3.Call localVarCall = validateConnectionsValidateBeforeCall(validateRequest, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApi.java index c2097455..330d235c 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApi.java @@ -27,11 +27,8 @@ import com.equinix.openapi.fabric.v4.model.Error; -import com.equinix.openapi.fabric.v4.model.PackageResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeChangeOperation; -import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceConnectionsResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceCreateResponse; -import com.equinix.openapi.fabric.v4.model.PrecisionTimeServicePackagesResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceRequest; import java.util.UUID; @@ -231,7 +228,7 @@ public okhttp3.Call createTimeServicesAsync(PrecisionTimeServiceRequest precisio * @http.response.details - + @@ -295,7 +292,7 @@ private okhttp3.Call deleteTimeServiceByIdValidateBeforeCall(UUID serviceId, fin } /** - * Delete Time Service + * Delete time service * Delete EPT service by it's uuid * @param serviceId Service UUID (required) * @return PrecisionTimeServiceCreateResponse @@ -303,7 +300,7 @@ private okhttp3.Call deleteTimeServiceByIdValidateBeforeCall(UUID serviceId, fin * @http.response.details
Status Code Description Response Headers
204 Successful operation -
202 Successful operation -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
- + @@ -316,7 +313,7 @@ public PrecisionTimeServiceCreateResponse deleteTimeServiceById(UUID serviceId) } /** - * Delete Time Service + * Delete time service * Delete EPT service by it's uuid * @param serviceId Service UUID (required) * @return ApiResponse<PrecisionTimeServiceCreateResponse> @@ -324,7 +321,7 @@ public PrecisionTimeServiceCreateResponse deleteTimeServiceById(UUID serviceId) * @http.response.details
Status Code Description Response Headers
204 Successful operation -
202 Successful operation -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
- + @@ -338,7 +335,7 @@ public ApiResponse deleteTimeServiceByIdWith } /** - * Delete Time Service (asynchronously) + * Delete time service (asynchronously) * Delete EPT service by it's uuid * @param serviceId Service UUID (required) * @param _callback The callback to be executed when the API call finishes @@ -347,7 +344,7 @@ public ApiResponse deleteTimeServiceByIdWith * @http.response.details
Status Code Description Response Headers
204 Successful operation -
202 Successful operation -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
- + @@ -370,7 +367,7 @@ public okhttp3.Call deleteTimeServiceByIdAsync(UUID serviceId, final ApiCallback * @http.response.details
Status Code Description Response Headers
204 Successful operation -
202 Successful operation -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
- + @@ -443,7 +440,7 @@ private okhttp3.Call getTimeServicesByIdValidateBeforeCall(UUID serviceId, final * @http.response.details
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
- + @@ -465,7 +462,7 @@ public PrecisionTimeServiceCreateResponse getTimeServicesById(UUID serviceId) th * @http.response.details
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
- + @@ -489,7 +486,7 @@ public ApiResponse getTimeServicesByIdWithHt * @http.response.details
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
- + @@ -504,397 +501,6 @@ public okhttp3.Call getTimeServicesByIdAsync(UUID serviceId, final ApiCallback

-

- - - - - -
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
Status Code Description Response Headers
200 Return Time Service Connection -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesConnectionsByServiceIdCall(UUID serviceId, final ApiCallback _callback) throws ApiException { - String basePath = null; - // Operation Servers - String[] localBasePaths = new String[] { }; - - // Determine Base Path to Use - if (localCustomBaseUrl != null){ - basePath = localCustomBaseUrl; - } else if ( localBasePaths.length > 0 ) { - basePath = localBasePaths[localHostIndex]; - } else { - basePath = null; - } - - Object localVarPostBody = null; - - // create path and map variables - String localVarPath = "/fabric/v4/timeServices/{serviceId}/connections" - .replace("{" + "serviceId" + "}", localVarApiClient.escapeString(serviceId.toString())); - - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - - final String[] localVarAccepts = { - "application/json" - }; - final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); - if (localVarAccept != null) { - localVarHeaderParams.put("Accept", localVarAccept); - } - - final String[] localVarContentTypes = { - }; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - if (localVarContentType != null) { - localVarHeaderParams.put("Content-Type", localVarContentType); - } - - String[] localVarAuthNames = new String[] { "BearerAuth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); - } - - @SuppressWarnings("rawtypes") - private okhttp3.Call getTimeServicesConnectionsByServiceIdValidateBeforeCall(UUID serviceId, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'serviceId' is set - if (serviceId == null) { - throw new ApiException("Missing the required parameter 'serviceId' when calling getTimeServicesConnectionsByServiceId(Async)"); - } - - return getTimeServicesConnectionsByServiceIdCall(serviceId, _callback); - - } - - /** - * Get all Connections - * The API provides capability to get prevision timing service's details - * @param serviceId Service UUID (required) - * @return PrecisionTimeServiceConnectionsResponse - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - - - -
Status Code Description Response Headers
200 Return Time Service Connection -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
- */ - public PrecisionTimeServiceConnectionsResponse getTimeServicesConnectionsByServiceId(UUID serviceId) throws ApiException { - ApiResponse localVarResp = getTimeServicesConnectionsByServiceIdWithHttpInfo(serviceId); - return localVarResp.getData(); - } - - /** - * Get all Connections - * The API provides capability to get prevision timing service's details - * @param serviceId Service UUID (required) - * @return ApiResponse<PrecisionTimeServiceConnectionsResponse> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - - - -
Status Code Description Response Headers
200 Return Time Service Connection -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
- */ - public ApiResponse getTimeServicesConnectionsByServiceIdWithHttpInfo(UUID serviceId) throws ApiException { - okhttp3.Call localVarCall = getTimeServicesConnectionsByServiceIdValidateBeforeCall(serviceId, null); - Type localVarReturnType = new TypeToken(){}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * Get all Connections (asynchronously) - * The API provides capability to get prevision timing service's details - * @param serviceId Service UUID (required) - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - * @http.response.details - - - - - - - -
Status Code Description Response Headers
200 Return Time Service Connection -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesConnectionsByServiceIdAsync(UUID serviceId, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = getTimeServicesConnectionsByServiceIdValidateBeforeCall(serviceId, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } - /** - * Build call for getTimeServicesPackageByCode - * @param packageCode Package Code (required) - * @param _callback Callback for upload/download progress - * @return Call to execute - * @throws ApiException If fail to serialize the request body object - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesPackageByCodeCall(String packageCode, final ApiCallback _callback) throws ApiException { - String basePath = null; - // Operation Servers - String[] localBasePaths = new String[] { }; - - // Determine Base Path to Use - if (localCustomBaseUrl != null){ - basePath = localCustomBaseUrl; - } else if ( localBasePaths.length > 0 ) { - basePath = localBasePaths[localHostIndex]; - } else { - basePath = null; - } - - Object localVarPostBody = null; - - // create path and map variables - String localVarPath = "/fabric/v4/timeServicePackages/{packageCode}" - .replace("{" + "packageCode" + "}", localVarApiClient.escapeString(packageCode.toString())); - - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - - final String[] localVarAccepts = { - "application/json" - }; - final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); - if (localVarAccept != null) { - localVarHeaderParams.put("Accept", localVarAccept); - } - - final String[] localVarContentTypes = { - }; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - if (localVarContentType != null) { - localVarHeaderParams.put("Content-Type", localVarContentType); - } - - String[] localVarAuthNames = new String[] { "BearerAuth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); - } - - @SuppressWarnings("rawtypes") - private okhttp3.Call getTimeServicesPackageByCodeValidateBeforeCall(String packageCode, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'packageCode' is set - if (packageCode == null) { - throw new ApiException("Missing the required parameter 'packageCode' when calling getTimeServicesPackageByCode(Async)"); - } - - return getTimeServicesPackageByCodeCall(packageCode, _callback); - - } - - /** - * Get Package by Code - * The API provides capability to get timing service's package by code - * @param packageCode Package Code (required) - * @return PackageResponse - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public PackageResponse getTimeServicesPackageByCode(String packageCode) throws ApiException { - ApiResponse localVarResp = getTimeServicesPackageByCodeWithHttpInfo(packageCode); - return localVarResp.getData(); - } - - /** - * Get Package by Code - * The API provides capability to get timing service's package by code - * @param packageCode Package Code (required) - * @return ApiResponse<PackageResponse> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public ApiResponse getTimeServicesPackageByCodeWithHttpInfo(String packageCode) throws ApiException { - okhttp3.Call localVarCall = getTimeServicesPackageByCodeValidateBeforeCall(packageCode, null); - Type localVarReturnType = new TypeToken(){}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * Get Package by Code (asynchronously) - * The API provides capability to get timing service's package by code - * @param packageCode Package Code (required) - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesPackageByCodeAsync(String packageCode, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = getTimeServicesPackageByCodeValidateBeforeCall(packageCode, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } - /** - * Build call for getTimeServicesPackages - * @param _callback Callback for upload/download progress - * @return Call to execute - * @throws ApiException If fail to serialize the request body object - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesPackagesCall(final ApiCallback _callback) throws ApiException { - String basePath = null; - // Operation Servers - String[] localBasePaths = new String[] { }; - - // Determine Base Path to Use - if (localCustomBaseUrl != null){ - basePath = localCustomBaseUrl; - } else if ( localBasePaths.length > 0 ) { - basePath = localBasePaths[localHostIndex]; - } else { - basePath = null; - } - - Object localVarPostBody = null; - - // create path and map variables - String localVarPath = "/fabric/v4/timeServicePackages"; - - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - - final String[] localVarAccepts = { - "application/json" - }; - final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); - if (localVarAccept != null) { - localVarHeaderParams.put("Accept", localVarAccept); - } - - final String[] localVarContentTypes = { - }; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - if (localVarContentType != null) { - localVarHeaderParams.put("Content-Type", localVarContentType); - } - - String[] localVarAuthNames = new String[] { "BearerAuth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); - } - - @SuppressWarnings("rawtypes") - private okhttp3.Call getTimeServicesPackagesValidateBeforeCall(final ApiCallback _callback) throws ApiException { - return getTimeServicesPackagesCall(_callback); - - } - - /** - * Get Packages - * The API provides capability to get timing service's packages - * @return PrecisionTimeServicePackagesResponse - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public PrecisionTimeServicePackagesResponse getTimeServicesPackages() throws ApiException { - ApiResponse localVarResp = getTimeServicesPackagesWithHttpInfo(); - return localVarResp.getData(); - } - - /** - * Get Packages - * The API provides capability to get timing service's packages - * @return ApiResponse<PrecisionTimeServicePackagesResponse> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public ApiResponse getTimeServicesPackagesWithHttpInfo() throws ApiException { - okhttp3.Call localVarCall = getTimeServicesPackagesValidateBeforeCall(null); - Type localVarReturnType = new TypeToken(){}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * Get Packages (asynchronously) - * The API provides capability to get timing service's packages - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - * @http.response.details - - - - - -
Status Code Description Response Headers
200 Successful operation -
415 Unsupported Media Type -
500 Internal server error -
- */ - public okhttp3.Call getTimeServicesPackagesAsync(final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = getTimeServicesPackagesValidateBeforeCall(_callback); - Type localVarReturnType = new TypeToken(){}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } /** * Build call for updateTimeServicesById * @param serviceId Service UUID (required) @@ -905,7 +511,7 @@ public okhttp3.Call getTimeServicesPackagesAsync(final ApiCallback Status Code Description Response Headers - 200 Successful operation - + 202 Successful operation - 400 Bad request - 401 Unauthorized - 403 Forbidden - @@ -976,7 +582,7 @@ private okhttp3.Call updateTimeServicesByIdValidateBeforeCall(UUID serviceId, Li } /** - * Patch Time Service + * Patch time service * The API provides capability to update timing service * @param serviceId Service UUID (required) * @param precisionTimeChangeOperation (required) @@ -985,7 +591,7 @@ private okhttp3.Call updateTimeServicesByIdValidateBeforeCall(UUID serviceId, Li * @http.response.details - + @@ -999,7 +605,7 @@ public PrecisionTimeServiceCreateResponse updateTimeServicesById(UUID serviceId, } /** - * Patch Time Service + * Patch time service * The API provides capability to update timing service * @param serviceId Service UUID (required) * @param precisionTimeChangeOperation (required) @@ -1008,7 +614,7 @@ public PrecisionTimeServiceCreateResponse updateTimeServicesById(UUID serviceId, * @http.response.details
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
- + @@ -1023,7 +629,7 @@ public ApiResponse updateTimeServicesByIdWit } /** - * Patch Time Service (asynchronously) + * Patch time service (asynchronously) * The API provides capability to update timing service * @param serviceId Service UUID (required) * @param precisionTimeChangeOperation (required) @@ -1033,7 +639,7 @@ public ApiResponse updateTimeServicesByIdWit * @http.response.details
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
- + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApi.java new file mode 100644 index 00000000..6b7ff2f9 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApi.java @@ -0,0 +1,1513 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.api; + +import com.equinix.openapi.fabric.ApiCallback; +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.ApiResponse; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.Pair; +import com.equinix.openapi.fabric.ProgressRequestBody; +import com.equinix.openapi.fabric.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.equinix.openapi.fabric.v4.model.Error; +import com.equinix.openapi.fabric.v4.model.GetRouteFilterRulesResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangePrefixMatch; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesBase; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeData; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesData; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesPostRequest; +import com.equinix.openapi.fabric.v4.model.RouteFiltersData; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.ws.rs.core.GenericType; + +public class RouteFilterRulesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RouteFilterRulesApi() { + this(Configuration.getDefaultApiClient()); + } + + public RouteFilterRulesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createRouteFilterRule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesBase (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details +
Status Code Description Response Headers
200 Successful operation -
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
+ + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteFilterRuleCall(String routeFilterId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFilterRulesBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createRouteFilterRuleValidateBeforeCall(String routeFilterId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling createRouteFilterRule(Async)"); + } + + // verify the required parameter 'routeFilterRulesBase' is set + if (routeFilterRulesBase == null) { + throw new ApiException("Missing the required parameter 'routeFilterRulesBase' when calling createRouteFilterRule(Async)"); + } + + return createRouteFilterRuleCall(routeFilterId, routeFilterRulesBase, _callback); + + } + + /** + * Create RFRule + * This API provides capability to create a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesBase (required) + * @return RouteFilterRulesData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFilterRulesData createRouteFilterRule(String routeFilterId, RouteFilterRulesBase routeFilterRulesBase) throws ApiException { + ApiResponse localVarResp = createRouteFilterRuleWithHttpInfo(routeFilterId, routeFilterRulesBase); + return localVarResp.getData(); + } + + /** + * Create RFRule + * This API provides capability to create a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesBase (required) + * @return ApiResponse<RouteFilterRulesData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createRouteFilterRuleWithHttpInfo(String routeFilterId, RouteFilterRulesBase routeFilterRulesBase) throws ApiException { + okhttp3.Call localVarCall = createRouteFilterRuleValidateBeforeCall(routeFilterId, routeFilterRulesBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create RFRule (asynchronously) + * This API provides capability to create a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesBase (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteFilterRuleAsync(String routeFilterId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteFilterRuleValidateBeforeCall(routeFilterId, routeFilterRulesBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createRouteFilterRulesInBulk + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesPostRequest (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + +
Status Code Description Response Headers
202 Successful operation -
+ */ + public okhttp3.Call createRouteFilterRulesInBulkCall(String routeFilterId, RouteFilterRulesPostRequest routeFilterRulesPostRequest, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFilterRulesPostRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createRouteFilterRulesInBulkValidateBeforeCall(String routeFilterId, RouteFilterRulesPostRequest routeFilterRulesPostRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling createRouteFilterRulesInBulk(Async)"); + } + + // verify the required parameter 'routeFilterRulesPostRequest' is set + if (routeFilterRulesPostRequest == null) { + throw new ApiException("Missing the required parameter 'routeFilterRulesPostRequest' when calling createRouteFilterRulesInBulk(Async)"); + } + + return createRouteFilterRulesInBulkCall(routeFilterId, routeFilterRulesPostRequest, _callback); + + } + + /** + * Bulk RFRules + * This API provides capability to create bulk route filter rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesPostRequest (required) + * @return GetRouteFilterRulesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + +
Status Code Description Response Headers
202 Successful operation -
+ */ + public GetRouteFilterRulesResponse createRouteFilterRulesInBulk(String routeFilterId, RouteFilterRulesPostRequest routeFilterRulesPostRequest) throws ApiException { + ApiResponse localVarResp = createRouteFilterRulesInBulkWithHttpInfo(routeFilterId, routeFilterRulesPostRequest); + return localVarResp.getData(); + } + + /** + * Bulk RFRules + * This API provides capability to create bulk route filter rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesPostRequest (required) + * @return ApiResponse<GetRouteFilterRulesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + +
Status Code Description Response Headers
202 Successful operation -
+ */ + public ApiResponse createRouteFilterRulesInBulkWithHttpInfo(String routeFilterId, RouteFilterRulesPostRequest routeFilterRulesPostRequest) throws ApiException { + okhttp3.Call localVarCall = createRouteFilterRulesInBulkValidateBeforeCall(routeFilterId, routeFilterRulesPostRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk RFRules (asynchronously) + * This API provides capability to create bulk route filter rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesPostRequest (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + +
Status Code Description Response Headers
202 Successful operation -
+ */ + public okhttp3.Call createRouteFilterRulesInBulkAsync(String routeFilterId, RouteFilterRulesPostRequest routeFilterRulesPostRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteFilterRulesInBulkValidateBeforeCall(routeFilterId, routeFilterRulesPostRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteRouteFilterRuleByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteFilterRuleByUuidCall(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteRouteFilterRuleByUuidValidateBeforeCall(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling deleteRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling deleteRouteFilterRuleByUuid(Async)"); + } + + return deleteRouteFilterRuleByUuidCall(routeFilterId, routeFilterRuleId, _callback); + + } + + /** + * DeleteRFRule + * This API provides capability to delete a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @return RouteFilterRulesData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFilterRulesData deleteRouteFilterRuleByUuid(String routeFilterId, String routeFilterRuleId) throws ApiException { + ApiResponse localVarResp = deleteRouteFilterRuleByUuidWithHttpInfo(routeFilterId, routeFilterRuleId); + return localVarResp.getData(); + } + + /** + * DeleteRFRule + * This API provides capability to delete a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @return ApiResponse<RouteFilterRulesData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse deleteRouteFilterRuleByUuidWithHttpInfo(String routeFilterId, String routeFilterRuleId) throws ApiException { + okhttp3.Call localVarCall = deleteRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * DeleteRFRule (asynchronously) + * This API provides capability to delete a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteFilterRuleByUuidAsync(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterRuleByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleByUuidCall(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterRuleByUuidValidateBeforeCall(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling getRouteFilterRuleByUuid(Async)"); + } + + return getRouteFilterRuleByUuidCall(routeFilterId, routeFilterRuleId, _callback); + + } + + /** + * GetRFRule By UUID + * This API provides capability to view a Route Filter Rule by UUID + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @return RouteFilterRulesData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFilterRulesData getRouteFilterRuleByUuid(String routeFilterId, String routeFilterRuleId) throws ApiException { + ApiResponse localVarResp = getRouteFilterRuleByUuidWithHttpInfo(routeFilterId, routeFilterRuleId); + return localVarResp.getData(); + } + + /** + * GetRFRule By UUID + * This API provides capability to view a Route Filter Rule by UUID + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @return ApiResponse<RouteFilterRulesData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterRuleByUuidWithHttpInfo(String routeFilterId, String routeFilterRuleId) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * GetRFRule By UUID (asynchronously) + * This API provides capability to view a Route Filter Rule by UUID + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleByUuidAsync(String routeFilterId, String routeFilterRuleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterRuleChangeByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param changeId Route Filter Rule Change UUID (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleChangeByUuidCall(String routeFilterId, String routeFilterRuleId, UUID changeId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())) + .replace("{" + "changeId" + "}", localVarApiClient.escapeString(changeId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterRuleChangeByUuidValidateBeforeCall(String routeFilterId, String routeFilterRuleId, UUID changeId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterRuleChangeByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling getRouteFilterRuleChangeByUuid(Async)"); + } + + // verify the required parameter 'changeId' is set + if (changeId == null) { + throw new ApiException("Missing the required parameter 'changeId' when calling getRouteFilterRuleChangeByUuid(Async)"); + } + + return getRouteFilterRuleChangeByUuidCall(routeFilterId, routeFilterRuleId, changeId, _callback); + + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param changeId Route Filter Rule Change UUID (required) + * @return RouteFilterRulesChangeData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public RouteFilterRulesChangeData getRouteFilterRuleChangeByUuid(String routeFilterId, String routeFilterRuleId, UUID changeId) throws ApiException { + ApiResponse localVarResp = getRouteFilterRuleChangeByUuidWithHttpInfo(routeFilterId, routeFilterRuleId, changeId); + return localVarResp.getData(); + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param changeId Route Filter Rule Change UUID (required) + * @return ApiResponse<RouteFilterRulesChangeData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterRuleChangeByUuidWithHttpInfo(String routeFilterId, String routeFilterRuleId, UUID changeId) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterRuleChangeByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, changeId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Change By ID (asynchronously) + * This API provides capability to retrieve a specific Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param changeId Route Filter Rule Change UUID (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleChangeByUuidAsync(String routeFilterId, String routeFilterRuleId, UUID changeId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterRuleChangeByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, changeId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterRuleChanges + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleChangesCall(String routeFilterId, String routeFilterRuleId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (offset != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterRuleChangesValidateBeforeCall(String routeFilterId, String routeFilterRuleId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterRuleChanges(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling getRouteFilterRuleChanges(Async)"); + } + + return getRouteFilterRuleChangesCall(routeFilterId, routeFilterRuleId, offset, limit, _callback); + + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return RouteFilterRulesChangeDataResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public RouteFilterRulesChangeDataResponse getRouteFilterRuleChanges(String routeFilterId, String routeFilterRuleId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteFilterRuleChangesWithHttpInfo(routeFilterId, routeFilterRuleId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<RouteFilterRulesChangeDataResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterRuleChangesWithHttpInfo(String routeFilterId, String routeFilterRuleId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterRuleChangesValidateBeforeCall(routeFilterId, routeFilterRuleId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All Changes (asynchronously) + * This API provides capability to retrieve all of a Route Filter Rule's Changes + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRuleChangesAsync(String routeFilterId, String routeFilterRuleId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterRuleChangesValidateBeforeCall(routeFilterId, routeFilterRuleId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterRules + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRulesCall(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (offset != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterRulesValidateBeforeCall(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterRules(Async)"); + } + + return getRouteFilterRulesCall(routeFilterId, offset, limit, _callback); + + } + + /** + * GetRFRules + * This API provides capability to get all Route Filters Rules for Fabric + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return GetRouteFilterRulesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
500 Internal server error -
+ */ + public GetRouteFilterRulesResponse getRouteFilterRules(String routeFilterId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteFilterRulesWithHttpInfo(routeFilterId, offset, limit); + return localVarResp.getData(); + } + + /** + * GetRFRules + * This API provides capability to get all Route Filters Rules for Fabric + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<GetRouteFilterRulesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterRulesWithHttpInfo(String routeFilterId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterRulesValidateBeforeCall(routeFilterId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * GetRFRules (asynchronously) + * This API provides capability to get all Route Filters Rules for Fabric + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterRulesAsync(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterRulesValidateBeforeCall(routeFilterId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for patchRouteFilterRuleByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterChangePrefixMatch (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteFilterRuleByUuidCall(String routeFilterId, String routeFilterRuleId, List routeFilterChangePrefixMatch, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFilterChangePrefixMatch; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call patchRouteFilterRuleByUuidValidateBeforeCall(String routeFilterId, String routeFilterRuleId, List routeFilterChangePrefixMatch, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling patchRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling patchRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterChangePrefixMatch' is set + if (routeFilterChangePrefixMatch == null) { + throw new ApiException("Missing the required parameter 'routeFilterChangePrefixMatch' when calling patchRouteFilterRuleByUuid(Async)"); + } + + return patchRouteFilterRuleByUuidCall(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch, _callback); + + } + + /** + * PatchRFilterRule + * This API provides capability to partially update a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterChangePrefixMatch (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData patchRouteFilterRuleByUuid(String routeFilterId, String routeFilterRuleId, List routeFilterChangePrefixMatch) throws ApiException { + ApiResponse localVarResp = patchRouteFilterRuleByUuidWithHttpInfo(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch); + return localVarResp.getData(); + } + + /** + * PatchRFilterRule + * This API provides capability to partially update a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterChangePrefixMatch (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse patchRouteFilterRuleByUuidWithHttpInfo(String routeFilterId, String routeFilterRuleId, List routeFilterChangePrefixMatch) throws ApiException { + okhttp3.Call localVarCall = patchRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * PatchRFilterRule (asynchronously) + * This API provides capability to partially update a Route Filter Rule + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterChangePrefixMatch (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteFilterRuleByUuidAsync(String routeFilterId, String routeFilterRuleId, List routeFilterChangePrefixMatch, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for replaceRouteFilterRuleByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterRulesBase (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteFilterRuleByUuidCall(String routeFilterId, String routeFilterRuleId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFilterRulesBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "routeFilterRuleId" + "}", localVarApiClient.escapeString(routeFilterRuleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call replaceRouteFilterRuleByUuidValidateBeforeCall(String routeFilterId, String routeFilterRuleId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling replaceRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRuleId' is set + if (routeFilterRuleId == null) { + throw new ApiException("Missing the required parameter 'routeFilterRuleId' when calling replaceRouteFilterRuleByUuid(Async)"); + } + + // verify the required parameter 'routeFilterRulesBase' is set + if (routeFilterRulesBase == null) { + throw new ApiException("Missing the required parameter 'routeFilterRulesBase' when calling replaceRouteFilterRuleByUuid(Async)"); + } + + return replaceRouteFilterRuleByUuidCall(routeFilterId, routeFilterRuleId, routeFilterRulesBase, _callback); + + } + + /** + * ReplaceRFRule + * This API provides capability to replace a Route Filter Rule completely + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterRulesBase (required) + * @return RouteFilterRulesData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFilterRulesData replaceRouteFilterRuleByUuid(String routeFilterId, String routeFilterRuleId, RouteFilterRulesBase routeFilterRulesBase) throws ApiException { + ApiResponse localVarResp = replaceRouteFilterRuleByUuidWithHttpInfo(routeFilterId, routeFilterRuleId, routeFilterRulesBase); + return localVarResp.getData(); + } + + /** + * ReplaceRFRule + * This API provides capability to replace a Route Filter Rule completely + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterRulesBase (required) + * @return ApiResponse<RouteFilterRulesData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse replaceRouteFilterRuleByUuidWithHttpInfo(String routeFilterId, String routeFilterRuleId, RouteFilterRulesBase routeFilterRulesBase) throws ApiException { + okhttp3.Call localVarCall = replaceRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, routeFilterRulesBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * ReplaceRFRule (asynchronously) + * This API provides capability to replace a Route Filter Rule completely + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRuleId Route Filter Rules Id (required) + * @param routeFilterRulesBase (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteFilterRuleByUuidAsync(String routeFilterId, String routeFilterRuleId, RouteFilterRulesBase routeFilterRulesBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = replaceRouteFilterRuleByUuidValidateBeforeCall(routeFilterId, routeFilterRuleId, routeFilterRulesBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApi.java new file mode 100644 index 00000000..d6847e22 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApi.java @@ -0,0 +1,1927 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.api; + +import com.equinix.openapi.fabric.ApiCallback; +import com.equinix.openapi.fabric.ApiClient; +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.ApiResponse; +import com.equinix.openapi.fabric.Configuration; +import com.equinix.openapi.fabric.Pair; +import com.equinix.openapi.fabric.ProgressRequestBody; +import com.equinix.openapi.fabric.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.equinix.openapi.fabric.v4.model.ConnectionChangeOperation; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFilterData; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFiltersBase; +import com.equinix.openapi.fabric.v4.model.Error; +import com.equinix.openapi.fabric.v4.model.GetAllConnectionRouteFiltersResponse; +import com.equinix.openapi.fabric.v4.model.GetRouteFilterGetConnectionsResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeData; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteFiltersBase; +import com.equinix.openapi.fabric.v4.model.RouteFiltersData; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.ws.rs.core.GenericType; + +public class RouteFiltersApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RouteFiltersApi() { + this(Configuration.getDefaultApiClient()); + } + + public RouteFiltersApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for attachConnectionRouteFilter + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param connectionRouteFiltersBase (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call attachConnectionRouteFilterCall(String routeFilterId, String connectionId, ConnectionRouteFiltersBase connectionRouteFiltersBase, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = connectionRouteFiltersBase; + + // create path and map variables + String localVarPath = "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "connectionId" + "}", localVarApiClient.escapeString(connectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call attachConnectionRouteFilterValidateBeforeCall(String routeFilterId, String connectionId, ConnectionRouteFiltersBase connectionRouteFiltersBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling attachConnectionRouteFilter(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling attachConnectionRouteFilter(Async)"); + } + + // verify the required parameter 'connectionRouteFiltersBase' is set + if (connectionRouteFiltersBase == null) { + throw new ApiException("Missing the required parameter 'connectionRouteFiltersBase' when calling attachConnectionRouteFilter(Async)"); + } + + return attachConnectionRouteFilterCall(routeFilterId, connectionId, connectionRouteFiltersBase, _callback); + + } + + /** + * Attach Route Filter + * This API provides capability to attach a Route Filter to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param connectionRouteFiltersBase (required) + * @return ConnectionRouteFilterData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteFilterData attachConnectionRouteFilter(String routeFilterId, String connectionId, ConnectionRouteFiltersBase connectionRouteFiltersBase) throws ApiException { + ApiResponse localVarResp = attachConnectionRouteFilterWithHttpInfo(routeFilterId, connectionId, connectionRouteFiltersBase); + return localVarResp.getData(); + } + + /** + * Attach Route Filter + * This API provides capability to attach a Route Filter to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param connectionRouteFiltersBase (required) + * @return ApiResponse<ConnectionRouteFilterData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse attachConnectionRouteFilterWithHttpInfo(String routeFilterId, String connectionId, ConnectionRouteFiltersBase connectionRouteFiltersBase) throws ApiException { + okhttp3.Call localVarCall = attachConnectionRouteFilterValidateBeforeCall(routeFilterId, connectionId, connectionRouteFiltersBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Attach Route Filter (asynchronously) + * This API provides capability to attach a Route Filter to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param connectionRouteFiltersBase (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call attachConnectionRouteFilterAsync(String routeFilterId, String connectionId, ConnectionRouteFiltersBase connectionRouteFiltersBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = attachConnectionRouteFilterValidateBeforeCall(routeFilterId, connectionId, connectionRouteFiltersBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createRouteFilter + * @param routeFiltersBase (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteFilterCall(RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFiltersBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createRouteFilterValidateBeforeCall(RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFiltersBase' is set + if (routeFiltersBase == null) { + throw new ApiException("Missing the required parameter 'routeFiltersBase' when calling createRouteFilter(Async)"); + } + + return createRouteFilterCall(routeFiltersBase, _callback); + + } + + /** + * Create Route Filters + * This API provides capability to create a Route Filter + * @param routeFiltersBase (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData createRouteFilter(RouteFiltersBase routeFiltersBase) throws ApiException { + ApiResponse localVarResp = createRouteFilterWithHttpInfo(routeFiltersBase); + return localVarResp.getData(); + } + + /** + * Create Route Filters + * This API provides capability to create a Route Filter + * @param routeFiltersBase (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createRouteFilterWithHttpInfo(RouteFiltersBase routeFiltersBase) throws ApiException { + okhttp3.Call localVarCall = createRouteFilterValidateBeforeCall(routeFiltersBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create Route Filters (asynchronously) + * This API provides capability to create a Route Filter + * @param routeFiltersBase (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteFilterAsync(RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteFilterValidateBeforeCall(routeFiltersBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteRouteFilterByUuid + * @param routeFilterId Route Filters Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteFilterByUuidCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteRouteFilterByUuidValidateBeforeCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling deleteRouteFilterByUuid(Async)"); + } + + return deleteRouteFilterByUuidCall(routeFilterId, _callback); + + } + + /** + * Delete Route Filter + * This API provides capability to delete a Route Filter + * @param routeFilterId Route Filters Id (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData deleteRouteFilterByUuid(String routeFilterId) throws ApiException { + ApiResponse localVarResp = deleteRouteFilterByUuidWithHttpInfo(routeFilterId); + return localVarResp.getData(); + } + + /** + * Delete Route Filter + * This API provides capability to delete a Route Filter + * @param routeFilterId Route Filters Id (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse deleteRouteFilterByUuidWithHttpInfo(String routeFilterId) throws ApiException { + okhttp3.Call localVarCall = deleteRouteFilterByUuidValidateBeforeCall(routeFilterId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete Route Filter (asynchronously) + * This API provides capability to delete a Route Filter + * @param routeFilterId Route Filters Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteFilterByUuidAsync(String routeFilterId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRouteFilterByUuidValidateBeforeCall(routeFilterId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for detachConnectionRouteFilter + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call detachConnectionRouteFilterCall(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "connectionId" + "}", localVarApiClient.escapeString(connectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call detachConnectionRouteFilterValidateBeforeCall(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling detachConnectionRouteFilter(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling detachConnectionRouteFilter(Async)"); + } + + return detachConnectionRouteFilterCall(routeFilterId, connectionId, _callback); + + } + + /** + * Detach Route Filter + * This API provides capability to detach a Route Filter from a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @return ConnectionRouteFilterData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteFilterData detachConnectionRouteFilter(String routeFilterId, String connectionId) throws ApiException { + ApiResponse localVarResp = detachConnectionRouteFilterWithHttpInfo(routeFilterId, connectionId); + return localVarResp.getData(); + } + + /** + * Detach Route Filter + * This API provides capability to detach a Route Filter from a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @return ApiResponse<ConnectionRouteFilterData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse detachConnectionRouteFilterWithHttpInfo(String routeFilterId, String connectionId) throws ApiException { + okhttp3.Call localVarCall = detachConnectionRouteFilterValidateBeforeCall(routeFilterId, connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Detach Route Filter (asynchronously) + * This API provides capability to detach a Route Filter from a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call detachConnectionRouteFilterAsync(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = detachConnectionRouteFilterValidateBeforeCall(routeFilterId, connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionRouteFilterByUuid + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteFilterByUuidCall(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "connectionId" + "}", localVarApiClient.escapeString(connectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConnectionRouteFilterByUuidValidateBeforeCall(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getConnectionRouteFilterByUuid(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling getConnectionRouteFilterByUuid(Async)"); + } + + return getConnectionRouteFilterByUuidCall(routeFilterId, connectionId, _callback); + + } + + /** + * Get Route Filter + * This API provides capability to view a specific Route Filter attached to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @return ConnectionRouteFilterData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteFilterData getConnectionRouteFilterByUuid(String routeFilterId, String connectionId) throws ApiException { + ApiResponse localVarResp = getConnectionRouteFilterByUuidWithHttpInfo(routeFilterId, connectionId); + return localVarResp.getData(); + } + + /** + * Get Route Filter + * This API provides capability to view a specific Route Filter attached to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @return ApiResponse<ConnectionRouteFilterData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getConnectionRouteFilterByUuidWithHttpInfo(String routeFilterId, String connectionId) throws ApiException { + okhttp3.Call localVarCall = getConnectionRouteFilterByUuidValidateBeforeCall(routeFilterId, connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Route Filter (asynchronously) + * This API provides capability to view a specific Route Filter attached to a Connection + * @param routeFilterId Route Filters Id (required) + * @param connectionId Connection Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteFilterByUuidAsync(String routeFilterId, String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionRouteFilterByUuidValidateBeforeCall(routeFilterId, connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionRouteFilters + * @param connectionId Connection Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteFiltersCall(String connectionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/connections/{connectionId}/routeFilters" + .replace("{" + "connectionId" + "}", localVarApiClient.escapeString(connectionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getConnectionRouteFiltersValidateBeforeCall(String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling getConnectionRouteFilters(Async)"); + } + + return getConnectionRouteFiltersCall(connectionId, _callback); + + } + + /** + * Get All RouteFilters + * This API provides capability to view all Route Filters attached to a Connection + * @param connectionId Connection Id (required) + * @return GetAllConnectionRouteFiltersResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public GetAllConnectionRouteFiltersResponse getConnectionRouteFilters(String connectionId) throws ApiException { + ApiResponse localVarResp = getConnectionRouteFiltersWithHttpInfo(connectionId); + return localVarResp.getData(); + } + + /** + * Get All RouteFilters + * This API provides capability to view all Route Filters attached to a Connection + * @param connectionId Connection Id (required) + * @return ApiResponse<GetAllConnectionRouteFiltersResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getConnectionRouteFiltersWithHttpInfo(String connectionId) throws ApiException { + okhttp3.Call localVarCall = getConnectionRouteFiltersValidateBeforeCall(connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All RouteFilters (asynchronously) + * This API provides capability to view all Route Filters attached to a Connection + * @param connectionId Connection Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteFiltersAsync(String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionRouteFiltersValidateBeforeCall(connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterByUuid + * @param routeFilterId Route Filters Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterByUuidCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterByUuidValidateBeforeCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterByUuid(Async)"); + } + + return getRouteFilterByUuidCall(routeFilterId, _callback); + + } + + /** + * Get Filter By UUID + * This API provides capability to view a Route Filter by UUID + * @param routeFilterId Route Filters Id (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData getRouteFilterByUuid(String routeFilterId) throws ApiException { + ApiResponse localVarResp = getRouteFilterByUuidWithHttpInfo(routeFilterId); + return localVarResp.getData(); + } + + /** + * Get Filter By UUID + * This API provides capability to view a Route Filter by UUID + * @param routeFilterId Route Filters Id (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterByUuidWithHttpInfo(String routeFilterId) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterByUuidValidateBeforeCall(routeFilterId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Filter By UUID (asynchronously) + * This API provides capability to view a Route Filter by UUID + * @param routeFilterId Route Filters Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterByUuidAsync(String routeFilterId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterByUuidValidateBeforeCall(routeFilterId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterChangeByUuid + * @param routeFilterId Route Filters Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterChangeByUuidCall(String routeFilterId, UUID changeId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())) + .replace("{" + "changeId" + "}", localVarApiClient.escapeString(changeId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterChangeByUuidValidateBeforeCall(String routeFilterId, UUID changeId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterChangeByUuid(Async)"); + } + + // verify the required parameter 'changeId' is set + if (changeId == null) { + throw new ApiException("Missing the required parameter 'changeId' when calling getRouteFilterChangeByUuid(Async)"); + } + + return getRouteFilterChangeByUuidCall(routeFilterId, changeId, _callback); + + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @return RouteFilterChangeData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public RouteFilterChangeData getRouteFilterChangeByUuid(String routeFilterId, UUID changeId) throws ApiException { + ApiResponse localVarResp = getRouteFilterChangeByUuidWithHttpInfo(routeFilterId, changeId); + return localVarResp.getData(); + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @return ApiResponse<RouteFilterChangeData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterChangeByUuidWithHttpInfo(String routeFilterId, UUID changeId) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterChangeByUuidValidateBeforeCall(routeFilterId, changeId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Change By ID (asynchronously) + * This API provides capability to retrieve a specific Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterChangeByUuidAsync(String routeFilterId, UUID changeId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterChangeByUuidValidateBeforeCall(routeFilterId, changeId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterChanges + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterChangesCall(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/changes" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (offset != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterChangesValidateBeforeCall(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterChanges(Async)"); + } + + return getRouteFilterChangesCall(routeFilterId, offset, limit, _callback); + + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return RouteFilterChangeDataResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public RouteFilterChangeDataResponse getRouteFilterChanges(String routeFilterId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteFilterChangesWithHttpInfo(routeFilterId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<RouteFilterChangeDataResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterChangesWithHttpInfo(String routeFilterId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterChangesValidateBeforeCall(routeFilterId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All Changes (asynchronously) + * This API provides capability to retrieve all of a Route Filter's Changes + * @param routeFilterId Route Filters Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Status Code Description Response Headers
200 Fabric Route Filter Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterChangesAsync(String routeFilterId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterChangesValidateBeforeCall(routeFilterId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteFilterConnections + * @param routeFilterId Route Filters Id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterConnectionsCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/connections" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getRouteFilterConnectionsValidateBeforeCall(String routeFilterId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling getRouteFilterConnections(Async)"); + } + + return getRouteFilterConnectionsCall(routeFilterId, _callback); + + } + + /** + * Get Connections + * This API provides capability to view all Connections using the Route Filter + * @param routeFilterId Route Filters Id (required) + * @return GetRouteFilterGetConnectionsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public GetRouteFilterGetConnectionsResponse getRouteFilterConnections(String routeFilterId) throws ApiException { + ApiResponse localVarResp = getRouteFilterConnectionsWithHttpInfo(routeFilterId); + return localVarResp.getData(); + } + + /** + * Get Connections + * This API provides capability to view all Connections using the Route Filter + * @param routeFilterId Route Filters Id (required) + * @return ApiResponse<GetRouteFilterGetConnectionsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteFilterConnectionsWithHttpInfo(String routeFilterId) throws ApiException { + okhttp3.Call localVarCall = getRouteFilterConnectionsValidateBeforeCall(routeFilterId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Connections (asynchronously) + * This API provides capability to view all Connections using the Route Filter + * @param routeFilterId Route Filters Id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteFilterConnectionsAsync(String routeFilterId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteFilterConnectionsValidateBeforeCall(routeFilterId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for patchRouteFilterByUuid + * @param routeFilterId Route Filters Id (required) + * @param connectionChangeOperation (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteFilterByUuidCall(String routeFilterId, List connectionChangeOperation, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = connectionChangeOperation; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call patchRouteFilterByUuidValidateBeforeCall(String routeFilterId, List connectionChangeOperation, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling patchRouteFilterByUuid(Async)"); + } + + // verify the required parameter 'connectionChangeOperation' is set + if (connectionChangeOperation == null) { + throw new ApiException("Missing the required parameter 'connectionChangeOperation' when calling patchRouteFilterByUuid(Async)"); + } + + return patchRouteFilterByUuidCall(routeFilterId, connectionChangeOperation, _callback); + + } + + /** + * Patch Route Filter + * This API provides capability to partially update a Route Filter + * @param routeFilterId Route Filters Id (required) + * @param connectionChangeOperation (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData patchRouteFilterByUuid(String routeFilterId, List connectionChangeOperation) throws ApiException { + ApiResponse localVarResp = patchRouteFilterByUuidWithHttpInfo(routeFilterId, connectionChangeOperation); + return localVarResp.getData(); + } + + /** + * Patch Route Filter + * This API provides capability to partially update a Route Filter + * @param routeFilterId Route Filters Id (required) + * @param connectionChangeOperation (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse patchRouteFilterByUuidWithHttpInfo(String routeFilterId, List connectionChangeOperation) throws ApiException { + okhttp3.Call localVarCall = patchRouteFilterByUuidValidateBeforeCall(routeFilterId, connectionChangeOperation, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Patch Route Filter (asynchronously) + * This API provides capability to partially update a Route Filter + * @param routeFilterId Route Filters Id (required) + * @param connectionChangeOperation (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteFilterByUuidAsync(String routeFilterId, List connectionChangeOperation, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchRouteFilterByUuidValidateBeforeCall(routeFilterId, connectionChangeOperation, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for replaceRouteFilterByUuid + * @param routeFilterId Route Filters Id (required) + * @param routeFiltersBase (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteFilterByUuidCall(String routeFilterId, RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = routeFiltersBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call replaceRouteFilterByUuidValidateBeforeCall(String routeFilterId, RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling replaceRouteFilterByUuid(Async)"); + } + + // verify the required parameter 'routeFiltersBase' is set + if (routeFiltersBase == null) { + throw new ApiException("Missing the required parameter 'routeFiltersBase' when calling replaceRouteFilterByUuid(Async)"); + } + + return replaceRouteFilterByUuidCall(routeFilterId, routeFiltersBase, _callback); + + } + + /** + * Replace Route Filter + * This API provides capability to replace a Route Filter completely + * @param routeFilterId Route Filters Id (required) + * @param routeFiltersBase (required) + * @return RouteFiltersData + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFiltersData replaceRouteFilterByUuid(String routeFilterId, RouteFiltersBase routeFiltersBase) throws ApiException { + ApiResponse localVarResp = replaceRouteFilterByUuidWithHttpInfo(routeFilterId, routeFiltersBase); + return localVarResp.getData(); + } + + /** + * Replace Route Filter + * This API provides capability to replace a Route Filter completely + * @param routeFilterId Route Filters Id (required) + * @param routeFiltersBase (required) + * @return ApiResponse<RouteFiltersData> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse replaceRouteFilterByUuidWithHttpInfo(String routeFilterId, RouteFiltersBase routeFiltersBase) throws ApiException { + okhttp3.Call localVarCall = replaceRouteFilterByUuidValidateBeforeCall(routeFilterId, routeFiltersBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Replace Route Filter (asynchronously) + * This API provides capability to replace a Route Filter completely + * @param routeFilterId Route Filters Id (required) + * @param routeFiltersBase (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + + +
Status Code Description Response Headers
202 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteFilterByUuidAsync(String routeFilterId, RouteFiltersBase routeFiltersBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = replaceRouteFilterByUuidValidateBeforeCall(routeFilterId, routeFiltersBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApi.java index de203da9..08083b18 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApi.java @@ -38,7 +38,7 @@ import com.equinix.openapi.fabric.v4.model.RoutingProtocolChangeDataResponse; import com.equinix.openapi.fabric.v4.model.RoutingProtocolData; import java.util.UUID; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequest; +import com.equinix.openapi.fabric.v4.model.ValidateRequest; import com.equinix.openapi.fabric.v4.model.ValidateSubnetResponse; import java.lang.reflect.Type; @@ -2044,7 +2044,7 @@ public okhttp3.Call replaceConnectionRoutingProtocolByUuidAsync(UUID routingProt /** * Build call for validateRoutingProtocol * @param routerId Cloud Router UUID (required) - * @param validateSubnetRequest (required) + * @param validateRequest (required) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -2055,7 +2055,7 @@ public okhttp3.Call replaceConnectionRoutingProtocolByUuidAsync(UUID routingProt 400 Bad request - */ - public okhttp3.Call validateRoutingProtocolCall(UUID routerId, ValidateSubnetRequest validateSubnetRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call validateRoutingProtocolCall(UUID routerId, ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -2069,7 +2069,7 @@ public okhttp3.Call validateRoutingProtocolCall(UUID routerId, ValidateSubnetReq basePath = null; } - Object localVarPostBody = validateSubnetRequest; + Object localVarPostBody = validateRequest; // create path and map variables String localVarPath = "/fabric/v4/routers/{routerId}/validate" @@ -2102,18 +2102,18 @@ public okhttp3.Call validateRoutingProtocolCall(UUID routerId, ValidateSubnetReq } @SuppressWarnings("rawtypes") - private okhttp3.Call validateRoutingProtocolValidateBeforeCall(UUID routerId, ValidateSubnetRequest validateSubnetRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call validateRoutingProtocolValidateBeforeCall(UUID routerId, ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { // verify the required parameter 'routerId' is set if (routerId == null) { throw new ApiException("Missing the required parameter 'routerId' when calling validateRoutingProtocol(Async)"); } - // verify the required parameter 'validateSubnetRequest' is set - if (validateSubnetRequest == null) { - throw new ApiException("Missing the required parameter 'validateSubnetRequest' when calling validateRoutingProtocol(Async)"); + // verify the required parameter 'validateRequest' is set + if (validateRequest == null) { + throw new ApiException("Missing the required parameter 'validateRequest' when calling validateRoutingProtocol(Async)"); } - return validateRoutingProtocolCall(routerId, validateSubnetRequest, _callback); + return validateRoutingProtocolCall(routerId, validateRequest, _callback); } @@ -2121,7 +2121,7 @@ private okhttp3.Call validateRoutingProtocolValidateBeforeCall(UUID routerId, Va * Validate Subnet * This API provides capability to validate all subnets associated with any connection in the given FCR * @param routerId Cloud Router UUID (required) - * @param validateSubnetRequest (required) + * @param validateRequest (required) * @return ValidateSubnetResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2131,8 +2131,8 @@ private okhttp3.Call validateRoutingProtocolValidateBeforeCall(UUID routerId, Va 400 Bad request - */ - public ValidateSubnetResponse validateRoutingProtocol(UUID routerId, ValidateSubnetRequest validateSubnetRequest) throws ApiException { - ApiResponse localVarResp = validateRoutingProtocolWithHttpInfo(routerId, validateSubnetRequest); + public ValidateSubnetResponse validateRoutingProtocol(UUID routerId, ValidateRequest validateRequest) throws ApiException { + ApiResponse localVarResp = validateRoutingProtocolWithHttpInfo(routerId, validateRequest); return localVarResp.getData(); } @@ -2140,7 +2140,7 @@ public ValidateSubnetResponse validateRoutingProtocol(UUID routerId, ValidateSub * Validate Subnet * This API provides capability to validate all subnets associated with any connection in the given FCR * @param routerId Cloud Router UUID (required) - * @param validateSubnetRequest (required) + * @param validateRequest (required) * @return ApiResponse<ValidateSubnetResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2150,8 +2150,8 @@ public ValidateSubnetResponse validateRoutingProtocol(UUID routerId, ValidateSub 400 Bad request - */ - public ApiResponse validateRoutingProtocolWithHttpInfo(UUID routerId, ValidateSubnetRequest validateSubnetRequest) throws ApiException { - okhttp3.Call localVarCall = validateRoutingProtocolValidateBeforeCall(routerId, validateSubnetRequest, null); + public ApiResponse validateRoutingProtocolWithHttpInfo(UUID routerId, ValidateRequest validateRequest) throws ApiException { + okhttp3.Call localVarCall = validateRoutingProtocolValidateBeforeCall(routerId, validateRequest, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -2160,7 +2160,7 @@ public ApiResponse validateRoutingProtocolWithHttpInfo(U * Validate Subnet (asynchronously) * This API provides capability to validate all subnets associated with any connection in the given FCR * @param routerId Cloud Router UUID (required) - * @param validateSubnetRequest (required) + * @param validateRequest (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -2171,9 +2171,9 @@ public ApiResponse validateRoutingProtocolWithHttpInfo(U 400 Bad request - */ - public okhttp3.Call validateRoutingProtocolAsync(UUID routerId, ValidateSubnetRequest validateSubnetRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call validateRoutingProtocolAsync(UUID routerId, ValidateRequest validateRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = validateRoutingProtocolValidateBeforeCall(routerId, validateSubnetRequest, _callback); + okhttp3.Call localVarCall = validateRoutingProtocolValidateBeforeCall(routerId, validateRequest, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApi.java index 790de566..acf2db66 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApi.java @@ -28,6 +28,7 @@ import com.equinix.openapi.fabric.v4.model.Error; import com.equinix.openapi.fabric.v4.model.JsonPatchOperation; +import com.equinix.openapi.fabric.v4.model.ServiceMetros; import com.equinix.openapi.fabric.v4.model.ServiceProfile; import com.equinix.openapi.fabric.v4.model.ServiceProfileRequest; import com.equinix.openapi.fabric.v4.model.ServiceProfileSearchRequest; @@ -510,6 +511,162 @@ public okhttp3.Call getServiceProfileByUuidAsync(UUID serviceProfileId, String v localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getServiceProfileMetrosByUuid + * @param serviceProfileId Service Profile UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
500 Internal Server Error -
+ */ + public okhttp3.Call getServiceProfileMetrosByUuidCall(UUID serviceProfileId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/fabric/v4/serviceProfiles/{serviceProfileId}/metros" + .replace("{" + "serviceProfileId" + "}", localVarApiClient.escapeString(serviceProfileId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (offset != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("offset", offset)); + } + + if (limit != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("limit", limit)); + } + + final String[] localVarAccepts = { + "application/json; charset=UTF-8", + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getServiceProfileMetrosByUuidValidateBeforeCall(UUID serviceProfileId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serviceProfileId' is set + if (serviceProfileId == null) { + throw new ApiException("Missing the required parameter 'serviceProfileId' when calling getServiceProfileMetrosByUuid(Async)"); + } + + return getServiceProfileMetrosByUuidCall(serviceProfileId, offset, limit, _callback); + + } + + /** + * Get Profile Metros + * Get service profile metros by UUID. + * @param serviceProfileId Service Profile UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ServiceMetros + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
500 Internal Server Error -
+ */ + public ServiceMetros getServiceProfileMetrosByUuid(UUID serviceProfileId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getServiceProfileMetrosByUuidWithHttpInfo(serviceProfileId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get Profile Metros + * Get service profile metros by UUID. + * @param serviceProfileId Service Profile UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<ServiceMetros> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
500 Internal Server Error -
+ */ + public ApiResponse getServiceProfileMetrosByUuidWithHttpInfo(UUID serviceProfileId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getServiceProfileMetrosByUuidValidateBeforeCall(serviceProfileId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Profile Metros (asynchronously) + * Get service profile metros by UUID. + * @param serviceProfileId Service Profile UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
500 Internal Server Error -
+ */ + public okhttp3.Call getServiceProfileMetrosByUuidAsync(UUID serviceProfileId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getServiceProfileMetrosByUuidValidateBeforeCall(serviceProfileId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getServiceProfiles * @param offset offset (optional) diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPoint.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPoint.java index 8b42ba8a..b71389f4 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPoint.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPoint.java @@ -25,6 +25,7 @@ import com.equinix.openapi.fabric.v4.model.SimplifiedPort; import com.equinix.openapi.fabric.v4.model.SimplifiedServiceProfile; import com.equinix.openapi.fabric.v4.model.VirtualDevice; +import com.equinix.openapi.fabric.v4.model.VirtualNetwork; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -114,6 +115,10 @@ public class AccessPoint { @SerializedName(SERIALIZED_NAME_PROVIDER_CONNECTION_ID) private String providerConnectionId; + public static final String SERIALIZED_NAME_VIRTUAL_NETWORK = "virtualNetwork"; + @SerializedName(SERIALIZED_NAME_VIRTUAL_NETWORK) + private VirtualNetwork virtualNetwork; + public AccessPoint() { } @@ -424,6 +429,28 @@ public void setProviderConnectionId(String providerConnectionId) { this.providerConnectionId = providerConnectionId; } + + public AccessPoint virtualNetwork(VirtualNetwork virtualNetwork) { + + this.virtualNetwork = virtualNetwork; + return this; + } + + /** + * Get virtualNetwork + * @return virtualNetwork + **/ + @javax.annotation.Nullable + + public VirtualNetwork getVirtualNetwork() { + return virtualNetwork; + } + + + public void setVirtualNetwork(VirtualNetwork virtualNetwork) { + this.virtualNetwork = virtualNetwork; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -492,13 +519,14 @@ public boolean equals(Object o) { Objects.equals(this.sellerRegion, accessPoint.sellerRegion) && Objects.equals(this.peeringType, accessPoint.peeringType) && Objects.equals(this.authenticationKey, accessPoint.authenticationKey) && - Objects.equals(this.providerConnectionId, accessPoint.providerConnectionId)&& + Objects.equals(this.providerConnectionId, accessPoint.providerConnectionId) && + Objects.equals(this.virtualNetwork, accessPoint.virtualNetwork)&& Objects.equals(this.additionalProperties, accessPoint.additionalProperties); } @Override public int hashCode() { - return Objects.hash(type, account, location, port, profile, router, linkProtocol, virtualDevice, _interface, network, sellerRegion, peeringType, authenticationKey, providerConnectionId, additionalProperties); + return Objects.hash(type, account, location, port, profile, router, linkProtocol, virtualDevice, _interface, network, sellerRegion, peeringType, authenticationKey, providerConnectionId, virtualNetwork, additionalProperties); } @Override @@ -519,6 +547,7 @@ public String toString() { sb.append(" peeringType: ").append(toIndentedString(peeringType)).append("\n"); sb.append(" authenticationKey: ").append(toIndentedString(authenticationKey)).append("\n"); sb.append(" providerConnectionId: ").append(toIndentedString(providerConnectionId)).append("\n"); + sb.append(" virtualNetwork: ").append(toIndentedString(virtualNetwork)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -556,6 +585,7 @@ private String toIndentedString(Object o) { openapiFields.add("peeringType"); openapiFields.add("authenticationKey"); openapiFields.add("providerConnectionId"); + openapiFields.add("virtualNetwork"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -618,6 +648,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if ((jsonObj.get("providerConnectionId") != null && !jsonObj.get("providerConnectionId").isJsonNull()) && !jsonObj.get("providerConnectionId").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `providerConnectionId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("providerConnectionId").toString())); } + // validate the optional field `virtualNetwork` + if (jsonObj.get("virtualNetwork") != null && !jsonObj.get("virtualNetwork").isJsonNull()) { + VirtualNetwork.validateJsonObject(jsonObj.getAsJsonObject("virtualNetwork")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointType.java index 91da7ff6..6b24c1b2 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointType.java @@ -42,7 +42,9 @@ public enum AccessPointType { CLOUD_ROUTER("CLOUD_ROUTER"), - NETWORK("NETWORK"); + NETWORK("NETWORK"), + + METAL_NETWORK("METAL_NETWORK"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackageType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackageType.java index 67f57cea..2173a6db 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackageType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackageType.java @@ -110,7 +110,7 @@ public enum CodeEnum { BASIC("BASIC"), - PRO("PRO"), + STANDARD("STANDARD"), PREMIUM("PREMIUM"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Code.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Code.java index fc52c522..c8e2d702 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Code.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Code.java @@ -32,7 +32,7 @@ public enum Code { BASIC("BASIC"), - PRO("PRO"), + STANDARD("STANDARD"), PREMIUM("PREMIUM"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterData.java new file mode 100644 index 00000000..2c27d4c5 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterData.java @@ -0,0 +1,556 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * ConnectionRouteFilterData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ConnectionRouteFilterData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Filter type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER("BGP_IPv4_PREFIX_FILTER"), + + IPV6_PREFIX_FILTER("BGP_IPv6_PREFIX_FILTER"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private UUID uuid; + + /** + * Gets or Sets attachmentStatus + */ + @JsonAdapter(AttachmentStatusEnum.Adapter.class) + public enum AttachmentStatusEnum { + ATTACHING("ATTACHING"), + + ATTACHED("ATTACHED"), + + DETACHED("DETACHED"), + + DETACHING("DETACHING"), + + FAILED("FAILED"); + + private String value; + + AttachmentStatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AttachmentStatusEnum fromValue(String value) { + for (AttachmentStatusEnum b : AttachmentStatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AttachmentStatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AttachmentStatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AttachmentStatusEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_ATTACHMENT_STATUS = "attachmentStatus"; + @SerializedName(SERIALIZED_NAME_ATTACHMENT_STATUS) + private AttachmentStatusEnum attachmentStatus; + + /** + * Gets or Sets direction + */ + @JsonAdapter(DirectionEnum.Adapter.class) + public enum DirectionEnum { + INBOUND("INBOUND"), + + OUTBOUND("OUTBOUND"); + + private String value; + + DirectionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DirectionEnum fromValue(String value) { + for (DirectionEnum b : DirectionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DirectionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DirectionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DirectionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + private DirectionEnum direction; + + public ConnectionRouteFilterData() { + } + + public ConnectionRouteFilterData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public ConnectionRouteFilterData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Filter type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public ConnectionRouteFilterData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Filter identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public ConnectionRouteFilterData attachmentStatus(AttachmentStatusEnum attachmentStatus) { + + this.attachmentStatus = attachmentStatus; + return this; + } + + /** + * Get attachmentStatus + * @return attachmentStatus + **/ + @javax.annotation.Nullable + + public AttachmentStatusEnum getAttachmentStatus() { + return attachmentStatus; + } + + + public void setAttachmentStatus(AttachmentStatusEnum attachmentStatus) { + this.attachmentStatus = attachmentStatus; + } + + + public ConnectionRouteFilterData direction(DirectionEnum direction) { + + this.direction = direction; + return this; + } + + /** + * Get direction + * @return direction + **/ + @javax.annotation.Nullable + + public DirectionEnum getDirection() { + return direction; + } + + + public void setDirection(DirectionEnum direction) { + this.direction = direction; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the ConnectionRouteFilterData instance itself + */ + public ConnectionRouteFilterData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConnectionRouteFilterData connectionRouteFilterData = (ConnectionRouteFilterData) o; + return Objects.equals(this.href, connectionRouteFilterData.href) && + Objects.equals(this.type, connectionRouteFilterData.type) && + Objects.equals(this.uuid, connectionRouteFilterData.uuid) && + Objects.equals(this.attachmentStatus, connectionRouteFilterData.attachmentStatus) && + Objects.equals(this.direction, connectionRouteFilterData.direction)&& + Objects.equals(this.additionalProperties, connectionRouteFilterData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, attachmentStatus, direction, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConnectionRouteFilterData {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" attachmentStatus: ").append(toIndentedString(attachmentStatus)).append("\n"); + sb.append(" direction: ").append(toIndentedString(direction)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("href"); + openapiFields.add("type"); + openapiFields.add("uuid"); + openapiFields.add("attachmentStatus"); + openapiFields.add("direction"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to ConnectionRouteFilterData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!ConnectionRouteFilterData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConnectionRouteFilterData is not found in the empty JSON string", ConnectionRouteFilterData.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if ((jsonObj.get("attachmentStatus") != null && !jsonObj.get("attachmentStatus").isJsonNull()) && !jsonObj.get("attachmentStatus").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `attachmentStatus` to be a primitive type in the JSON string but got `%s`", jsonObj.get("attachmentStatus").toString())); + } + if ((jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) && !jsonObj.get("direction").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `direction` to be a primitive type in the JSON string but got `%s`", jsonObj.get("direction").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConnectionRouteFilterData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConnectionRouteFilterData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConnectionRouteFilterData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConnectionRouteFilterData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ConnectionRouteFilterData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + ConnectionRouteFilterData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConnectionRouteFilterData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConnectionRouteFilterData + * @throws IOException if the JSON string is invalid with respect to ConnectionRouteFilterData + */ + public static ConnectionRouteFilterData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConnectionRouteFilterData.class); + } + + /** + * Convert an instance of ConnectionRouteFilterData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBase.java new file mode 100644 index 00000000..fc71fd33 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBase.java @@ -0,0 +1,326 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * ConnectionRouteFiltersBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ConnectionRouteFiltersBase { + /** + * Route Filter direction to attach to a connection + */ + @JsonAdapter(DirectionEnum.Adapter.class) + public enum DirectionEnum { + INBOUND("INBOUND"), + + OUTBOUND("OUTBOUND"); + + private String value; + + DirectionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DirectionEnum fromValue(String value) { + for (DirectionEnum b : DirectionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DirectionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DirectionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return DirectionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + private DirectionEnum direction; + + public ConnectionRouteFiltersBase() { + } + + public ConnectionRouteFiltersBase direction(DirectionEnum direction) { + + this.direction = direction; + return this; + } + + /** + * Route Filter direction to attach to a connection + * @return direction + **/ + @javax.annotation.Nullable + + public DirectionEnum getDirection() { + return direction; + } + + + public void setDirection(DirectionEnum direction) { + this.direction = direction; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the ConnectionRouteFiltersBase instance itself + */ + public ConnectionRouteFiltersBase putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ConnectionRouteFiltersBase connectionRouteFiltersBase = (ConnectionRouteFiltersBase) o; + return Objects.equals(this.direction, connectionRouteFiltersBase.direction)&& + Objects.equals(this.additionalProperties, connectionRouteFiltersBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(direction, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConnectionRouteFiltersBase {\n"); + sb.append(" direction: ").append(toIndentedString(direction)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("direction"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to ConnectionRouteFiltersBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!ConnectionRouteFiltersBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConnectionRouteFiltersBase is not found in the empty JSON string", ConnectionRouteFiltersBase.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) && !jsonObj.get("direction").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `direction` to be a primitive type in the JSON string but got `%s`", jsonObj.get("direction").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConnectionRouteFiltersBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConnectionRouteFiltersBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConnectionRouteFiltersBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConnectionRouteFiltersBase value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ConnectionRouteFiltersBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + ConnectionRouteFiltersBase instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ConnectionRouteFiltersBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConnectionRouteFiltersBase + * @throws IOException if the JSON string is invalid with respect to ConnectionRouteFiltersBase + */ + public static ConnectionRouteFiltersBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConnectionRouteFiltersBase.class); + } + + /** + * Convert an instance of ConnectionRouteFiltersBase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterCode.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterCode.java index f4877dbd..ca6014eb 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterCode.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterCode.java @@ -32,7 +32,7 @@ public enum FabricCloudRouterCode { BASIC("BASIC"), - PRO("PRO"), + STANDARD("STANDARD"), PREMIUM("PREMIUM"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponse.java similarity index 79% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponse.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponse.java index c321b7e0..88ca3337 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponse.java @@ -14,7 +14,7 @@ import java.util.Objects; import java.util.Arrays; -import com.equinix.openapi.fabric.v4.model.PackageResponse; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFilterData; import com.equinix.openapi.fabric.v4.model.Pagination; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; @@ -47,22 +47,22 @@ import com.equinix.openapi.fabric.JSON; /** - * Precision Packages + * GetAllConnectionRouteFiltersResponse */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class PrecisionTimeServicePackagesResponse { +public class GetAllConnectionRouteFiltersResponse { public static final String SERIALIZED_NAME_PAGINATION = "pagination"; @SerializedName(SERIALIZED_NAME_PAGINATION) private Pagination pagination; public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - private List data = new ArrayList<>(); + private List data = new ArrayList<>(); - public PrecisionTimeServicePackagesResponse() { + public GetAllConnectionRouteFiltersResponse() { } - public PrecisionTimeServicePackagesResponse pagination(Pagination pagination) { + public GetAllConnectionRouteFiltersResponse pagination(Pagination pagination) { this.pagination = pagination; return this; @@ -84,13 +84,13 @@ public void setPagination(Pagination pagination) { } - public PrecisionTimeServicePackagesResponse data(List data) { + public GetAllConnectionRouteFiltersResponse data(List data) { this.data = data; return this; } - public PrecisionTimeServicePackagesResponse addDataItem(PackageResponse dataItem) { + public GetAllConnectionRouteFiltersResponse addDataItem(ConnectionRouteFilterData dataItem) { if (this.data == null) { this.data = new ArrayList<>(); } @@ -99,17 +99,17 @@ public PrecisionTimeServicePackagesResponse addDataItem(PackageResponse dataItem } /** - * Data returned from the API call + * List of Route Filters attached to a Connection * @return data **/ @javax.annotation.Nullable - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -126,9 +126,9 @@ public void setData(List data) { * * @param key name of the property * @param value value of the property - * @return the PrecisionTimeServicePackagesResponse instance itself + * @return the GetAllConnectionRouteFiltersResponse instance itself */ - public PrecisionTimeServicePackagesResponse putAdditionalProperty(String key, Object value) { + public GetAllConnectionRouteFiltersResponse putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -167,10 +167,10 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PrecisionTimeServicePackagesResponse precisionTimeServicePackagesResponse = (PrecisionTimeServicePackagesResponse) o; - return Objects.equals(this.pagination, precisionTimeServicePackagesResponse.pagination) && - Objects.equals(this.data, precisionTimeServicePackagesResponse.data)&& - Objects.equals(this.additionalProperties, precisionTimeServicePackagesResponse.additionalProperties); + GetAllConnectionRouteFiltersResponse getAllConnectionRouteFiltersResponse = (GetAllConnectionRouteFiltersResponse) o; + return Objects.equals(this.pagination, getAllConnectionRouteFiltersResponse.pagination) && + Objects.equals(this.data, getAllConnectionRouteFiltersResponse.data)&& + Objects.equals(this.additionalProperties, getAllConnectionRouteFiltersResponse.additionalProperties); } @Override @@ -181,7 +181,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class PrecisionTimeServicePackagesResponse {\n"); + sb.append("class GetAllConnectionRouteFiltersResponse {\n"); sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -218,12 +218,12 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to PrecisionTimeServicePackagesResponse + * @throws IOException if the JSON Object is invalid with respect to GetAllConnectionRouteFiltersResponse */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!PrecisionTimeServicePackagesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in PrecisionTimeServicePackagesResponse is not found in the empty JSON string", PrecisionTimeServicePackagesResponse.openapiRequiredFields.toString())); + if (!GetAllConnectionRouteFiltersResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetAllConnectionRouteFiltersResponse is not found in the empty JSON string", GetAllConnectionRouteFiltersResponse.openapiRequiredFields.toString())); } } // validate the optional field `pagination` @@ -240,7 +240,7 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { // validate the optional field `data` (array) for (int i = 0; i < jsonArraydata.size(); i++) { - PackageResponse.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + ConnectionRouteFilterData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); }; } } @@ -250,16 +250,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!PrecisionTimeServicePackagesResponse.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'PrecisionTimeServicePackagesResponse' and its subtypes + if (!GetAllConnectionRouteFiltersResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetAllConnectionRouteFiltersResponse' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(PrecisionTimeServicePackagesResponse.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetAllConnectionRouteFiltersResponse.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, PrecisionTimeServicePackagesResponse value) throws IOException { + public void write(JsonWriter out, GetAllConnectionRouteFiltersResponse value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -282,11 +282,11 @@ else if (entry.getValue() instanceof Character) } @Override - public PrecisionTimeServicePackagesResponse read(JsonReader in) throws IOException { + public GetAllConnectionRouteFiltersResponse read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - PrecisionTimeServicePackagesResponse instance = thisAdapter.fromJsonTree(jsonObj); + GetAllConnectionRouteFiltersResponse instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -313,18 +313,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of PrecisionTimeServicePackagesResponse given an JSON string + * Create an instance of GetAllConnectionRouteFiltersResponse given an JSON string * * @param jsonString JSON string - * @return An instance of PrecisionTimeServicePackagesResponse - * @throws IOException if the JSON string is invalid with respect to PrecisionTimeServicePackagesResponse + * @return An instance of GetAllConnectionRouteFiltersResponse + * @throws IOException if the JSON string is invalid with respect to GetAllConnectionRouteFiltersResponse */ - public static PrecisionTimeServicePackagesResponse fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, PrecisionTimeServicePackagesResponse.class); + public static GetAllConnectionRouteFiltersResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetAllConnectionRouteFiltersResponse.class); } /** - * Convert an instance of PrecisionTimeServicePackagesResponse to an JSON string + * Convert an instance of GetAllConnectionRouteFiltersResponse to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponse.java similarity index 76% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponse.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponse.java index c0ab6e18..45a3a6e0 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponse.java @@ -14,8 +14,8 @@ import java.util.Objects; import java.util.Arrays; -import com.equinix.openapi.fabric.v4.model.ConnectionLink; import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterConnectionsData; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -47,22 +47,22 @@ import com.equinix.openapi.fabric.JSON; /** - * EPT service instance's L2 connections + * GetRouteFilterGetConnectionsResponse */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class PrecisionTimeServiceConnectionsResponse { +public class GetRouteFilterGetConnectionsResponse { public static final String SERIALIZED_NAME_PAGINATION = "pagination"; @SerializedName(SERIALIZED_NAME_PAGINATION) private Pagination pagination; public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - private List data = new ArrayList<>(); + private List data = new ArrayList<>(); - public PrecisionTimeServiceConnectionsResponse() { + public GetRouteFilterGetConnectionsResponse() { } - public PrecisionTimeServiceConnectionsResponse pagination(Pagination pagination) { + public GetRouteFilterGetConnectionsResponse pagination(Pagination pagination) { this.pagination = pagination; return this; @@ -84,13 +84,13 @@ public void setPagination(Pagination pagination) { } - public PrecisionTimeServiceConnectionsResponse data(List data) { + public GetRouteFilterGetConnectionsResponse data(List data) { this.data = data; return this; } - public PrecisionTimeServiceConnectionsResponse addDataItem(ConnectionLink dataItem) { + public GetRouteFilterGetConnectionsResponse addDataItem(RouteFilterConnectionsData dataItem) { if (this.data == null) { this.data = new ArrayList<>(); } @@ -99,17 +99,17 @@ public PrecisionTimeServiceConnectionsResponse addDataItem(ConnectionLink dataIt } /** - * Data returned from the API call + * List of Connections using a Route Filter * @return data **/ @javax.annotation.Nullable - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -126,9 +126,9 @@ public void setData(List data) { * * @param key name of the property * @param value value of the property - * @return the PrecisionTimeServiceConnectionsResponse instance itself + * @return the GetRouteFilterGetConnectionsResponse instance itself */ - public PrecisionTimeServiceConnectionsResponse putAdditionalProperty(String key, Object value) { + public GetRouteFilterGetConnectionsResponse putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -167,10 +167,10 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - PrecisionTimeServiceConnectionsResponse precisionTimeServiceConnectionsResponse = (PrecisionTimeServiceConnectionsResponse) o; - return Objects.equals(this.pagination, precisionTimeServiceConnectionsResponse.pagination) && - Objects.equals(this.data, precisionTimeServiceConnectionsResponse.data)&& - Objects.equals(this.additionalProperties, precisionTimeServiceConnectionsResponse.additionalProperties); + GetRouteFilterGetConnectionsResponse getRouteFilterGetConnectionsResponse = (GetRouteFilterGetConnectionsResponse) o; + return Objects.equals(this.pagination, getRouteFilterGetConnectionsResponse.pagination) && + Objects.equals(this.data, getRouteFilterGetConnectionsResponse.data)&& + Objects.equals(this.additionalProperties, getRouteFilterGetConnectionsResponse.additionalProperties); } @Override @@ -181,7 +181,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class PrecisionTimeServiceConnectionsResponse {\n"); + sb.append("class GetRouteFilterGetConnectionsResponse {\n"); sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -218,12 +218,12 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to PrecisionTimeServiceConnectionsResponse + * @throws IOException if the JSON Object is invalid with respect to GetRouteFilterGetConnectionsResponse */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!PrecisionTimeServiceConnectionsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in PrecisionTimeServiceConnectionsResponse is not found in the empty JSON string", PrecisionTimeServiceConnectionsResponse.openapiRequiredFields.toString())); + if (!GetRouteFilterGetConnectionsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetRouteFilterGetConnectionsResponse is not found in the empty JSON string", GetRouteFilterGetConnectionsResponse.openapiRequiredFields.toString())); } } // validate the optional field `pagination` @@ -240,7 +240,7 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { // validate the optional field `data` (array) for (int i = 0; i < jsonArraydata.size(); i++) { - ConnectionLink.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + RouteFilterConnectionsData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); }; } } @@ -250,16 +250,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!PrecisionTimeServiceConnectionsResponse.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'PrecisionTimeServiceConnectionsResponse' and its subtypes + if (!GetRouteFilterGetConnectionsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetRouteFilterGetConnectionsResponse' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(PrecisionTimeServiceConnectionsResponse.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetRouteFilterGetConnectionsResponse.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, PrecisionTimeServiceConnectionsResponse value) throws IOException { + public void write(JsonWriter out, GetRouteFilterGetConnectionsResponse value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -282,11 +282,11 @@ else if (entry.getValue() instanceof Character) } @Override - public PrecisionTimeServiceConnectionsResponse read(JsonReader in) throws IOException { + public GetRouteFilterGetConnectionsResponse read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - PrecisionTimeServiceConnectionsResponse instance = thisAdapter.fromJsonTree(jsonObj); + GetRouteFilterGetConnectionsResponse instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -313,18 +313,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of PrecisionTimeServiceConnectionsResponse given an JSON string + * Create an instance of GetRouteFilterGetConnectionsResponse given an JSON string * * @param jsonString JSON string - * @return An instance of PrecisionTimeServiceConnectionsResponse - * @throws IOException if the JSON string is invalid with respect to PrecisionTimeServiceConnectionsResponse + * @return An instance of GetRouteFilterGetConnectionsResponse + * @throws IOException if the JSON string is invalid with respect to GetRouteFilterGetConnectionsResponse */ - public static PrecisionTimeServiceConnectionsResponse fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, PrecisionTimeServiceConnectionsResponse.class); + public static GetRouteFilterGetConnectionsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetRouteFilterGetConnectionsResponse.class); } /** - * Convert an instance of PrecisionTimeServiceConnectionsResponse to an JSON string + * Convert an instance of GetRouteFilterGetConnectionsResponse to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponse.java new file mode 100644 index 00000000..11e2f20b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponse.java @@ -0,0 +1,335 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * GetRouteFilterRulesResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class GetRouteFilterRulesResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public GetRouteFilterRulesResponse() { + } + + public GetRouteFilterRulesResponse pagination(Pagination pagination) { + + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + **/ + @javax.annotation.Nullable + + public Pagination getPagination() { + return pagination; + } + + + public void setPagination(Pagination pagination) { + this.pagination = pagination; + } + + + public GetRouteFilterRulesResponse data(List data) { + + this.data = data; + return this; + } + + public GetRouteFilterRulesResponse addDataItem(RouteFilterRulesData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of Route Filter Rules + * @return data + **/ + @javax.annotation.Nullable + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the GetRouteFilterRulesResponse instance itself + */ + public GetRouteFilterRulesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetRouteFilterRulesResponse getRouteFilterRulesResponse = (GetRouteFilterRulesResponse) o; + return Objects.equals(this.pagination, getRouteFilterRulesResponse.pagination) && + Objects.equals(this.data, getRouteFilterRulesResponse.data)&& + Objects.equals(this.additionalProperties, getRouteFilterRulesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetRouteFilterRulesResponse {\n"); + sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("pagination"); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to GetRouteFilterRulesResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!GetRouteFilterRulesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetRouteFilterRulesResponse is not found in the empty JSON string", GetRouteFilterRulesResponse.openapiRequiredFields.toString())); + } + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonObject(jsonObj.getAsJsonObject("pagination")); + } + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + RouteFilterRulesData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetRouteFilterRulesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetRouteFilterRulesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetRouteFilterRulesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetRouteFilterRulesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public GetRouteFilterRulesResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + GetRouteFilterRulesResponse instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetRouteFilterRulesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetRouteFilterRulesResponse + * @throws IOException if the JSON string is invalid with respect to GetRouteFilterRulesResponse + */ + public static GetRouteFilterRulesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetRouteFilterRulesResponse.class); + } + + /** + * Convert an instance of GetRouteFilterRulesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocol.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocol.java index 78c724e6..6fbf7e9d 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocol.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocol.java @@ -20,6 +20,7 @@ import com.equinix.openapi.fabric.v4.model.LinkProtocolQinq; import com.equinix.openapi.fabric.v4.model.LinkProtocolType; import com.equinix.openapi.fabric.v4.model.LinkProtocolUntagged; +import com.equinix.openapi.fabric.v4.model.LinkProtocolVxlan; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -76,6 +77,7 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterLinkProtocolEvpnVxlan = gson.getDelegateAdapter(this, TypeToken.get(LinkProtocolEvpnVxlan.class)); final TypeAdapter adapterLinkProtocolQinq = gson.getDelegateAdapter(this, TypeToken.get(LinkProtocolQinq.class)); final TypeAdapter adapterLinkProtocolUntagged = gson.getDelegateAdapter(this, TypeToken.get(LinkProtocolUntagged.class)); + final TypeAdapter adapterLinkProtocolVxlan = gson.getDelegateAdapter(this, TypeToken.get(LinkProtocolVxlan.class)); return (TypeAdapter) new TypeAdapter() { @Override @@ -113,7 +115,14 @@ public void write(JsonWriter out, LinkProtocol value) throws IOException { return; } - throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged"); + // check if the actual instance is of the type `LinkProtocolVxlan` + if (value.getActualInstance() instanceof LinkProtocolVxlan) { + JsonObject obj = adapterLinkProtocolVxlan.toJsonTree((LinkProtocolVxlan)value.getActualInstance()).getAsJsonObject(); + elementAdapter.write(out, obj); + return; + } + + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan"); } @Override @@ -177,6 +186,19 @@ public LinkProtocol read(JsonReader in) throws IOException { log.log(Level.FINER, "Input data does not match schema 'LinkProtocolUntagged'", e); } + // deserialize LinkProtocolVxlan + try { + // validate the JSON object to see if any exception is thrown + LinkProtocolVxlan.validateJsonObject(jsonObject); + actualAdapter = adapterLinkProtocolVxlan; + match++; + log.log(Level.FINER, "Input data matches schema 'LinkProtocolVxlan'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for LinkProtocolVxlan failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'LinkProtocolVxlan'", e); + } + if (match == 1) { LinkProtocol ret = new LinkProtocol(); ret.setActualInstance(actualAdapter.fromJsonTree(jsonObject)); @@ -216,6 +238,11 @@ public LinkProtocol(LinkProtocolUntagged o) { setActualInstance(o); } + public LinkProtocol(LinkProtocolVxlan o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + static { schemas.put("LinkProtocolDot1q", new GenericType() { }); @@ -225,6 +252,8 @@ public LinkProtocol(LinkProtocolUntagged o) { }); schemas.put("LinkProtocolUntagged", new GenericType() { }); + schemas.put("LinkProtocolVxlan", new GenericType() { + }); } @Override @@ -235,7 +264,7 @@ public Map getSchemas() { /** * Set the instance that matches the oneOf child schema, check * the instance parameter is valid against the oneOf child schemas: - * LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged + * LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan * * It could be an instance of the 'oneOf' schemas. * The oneOf child schemas may themselves be a composed schema (allOf, anyOf, oneOf). @@ -262,14 +291,19 @@ public void setActualInstance(Object instance) { return; } - throw new RuntimeException("Invalid instance type. Must be LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged"); + if (instance instanceof LinkProtocolVxlan) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan"); } /** * Get the actual instance, which can be the following: - * LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged + * LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan * - * @return The actual instance (LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged) + * @return The actual instance (LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan) */ @Override public Object getActualInstance() { @@ -320,6 +354,17 @@ public LinkProtocolUntagged getLinkProtocolUntagged() throws ClassCastException return (LinkProtocolUntagged)super.getActualInstance(); } + /** + * Get the actual instance of `LinkProtocolVxlan`. If the actual instance is not `LinkProtocolVxlan`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `LinkProtocolVxlan` + * @throws ClassCastException if the instance is not `LinkProtocolVxlan` + */ + public LinkProtocolVxlan getLinkProtocolVxlan() throws ClassCastException { + return (LinkProtocolVxlan)super.getActualInstance(); + } + /** * Validates the JSON Object and throws an exception if issues found @@ -363,8 +408,16 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { errorMessages.add(String.format("Deserialization for LinkProtocolUntagged failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with LinkProtocolVxlan + try { + LinkProtocolVxlan.validateJsonObject(jsonObj); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for LinkProtocolVxlan failed with `%s`.", e.getMessage())); + // continue to the next one + } if (validCount != 1) { - throw new IOException(String.format("The JSON string is invalid for LinkProtocol with oneOf schemas: LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonObj.toString())); + throw new IOException(String.format("The JSON string is invalid for LinkProtocol with oneOf schemas: LinkProtocolDot1q, LinkProtocolEvpnVxlan, LinkProtocolQinq, LinkProtocolUntagged, LinkProtocolVxlan. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonObj.toString())); } } diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolType.java index e2b9d495..a00eab50 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolType.java @@ -34,7 +34,9 @@ public enum LinkProtocolType { QINQ("QINQ"), - EVPN_VXLAN("EVPN_VXLAN"); + EVPN_VXLAN("EVPN_VXLAN"), + + VXLAN("VXLAN"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlan.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlan.java new file mode 100644 index 00000000..0a332120 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlan.java @@ -0,0 +1,316 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.LinkProtocolType; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Connection link protocol configuration - VXLAN + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class LinkProtocolVxlan { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private LinkProtocolType type; + + public static final String SERIALIZED_NAME_VNI = "vni"; + @SerializedName(SERIALIZED_NAME_VNI) + private Integer vni; + + public LinkProtocolVxlan() { + } + + public LinkProtocolVxlan type(LinkProtocolType type) { + + this.type = type; + return this; + } + + /** + * Get type + * @return type + **/ + @javax.annotation.Nullable + + public LinkProtocolType getType() { + return type; + } + + + public void setType(LinkProtocolType type) { + this.type = type; + } + + + public LinkProtocolVxlan vni(Integer vni) { + + this.vni = vni; + return this; + } + + /** + * Virtual Network Identifier + * minimum: 4097 + * maximum: 16777215 + * @return vni + **/ + @javax.annotation.Nonnull + + public Integer getVni() { + return vni; + } + + + public void setVni(Integer vni) { + this.vni = vni; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the LinkProtocolVxlan instance itself + */ + public LinkProtocolVxlan putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LinkProtocolVxlan linkProtocolVxlan = (LinkProtocolVxlan) o; + return Objects.equals(this.type, linkProtocolVxlan.type) && + Objects.equals(this.vni, linkProtocolVxlan.vni)&& + Objects.equals(this.additionalProperties, linkProtocolVxlan.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, vni, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LinkProtocolVxlan {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" vni: ").append(toIndentedString(vni)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("vni"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("vni"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to LinkProtocolVxlan + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!LinkProtocolVxlan.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in LinkProtocolVxlan is not found in the empty JSON string", LinkProtocolVxlan.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : LinkProtocolVxlan.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LinkProtocolVxlan.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LinkProtocolVxlan' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(LinkProtocolVxlan.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, LinkProtocolVxlan value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public LinkProtocolVxlan read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + LinkProtocolVxlan instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of LinkProtocolVxlan given an JSON string + * + * @param jsonString JSON string + * @return An instance of LinkProtocolVxlan + * @throws IOException if the JSON string is invalid with respect to LinkProtocolVxlan + */ + public static LinkProtocolVxlan fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LinkProtocolVxlan.class); + } + + /** + * Convert an instance of LinkProtocolVxlan to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ModelInterface.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ModelInterface.java index b1034ac2..584c9c3c 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ModelInterface.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ModelInterface.java @@ -45,7 +45,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Virtual Device Interface Information + * Interface Information */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class ModelInterface { @@ -62,7 +62,7 @@ public class ModelInterface { private Integer id; /** - * Virtual Device Interface type + * Interface type */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -112,6 +112,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TYPE) private TypeEnum type; + public static final String SERIALIZED_NAME_PROJECT_ID = "projectId"; + @SerializedName(SERIALIZED_NAME_PROJECT_ID) + private String projectId; + public ModelInterface() { } @@ -124,7 +128,7 @@ public ModelInterface( } /** - * Virtual Interface URI + * Interface URI * @return href **/ @javax.annotation.Nullable @@ -143,7 +147,7 @@ public ModelInterface uuid(UUID uuid) { } /** - * Equinix-assigned Virtual Device Interface identifier + * Equinix-assigned Interface identifier * @return uuid **/ @javax.annotation.Nullable @@ -187,7 +191,7 @@ public ModelInterface type(TypeEnum type) { } /** - * Virtual Device Interface type + * Interface type * @return type **/ @javax.annotation.Nullable @@ -201,6 +205,28 @@ public void setType(TypeEnum type) { this.type = type; } + + public ModelInterface projectId(String projectId) { + + this.projectId = projectId; + return this; + } + + /** + * Interface Project ID + * @return projectId + **/ + @javax.annotation.Nullable + + public String getProjectId() { + return projectId; + } + + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -259,13 +285,14 @@ public boolean equals(Object o) { return Objects.equals(this.href, _interface.href) && Objects.equals(this.uuid, _interface.uuid) && Objects.equals(this.id, _interface.id) && - Objects.equals(this.type, _interface.type)&& + Objects.equals(this.type, _interface.type) && + Objects.equals(this.projectId, _interface.projectId)&& Objects.equals(this.additionalProperties, _interface.additionalProperties); } @Override public int hashCode() { - return Objects.hash(href, uuid, id, type, additionalProperties); + return Objects.hash(href, uuid, id, type, projectId, additionalProperties); } @Override @@ -276,6 +303,7 @@ public String toString() { sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -303,6 +331,7 @@ private String toIndentedString(Object o) { openapiFields.add("uuid"); openapiFields.add("id"); openapiFields.add("type"); + openapiFields.add("projectId"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -329,6 +358,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } + if ((jsonObj.get("projectId") != null && !jsonObj.get("projectId").isJsonNull()) && !jsonObj.get("projectId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `projectId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("projectId").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeData.java new file mode 100644 index 00000000..7eb82519 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeData.java @@ -0,0 +1,671 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.RouteFiltersChangeOperation; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.time.OffsetDateTime; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Current state of latest Route Filter change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterChangeData { + /** + * Current outcome of the change flow + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + COMPLETED("COMPLETED"), + + FAILED("FAILED"), + + REQUESTED("REQUESTED"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + private StatusEnum status; + + public static final String SERIALIZED_NAME_CREATED_BY = "createdBy"; + @SerializedName(SERIALIZED_NAME_CREATED_BY) + private String createdBy; + + public static final String SERIALIZED_NAME_CREATED_DATE_TIME = "createdDateTime"; + @SerializedName(SERIALIZED_NAME_CREATED_DATE_TIME) + private OffsetDateTime createdDateTime; + + public static final String SERIALIZED_NAME_UPDATED_BY = "updatedBy"; + @SerializedName(SERIALIZED_NAME_UPDATED_BY) + private String updatedBy; + + public static final String SERIALIZED_NAME_UPDATED_DATE_TIME = "updatedDateTime"; + @SerializedName(SERIALIZED_NAME_UPDATED_DATE_TIME) + private OffsetDateTime updatedDateTime; + + public static final String SERIALIZED_NAME_INFORMATION = "information"; + @SerializedName(SERIALIZED_NAME_INFORMATION) + private String information; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private RouteFiltersChangeOperation data; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private String uuid; + + /** + * Type of change + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER_UPDATE("BGP_IPv4_PREFIX_FILTER_UPDATE"), + + IPV4_PREFIX_FILTER_CREATION("BGP_IPv4_PREFIX_FILTER_CREATION"), + + IPV4_PREFIX_FILTER_DELETION("BGP_IPv4_PREFIX_FILTER_DELETION"), + + IPV6_PREFIX_FILTER_UPDATE("BGP_IPv6_PREFIX_FILTER_UPDATE"), + + IPV6_PREFIX_FILTER_CREATION("BGP_IPv6_PREFIX_FILTER_CREATION"), + + IPV6_PREFIX_FILTER_DELETION("BGP_IPv6_PREFIX_FILTER_DELETION"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public RouteFilterChangeData() { + } + + public RouteFilterChangeData status(StatusEnum status) { + + this.status = status; + return this; + } + + /** + * Current outcome of the change flow + * @return status + **/ + @javax.annotation.Nullable + + public StatusEnum getStatus() { + return status; + } + + + public void setStatus(StatusEnum status) { + this.status = status; + } + + + public RouteFilterChangeData createdBy(String createdBy) { + + this.createdBy = createdBy; + return this; + } + + /** + * Created by User Key + * @return createdBy + **/ + @javax.annotation.Nullable + + public String getCreatedBy() { + return createdBy; + } + + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + + public RouteFilterChangeData createdDateTime(OffsetDateTime createdDateTime) { + + this.createdDateTime = createdDateTime; + return this; + } + + /** + * Set when change flow starts + * @return createdDateTime + **/ + @javax.annotation.Nullable + + public OffsetDateTime getCreatedDateTime() { + return createdDateTime; + } + + + public void setCreatedDateTime(OffsetDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + + public RouteFilterChangeData updatedBy(String updatedBy) { + + this.updatedBy = updatedBy; + return this; + } + + /** + * Updated by User Key + * @return updatedBy + **/ + @javax.annotation.Nullable + + public String getUpdatedBy() { + return updatedBy; + } + + + public void setUpdatedBy(String updatedBy) { + this.updatedBy = updatedBy; + } + + + public RouteFilterChangeData updatedDateTime(OffsetDateTime updatedDateTime) { + + this.updatedDateTime = updatedDateTime; + return this; + } + + /** + * Set when change object is updated + * @return updatedDateTime + **/ + @javax.annotation.Nullable + + public OffsetDateTime getUpdatedDateTime() { + return updatedDateTime; + } + + + public void setUpdatedDateTime(OffsetDateTime updatedDateTime) { + this.updatedDateTime = updatedDateTime; + } + + + public RouteFilterChangeData information(String information) { + + this.information = information; + return this; + } + + /** + * Additional information + * @return information + **/ + @javax.annotation.Nullable + + public String getInformation() { + return information; + } + + + public void setInformation(String information) { + this.information = information; + } + + + public RouteFilterChangeData data(RouteFiltersChangeOperation data) { + + this.data = data; + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public RouteFiltersChangeOperation getData() { + return data; + } + + + public void setData(RouteFiltersChangeOperation data) { + this.data = data; + } + + + public RouteFilterChangeData uuid(String uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Uniquely identifies a change + * @return uuid + **/ + @javax.annotation.Nonnull + + public String getUuid() { + return uuid; + } + + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public RouteFilterChangeData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Type of change + * @return type + **/ + @javax.annotation.Nonnull + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFilterChangeData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter Change URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterChangeData instance itself + */ + public RouteFilterChangeData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterChangeData routeFilterChangeData = (RouteFilterChangeData) o; + return Objects.equals(this.status, routeFilterChangeData.status) && + Objects.equals(this.createdBy, routeFilterChangeData.createdBy) && + Objects.equals(this.createdDateTime, routeFilterChangeData.createdDateTime) && + Objects.equals(this.updatedBy, routeFilterChangeData.updatedBy) && + Objects.equals(this.updatedDateTime, routeFilterChangeData.updatedDateTime) && + Objects.equals(this.information, routeFilterChangeData.information) && + Objects.equals(this.data, routeFilterChangeData.data) && + Objects.equals(this.uuid, routeFilterChangeData.uuid) && + Objects.equals(this.type, routeFilterChangeData.type) && + Objects.equals(this.href, routeFilterChangeData.href)&& + Objects.equals(this.additionalProperties, routeFilterChangeData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(status, createdBy, createdDateTime, updatedBy, updatedDateTime, information, data, uuid, type, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterChangeData {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); + sb.append(" createdDateTime: ").append(toIndentedString(createdDateTime)).append("\n"); + sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); + sb.append(" updatedDateTime: ").append(toIndentedString(updatedDateTime)).append("\n"); + sb.append(" information: ").append(toIndentedString(information)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("uuid"); + openapiFields.add("type"); + openapiFields.add("href"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("uuid"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterChangeData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterChangeData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterChangeData is not found in the empty JSON string", RouteFilterChangeData.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFilterChangeData.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + if ((jsonObj.get("createdBy") != null && !jsonObj.get("createdBy").isJsonNull()) && !jsonObj.get("createdBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `createdBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("createdBy").toString())); + } + if ((jsonObj.get("updatedBy") != null && !jsonObj.get("updatedBy").isJsonNull()) && !jsonObj.get("updatedBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updatedBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updatedBy").toString())); + } + if ((jsonObj.get("information") != null && !jsonObj.get("information").isJsonNull()) && !jsonObj.get("information").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `information` to be a primitive type in the JSON string but got `%s`", jsonObj.get("information").toString())); + } + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + RouteFiltersChangeOperation.validateJsonObject(jsonObj.getAsJsonObject("data")); + } + if (!jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterChangeData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterChangeData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterChangeData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterChangeData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterChangeData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterChangeData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterChangeData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterChangeData + * @throws IOException if the JSON string is invalid with respect to RouteFilterChangeData + */ + public static RouteFilterChangeData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterChangeData.class); + } + + /** + * Convert an instance of RouteFilterChangeData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponse.java new file mode 100644 index 00000000..46ebac45 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponse.java @@ -0,0 +1,335 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * List of Route Filter changes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterChangeDataResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public RouteFilterChangeDataResponse() { + } + + public RouteFilterChangeDataResponse pagination(Pagination pagination) { + + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + **/ + @javax.annotation.Nullable + + public Pagination getPagination() { + return pagination; + } + + + public void setPagination(Pagination pagination) { + this.pagination = pagination; + } + + + public RouteFilterChangeDataResponse data(List data) { + + this.data = data; + return this; + } + + public RouteFilterChangeDataResponse addDataItem(RouteFilterChangeData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterChangeDataResponse instance itself + */ + public RouteFilterChangeDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterChangeDataResponse routeFilterChangeDataResponse = (RouteFilterChangeDataResponse) o; + return Objects.equals(this.pagination, routeFilterChangeDataResponse.pagination) && + Objects.equals(this.data, routeFilterChangeDataResponse.data)&& + Objects.equals(this.additionalProperties, routeFilterChangeDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterChangeDataResponse {\n"); + sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("pagination"); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterChangeDataResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterChangeDataResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterChangeDataResponse is not found in the empty JSON string", RouteFilterChangeDataResponse.openapiRequiredFields.toString())); + } + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonObject(jsonObj.getAsJsonObject("pagination")); + } + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + RouteFilterChangeData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterChangeDataResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterChangeDataResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterChangeDataResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterChangeDataResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterChangeDataResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterChangeDataResponse instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterChangeDataResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterChangeDataResponse + * @throws IOException if the JSON string is invalid with respect to RouteFilterChangeDataResponse + */ + public static RouteFilterChangeDataResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterChangeDataResponse.class); + } + + /** + * Convert an instance of RouteFilterChangeDataResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatch.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatch.java new file mode 100644 index 00000000..10d32e6b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatch.java @@ -0,0 +1,350 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Route Filter Rule change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterChangePrefixMatch { + public static final String SERIALIZED_NAME_OP = "op"; + @SerializedName(SERIALIZED_NAME_OP) + private String op; + + public static final String SERIALIZED_NAME_PATH = "path"; + @SerializedName(SERIALIZED_NAME_PATH) + private String path; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private Object value; + + public RouteFilterChangePrefixMatch() { + } + + public RouteFilterChangePrefixMatch op(String op) { + + this.op = op; + return this; + } + + /** + * Handy shortcut for operation name + * @return op + **/ + @javax.annotation.Nonnull + + public String getOp() { + return op; + } + + + public void setOp(String op) { + this.op = op; + } + + + public RouteFilterChangePrefixMatch path(String path) { + + this.path = path; + return this; + } + + /** + * path to change + * @return path + **/ + @javax.annotation.Nonnull + + public String getPath() { + return path; + } + + + public void setPath(String path) { + this.path = path; + } + + + public RouteFilterChangePrefixMatch value(Object value) { + + this.value = value; + return this; + } + + /** + * new value for updated parameter + * @return value + **/ + @javax.annotation.Nonnull + + public Object getValue() { + return value; + } + + + public void setValue(Object value) { + this.value = value; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterChangePrefixMatch instance itself + */ + public RouteFilterChangePrefixMatch putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterChangePrefixMatch routeFilterChangePrefixMatch = (RouteFilterChangePrefixMatch) o; + return Objects.equals(this.op, routeFilterChangePrefixMatch.op) && + Objects.equals(this.path, routeFilterChangePrefixMatch.path) && + Objects.equals(this.value, routeFilterChangePrefixMatch.value)&& + Objects.equals(this.additionalProperties, routeFilterChangePrefixMatch.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterChangePrefixMatch {\n"); + sb.append(" op: ").append(toIndentedString(op)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("op"); + openapiFields.add("path"); + openapiFields.add("value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("op"); + openapiRequiredFields.add("path"); + openapiRequiredFields.add("value"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterChangePrefixMatch + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterChangePrefixMatch.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterChangePrefixMatch is not found in the empty JSON string", RouteFilterChangePrefixMatch.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFilterChangePrefixMatch.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("op").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `op` to be a primitive type in the JSON string but got `%s`", jsonObj.get("op").toString())); + } + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterChangePrefixMatch.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterChangePrefixMatch' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterChangePrefixMatch.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterChangePrefixMatch value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterChangePrefixMatch read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterChangePrefixMatch instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterChangePrefixMatch given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterChangePrefixMatch + * @throws IOException if the JSON string is invalid with respect to RouteFilterChangePrefixMatch + */ + public static RouteFilterChangePrefixMatch fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterChangePrefixMatch.class); + } + + /** + * Convert an instance of RouteFilterChangePrefixMatch to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsData.java new file mode 100644 index 00000000..2fec58ca --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsData.java @@ -0,0 +1,375 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.ConnectionType; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFilterConnectionsData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterConnectionsData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private ConnectionType type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private UUID uuid; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public RouteFilterConnectionsData() { + } + + public RouteFilterConnectionsData href(URI href) { + + this.href = href; + return this; + } + + /** + * Connection URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public RouteFilterConnectionsData type(ConnectionType type) { + + this.type = type; + return this; + } + + /** + * Get type + * @return type + **/ + @javax.annotation.Nullable + + public ConnectionType getType() { + return type; + } + + + public void setType(ConnectionType type) { + this.type = type; + } + + + public RouteFilterConnectionsData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Filter identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteFilterConnectionsData name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterConnectionsData instance itself + */ + public RouteFilterConnectionsData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterConnectionsData routeFilterConnectionsData = (RouteFilterConnectionsData) o; + return Objects.equals(this.href, routeFilterConnectionsData.href) && + Objects.equals(this.type, routeFilterConnectionsData.type) && + Objects.equals(this.uuid, routeFilterConnectionsData.uuid) && + Objects.equals(this.name, routeFilterConnectionsData.name)&& + Objects.equals(this.additionalProperties, routeFilterConnectionsData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterConnectionsData {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("href"); + openapiFields.add("type"); + openapiFields.add("uuid"); + openapiFields.add("name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterConnectionsData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterConnectionsData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterConnectionsData is not found in the empty JSON string", RouteFilterConnectionsData.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterConnectionsData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterConnectionsData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterConnectionsData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterConnectionsData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterConnectionsData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterConnectionsData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterConnectionsData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterConnectionsData + * @throws IOException if the JSON string is invalid with respect to RouteFilterConnectionsData + */ + public static RouteFilterConnectionsData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterConnectionsData.class); + } + + /** + * Convert an instance of RouteFilterConnectionsData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBase.java new file mode 100644 index 00000000..3d4613f1 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBase.java @@ -0,0 +1,375 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFilterRulesBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesBase { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + + public static final String SERIALIZED_NAME_PREFIX = "prefix"; + @SerializedName(SERIALIZED_NAME_PREFIX) + private String prefix; + + public static final String SERIALIZED_NAME_PREFIX_MATCH = "prefixMatch"; + @SerializedName(SERIALIZED_NAME_PREFIX_MATCH) + private String prefixMatch = "orlonger"; + + public RouteFilterRulesBase() { + } + + public RouteFilterRulesBase name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteFilterRulesBase description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided Route Filter Rule description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteFilterRulesBase prefix(String prefix) { + + this.prefix = prefix; + return this; + } + + /** + * Get prefix + * @return prefix + **/ + @javax.annotation.Nullable + + public String getPrefix() { + return prefix; + } + + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + + public RouteFilterRulesBase prefixMatch(String prefixMatch) { + + this.prefixMatch = prefixMatch; + return this; + } + + /** + * Get prefixMatch + * @return prefixMatch + **/ + @javax.annotation.Nullable + + public String getPrefixMatch() { + return prefixMatch; + } + + + public void setPrefixMatch(String prefixMatch) { + this.prefixMatch = prefixMatch; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesBase instance itself + */ + public RouteFilterRulesBase putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesBase routeFilterRulesBase = (RouteFilterRulesBase) o; + return Objects.equals(this.name, routeFilterRulesBase.name) && + Objects.equals(this.description, routeFilterRulesBase.description) && + Objects.equals(this.prefix, routeFilterRulesBase.prefix) && + Objects.equals(this.prefixMatch, routeFilterRulesBase.prefixMatch)&& + Objects.equals(this.additionalProperties, routeFilterRulesBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, prefix, prefixMatch, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesBase {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); + sb.append(" prefixMatch: ").append(toIndentedString(prefixMatch)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("prefix"); + openapiFields.add("prefixMatch"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesBase is not found in the empty JSON string", RouteFilterRulesBase.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("prefix") != null && !jsonObj.get("prefix").isJsonNull()) && !jsonObj.get("prefix").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `prefix` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prefix").toString())); + } + if ((jsonObj.get("prefixMatch") != null && !jsonObj.get("prefixMatch").isJsonNull()) && !jsonObj.get("prefixMatch").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `prefixMatch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prefixMatch").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesBase value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesBase instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesBase + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesBase + */ + public static RouteFilterRulesBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesBase.class); + } + + /** + * Convert an instance of RouteFilterRulesBase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChange.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChange.java new file mode 100644 index 00000000..56d6a50f --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChange.java @@ -0,0 +1,408 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Current state of latest Route Filter Rule change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesChange { + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private String uuid; + + /** + * Type of change + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER_RULE_UPDATE("BGP_IPv4_PREFIX_FILTER_RULE_UPDATE"), + + IPV4_PREFIX_FILTER_RULE_CREATION("BGP_IPv4_PREFIX_FILTER_RULE_CREATION"), + + IPV4_PREFIX_FILTER_RULE_DELETION("BGP_IPv4_PREFIX_FILTER_RULE_DELETION"), + + IPV6_PREFIX_FILTER_RULE_UPDATE("BGP_IPv6_PREFIX_FILTER_RULE_UPDATE"), + + IPV6_PREFIX_FILTER_RULE_CREATION("BGP_IPv6_PREFIX_FILTER_RULE_CREATION"), + + IPV6_PREFIX_FILTER_RULE_DELETION("BGP_IPv6_PREFIX_FILTER_RULE_DELETION"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public RouteFilterRulesChange() { + } + + public RouteFilterRulesChange uuid(String uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Uniquely identifies a change + * @return uuid + **/ + @javax.annotation.Nonnull + + public String getUuid() { + return uuid; + } + + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public RouteFilterRulesChange type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Type of change + * @return type + **/ + @javax.annotation.Nonnull + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFilterRulesChange href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter Change URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesChange instance itself + */ + public RouteFilterRulesChange putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesChange routeFilterRulesChange = (RouteFilterRulesChange) o; + return Objects.equals(this.uuid, routeFilterRulesChange.uuid) && + Objects.equals(this.type, routeFilterRulesChange.type) && + Objects.equals(this.href, routeFilterRulesChange.href)&& + Objects.equals(this.additionalProperties, routeFilterRulesChange.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, type, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesChange {\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("uuid"); + openapiFields.add("type"); + openapiFields.add("href"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("uuid"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesChange + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesChange.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesChange is not found in the empty JSON string", RouteFilterRulesChange.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFilterRulesChange.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesChange.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesChange' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesChange.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesChange value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesChange read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesChange instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesChange given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesChange + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesChange + */ + public static RouteFilterRulesChange fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesChange.class); + } + + /** + * Convert an instance of RouteFilterRulesChange to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeData.java new file mode 100644 index 00000000..ce7bfe57 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeData.java @@ -0,0 +1,640 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeOperation; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.time.OffsetDateTime; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Current state of latest Route Filter Rules change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesChangeData { + /** + * Current outcome of the change flow + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + COMPLETED("COMPLETED"), + + FAILED("FAILED"), + + REQUESTED("REQUESTED"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + private StatusEnum status; + + public static final String SERIALIZED_NAME_CREATED_BY = "createdBy"; + @SerializedName(SERIALIZED_NAME_CREATED_BY) + private String createdBy; + + public static final String SERIALIZED_NAME_CREATED_DATE_TIME = "createdDateTime"; + @SerializedName(SERIALIZED_NAME_CREATED_DATE_TIME) + private OffsetDateTime createdDateTime; + + public static final String SERIALIZED_NAME_UPDATED_BY = "updatedBy"; + @SerializedName(SERIALIZED_NAME_UPDATED_BY) + private String updatedBy; + + public static final String SERIALIZED_NAME_UPDATED_DATE_TIME = "updatedDateTime"; + @SerializedName(SERIALIZED_NAME_UPDATED_DATE_TIME) + private OffsetDateTime updatedDateTime; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private RouteFilterRulesChangeOperation data; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private String uuid; + + /** + * Type of change + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER_RULE_UPDATE("BGP_IPv4_PREFIX_FILTER_RULE_UPDATE"), + + IPV4_PREFIX_FILTER_RULE_CREATION("BGP_IPv4_PREFIX_FILTER_RULE_CREATION"), + + IPV4_PREFIX_FILTER_RULE_DELETION("BGP_IPv4_PREFIX_FILTER_RULE_DELETION"), + + IPV6_PREFIX_FILTER_RULE_UPDATE("BGP_IPv6_PREFIX_FILTER_RULE_UPDATE"), + + IPV6_PREFIX_FILTER_RULE_CREATION("BGP_IPv6_PREFIX_FILTER_RULE_CREATION"), + + IPV6_PREFIX_FILTER_RULE_DELETION("BGP_IPv6_PREFIX_FILTER_RULE_DELETION"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public RouteFilterRulesChangeData() { + } + + public RouteFilterRulesChangeData status(StatusEnum status) { + + this.status = status; + return this; + } + + /** + * Current outcome of the change flow + * @return status + **/ + @javax.annotation.Nullable + + public StatusEnum getStatus() { + return status; + } + + + public void setStatus(StatusEnum status) { + this.status = status; + } + + + public RouteFilterRulesChangeData createdBy(String createdBy) { + + this.createdBy = createdBy; + return this; + } + + /** + * Created by User Key + * @return createdBy + **/ + @javax.annotation.Nullable + + public String getCreatedBy() { + return createdBy; + } + + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + + + public RouteFilterRulesChangeData createdDateTime(OffsetDateTime createdDateTime) { + + this.createdDateTime = createdDateTime; + return this; + } + + /** + * Set when change flow starts + * @return createdDateTime + **/ + @javax.annotation.Nullable + + public OffsetDateTime getCreatedDateTime() { + return createdDateTime; + } + + + public void setCreatedDateTime(OffsetDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + + public RouteFilterRulesChangeData updatedBy(String updatedBy) { + + this.updatedBy = updatedBy; + return this; + } + + /** + * Updated by User Key + * @return updatedBy + **/ + @javax.annotation.Nullable + + public String getUpdatedBy() { + return updatedBy; + } + + + public void setUpdatedBy(String updatedBy) { + this.updatedBy = updatedBy; + } + + + public RouteFilterRulesChangeData updatedDateTime(OffsetDateTime updatedDateTime) { + + this.updatedDateTime = updatedDateTime; + return this; + } + + /** + * Set when change object is updated + * @return updatedDateTime + **/ + @javax.annotation.Nullable + + public OffsetDateTime getUpdatedDateTime() { + return updatedDateTime; + } + + + public void setUpdatedDateTime(OffsetDateTime updatedDateTime) { + this.updatedDateTime = updatedDateTime; + } + + + public RouteFilterRulesChangeData data(RouteFilterRulesChangeOperation data) { + + this.data = data; + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public RouteFilterRulesChangeOperation getData() { + return data; + } + + + public void setData(RouteFilterRulesChangeOperation data) { + this.data = data; + } + + + public RouteFilterRulesChangeData uuid(String uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Uniquely identifies a change + * @return uuid + **/ + @javax.annotation.Nonnull + + public String getUuid() { + return uuid; + } + + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + + public RouteFilterRulesChangeData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Type of change + * @return type + **/ + @javax.annotation.Nonnull + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFilterRulesChangeData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter Change URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesChangeData instance itself + */ + public RouteFilterRulesChangeData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesChangeData routeFilterRulesChangeData = (RouteFilterRulesChangeData) o; + return Objects.equals(this.status, routeFilterRulesChangeData.status) && + Objects.equals(this.createdBy, routeFilterRulesChangeData.createdBy) && + Objects.equals(this.createdDateTime, routeFilterRulesChangeData.createdDateTime) && + Objects.equals(this.updatedBy, routeFilterRulesChangeData.updatedBy) && + Objects.equals(this.updatedDateTime, routeFilterRulesChangeData.updatedDateTime) && + Objects.equals(this.data, routeFilterRulesChangeData.data) && + Objects.equals(this.uuid, routeFilterRulesChangeData.uuid) && + Objects.equals(this.type, routeFilterRulesChangeData.type) && + Objects.equals(this.href, routeFilterRulesChangeData.href)&& + Objects.equals(this.additionalProperties, routeFilterRulesChangeData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(status, createdBy, createdDateTime, updatedBy, updatedDateTime, data, uuid, type, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesChangeData {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); + sb.append(" createdDateTime: ").append(toIndentedString(createdDateTime)).append("\n"); + sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); + sb.append(" updatedDateTime: ").append(toIndentedString(updatedDateTime)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("uuid"); + openapiFields.add("type"); + openapiFields.add("href"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("uuid"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesChangeData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesChangeData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesChangeData is not found in the empty JSON string", RouteFilterRulesChangeData.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFilterRulesChangeData.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + if ((jsonObj.get("createdBy") != null && !jsonObj.get("createdBy").isJsonNull()) && !jsonObj.get("createdBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `createdBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("createdBy").toString())); + } + if ((jsonObj.get("updatedBy") != null && !jsonObj.get("updatedBy").isJsonNull()) && !jsonObj.get("updatedBy").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updatedBy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updatedBy").toString())); + } + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + RouteFilterRulesChangeOperation.validateJsonObject(jsonObj.getAsJsonObject("data")); + } + if (!jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesChangeData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesChangeData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesChangeData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesChangeData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesChangeData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesChangeData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesChangeData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesChangeData + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesChangeData + */ + public static RouteFilterRulesChangeData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesChangeData.class); + } + + /** + * Convert an instance of RouteFilterRulesChangeData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponse.java new file mode 100644 index 00000000..bd22ef2f --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponse.java @@ -0,0 +1,335 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * List of Route Filter Rule changes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesChangeDataResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public RouteFilterRulesChangeDataResponse() { + } + + public RouteFilterRulesChangeDataResponse pagination(Pagination pagination) { + + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + **/ + @javax.annotation.Nullable + + public Pagination getPagination() { + return pagination; + } + + + public void setPagination(Pagination pagination) { + this.pagination = pagination; + } + + + public RouteFilterRulesChangeDataResponse data(List data) { + + this.data = data; + return this; + } + + public RouteFilterRulesChangeDataResponse addDataItem(RouteFilterRulesChangeData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesChangeDataResponse instance itself + */ + public RouteFilterRulesChangeDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesChangeDataResponse routeFilterRulesChangeDataResponse = (RouteFilterRulesChangeDataResponse) o; + return Objects.equals(this.pagination, routeFilterRulesChangeDataResponse.pagination) && + Objects.equals(this.data, routeFilterRulesChangeDataResponse.data)&& + Objects.equals(this.additionalProperties, routeFilterRulesChangeDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesChangeDataResponse {\n"); + sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("pagination"); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesChangeDataResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesChangeDataResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesChangeDataResponse is not found in the empty JSON string", RouteFilterRulesChangeDataResponse.openapiRequiredFields.toString())); + } + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonObject(jsonObj.getAsJsonObject("pagination")); + } + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + RouteFilterRulesChangeData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesChangeDataResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesChangeDataResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesChangeDataResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesChangeDataResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesChangeDataResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesChangeDataResponse instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesChangeDataResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesChangeDataResponse + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesChangeDataResponse + */ + public static RouteFilterRulesChangeDataResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesChangeDataResponse.class); + } + + /** + * Convert an instance of RouteFilterRulesChangeDataResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperation.java new file mode 100644 index 00000000..feb0519b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperation.java @@ -0,0 +1,520 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Route Filter change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesChangeOperation { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + + /** + * type of filter rule + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER_RULE_UPDATE("BGP_IPv4_PREFIX_FILTER_RULE_UPDATE"), + + IPV4_PREFIX_FILTER_RULE_CREATION("BGP_IPv4_PREFIX_FILTER_RULE_CREATION"), + + IPV4_PREFIX_FILTER_RULE_DELETION("BGP_IPv4_PREFIX_FILTER_RULE_DELETION"), + + IPV6_PREFIX_FILTER_RULE_UPDATE("BGP_IPv6_PREFIX_FILTER_RULE_UPDATE"), + + IPV6_PREFIX_FILTER_RULE_CREATION("BGP_IPv6_PREFIX_FILTER_RULE_CREATION"), + + IPV6_PREFIX_FILTER_RULE_DELETION("BGP_IPv6_PREFIX_FILTER_RULE_DELETION"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_PREFIX = "prefix"; + @SerializedName(SERIALIZED_NAME_PREFIX) + private String prefix; + + /** + * change to be made + */ + @JsonAdapter(ActionEnum.Adapter.class) + public enum ActionEnum { + PERMIT("PERMIT"), + + DENY("DENY"); + + private String value; + + ActionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionEnum fromValue(String value) { + for (ActionEnum b : ActionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_ACTION = "action"; + @SerializedName(SERIALIZED_NAME_ACTION) + private ActionEnum action; + + public RouteFilterRulesChangeOperation() { + } + + public RouteFilterRulesChangeOperation name(String name) { + + this.name = name; + return this; + } + + /** + * name of route filter rule + * @return name + **/ + @javax.annotation.Nonnull + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteFilterRulesChangeOperation description(String description) { + + this.description = description; + return this; + } + + /** + * cust provided description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteFilterRulesChangeOperation type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * type of filter rule + * @return type + **/ + @javax.annotation.Nonnull + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFilterRulesChangeOperation prefix(String prefix) { + + this.prefix = prefix; + return this; + } + + /** + * given prefix (does not change) + * @return prefix + **/ + @javax.annotation.Nonnull + + public String getPrefix() { + return prefix; + } + + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + + public RouteFilterRulesChangeOperation action(ActionEnum action) { + + this.action = action; + return this; + } + + /** + * change to be made + * @return action + **/ + @javax.annotation.Nonnull + + public ActionEnum getAction() { + return action; + } + + + public void setAction(ActionEnum action) { + this.action = action; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesChangeOperation instance itself + */ + public RouteFilterRulesChangeOperation putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesChangeOperation routeFilterRulesChangeOperation = (RouteFilterRulesChangeOperation) o; + return Objects.equals(this.name, routeFilterRulesChangeOperation.name) && + Objects.equals(this.description, routeFilterRulesChangeOperation.description) && + Objects.equals(this.type, routeFilterRulesChangeOperation.type) && + Objects.equals(this.prefix, routeFilterRulesChangeOperation.prefix) && + Objects.equals(this.action, routeFilterRulesChangeOperation.action)&& + Objects.equals(this.additionalProperties, routeFilterRulesChangeOperation.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, type, prefix, action, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesChangeOperation {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("type"); + openapiFields.add("prefix"); + openapiFields.add("action"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("prefix"); + openapiRequiredFields.add("action"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesChangeOperation + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesChangeOperation.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesChangeOperation is not found in the empty JSON string", RouteFilterRulesChangeOperation.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFilterRulesChangeOperation.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if (!jsonObj.get("prefix").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `prefix` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prefix").toString())); + } + if (!jsonObj.get("action").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `action` to be a primitive type in the JSON string but got `%s`", jsonObj.get("action").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesChangeOperation.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesChangeOperation' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesChangeOperation.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesChangeOperation value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesChangeOperation read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesChangeOperation instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesChangeOperation given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesChangeOperation + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesChangeOperation + */ + public static RouteFilterRulesChangeOperation fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesChangeOperation.class); + } + + /** + * Convert an instance of RouteFilterRulesChangeOperation to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesData.java new file mode 100644 index 00000000..ee7f07f9 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesData.java @@ -0,0 +1,667 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChange; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFilterRulesData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Filter type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER_RULE("BGP_IPv4_PREFIX_FILTER_RULE"), + + IPV6_PREFIX_FILTER_RULE("BGP_IPv6_PREFIX_FILTER_RULE"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private UUID uuid; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + + public static final String SERIALIZED_NAME_PREFIX_MATCH = "prefixMatch"; + @SerializedName(SERIALIZED_NAME_PREFIX_MATCH) + private String prefixMatch = "orlonger"; + + public static final String SERIALIZED_NAME_CHANGE = "change"; + @SerializedName(SERIALIZED_NAME_CHANGE) + private RouteFilterRulesChange change; + + /** + * Gets or Sets action + */ + @JsonAdapter(ActionEnum.Adapter.class) + public enum ActionEnum { + PERMIT("PERMIT"), + + DENY("DENY"); + + private String value; + + ActionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionEnum fromValue(String value) { + for (ActionEnum b : ActionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_ACTION = "action"; + @SerializedName(SERIALIZED_NAME_ACTION) + private ActionEnum action; + + public static final String SERIALIZED_NAME_PREFIX = "prefix"; + @SerializedName(SERIALIZED_NAME_PREFIX) + private String prefix; + + public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + private Changelog changelog; + + public RouteFilterRulesData() { + } + + public RouteFilterRulesData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter Rules URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public RouteFilterRulesData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Filter type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFilterRulesData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Filter Rule identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteFilterRulesData name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteFilterRulesData description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided Route Filter Rule description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteFilterRulesData prefixMatch(String prefixMatch) { + + this.prefixMatch = prefixMatch; + return this; + } + + /** + * prefix matching operator + * @return prefixMatch + **/ + @javax.annotation.Nullable + + public String getPrefixMatch() { + return prefixMatch; + } + + + public void setPrefixMatch(String prefixMatch) { + this.prefixMatch = prefixMatch; + } + + + public RouteFilterRulesData change(RouteFilterRulesChange change) { + + this.change = change; + return this; + } + + /** + * Get change + * @return change + **/ + @javax.annotation.Nullable + + public RouteFilterRulesChange getChange() { + return change; + } + + + public void setChange(RouteFilterRulesChange change) { + this.change = change; + } + + + public RouteFilterRulesData action(ActionEnum action) { + + this.action = action; + return this; + } + + /** + * Get action + * @return action + **/ + @javax.annotation.Nullable + + public ActionEnum getAction() { + return action; + } + + + public void setAction(ActionEnum action) { + this.action = action; + } + + + public RouteFilterRulesData prefix(String prefix) { + + this.prefix = prefix; + return this; + } + + /** + * Get prefix + * @return prefix + **/ + @javax.annotation.Nullable + + public String getPrefix() { + return prefix; + } + + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + + public RouteFilterRulesData changelog(Changelog changelog) { + + this.changelog = changelog; + return this; + } + + /** + * Get changelog + * @return changelog + **/ + @javax.annotation.Nullable + + public Changelog getChangelog() { + return changelog; + } + + + public void setChangelog(Changelog changelog) { + this.changelog = changelog; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesData instance itself + */ + public RouteFilterRulesData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesData routeFilterRulesData = (RouteFilterRulesData) o; + return Objects.equals(this.href, routeFilterRulesData.href) && + Objects.equals(this.type, routeFilterRulesData.type) && + Objects.equals(this.uuid, routeFilterRulesData.uuid) && + Objects.equals(this.name, routeFilterRulesData.name) && + Objects.equals(this.description, routeFilterRulesData.description) && + Objects.equals(this.prefixMatch, routeFilterRulesData.prefixMatch) && + Objects.equals(this.change, routeFilterRulesData.change) && + Objects.equals(this.action, routeFilterRulesData.action) && + Objects.equals(this.prefix, routeFilterRulesData.prefix) && + Objects.equals(this.changelog, routeFilterRulesData.changelog)&& + Objects.equals(this.additionalProperties, routeFilterRulesData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, prefixMatch, change, action, prefix, changelog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesData {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" prefixMatch: ").append(toIndentedString(prefixMatch)).append("\n"); + sb.append(" change: ").append(toIndentedString(change)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" prefix: ").append(toIndentedString(prefix)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("href"); + openapiFields.add("type"); + openapiFields.add("uuid"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("prefixMatch"); + openapiFields.add("change"); + openapiFields.add("action"); + openapiFields.add("prefix"); + openapiFields.add("changelog"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesData is not found in the empty JSON string", RouteFilterRulesData.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("prefixMatch") != null && !jsonObj.get("prefixMatch").isJsonNull()) && !jsonObj.get("prefixMatch").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `prefixMatch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prefixMatch").toString())); + } + // validate the optional field `change` + if (jsonObj.get("change") != null && !jsonObj.get("change").isJsonNull()) { + RouteFilterRulesChange.validateJsonObject(jsonObj.getAsJsonObject("change")); + } + if ((jsonObj.get("action") != null && !jsonObj.get("action").isJsonNull()) && !jsonObj.get("action").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `action` to be a primitive type in the JSON string but got `%s`", jsonObj.get("action").toString())); + } + if ((jsonObj.get("prefix") != null && !jsonObj.get("prefix").isJsonNull()) && !jsonObj.get("prefix").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `prefix` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prefix").toString())); + } + // validate the optional field `changelog` + if (jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) { + Changelog.validateJsonObject(jsonObj.getAsJsonObject("changelog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesData + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesData + */ + public static RouteFilterRulesData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesData.class); + } + + /** + * Convert an instance of RouteFilterRulesData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequest.java new file mode 100644 index 00000000..8dbba90b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequest.java @@ -0,0 +1,301 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesBase; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Create Route Filter Rule POST request + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFilterRulesPostRequest { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public RouteFilterRulesPostRequest() { + } + + public RouteFilterRulesPostRequest data(List data) { + + this.data = data; + return this; + } + + public RouteFilterRulesPostRequest addDataItem(RouteFilterRulesBase dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Route Filter Rule configuration + * @return data + **/ + @javax.annotation.Nullable + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFilterRulesPostRequest instance itself + */ + public RouteFilterRulesPostRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFilterRulesPostRequest routeFilterRulesPostRequest = (RouteFilterRulesPostRequest) o; + return Objects.equals(this.data, routeFilterRulesPostRequest.data)&& + Objects.equals(this.additionalProperties, routeFilterRulesPostRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesPostRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFilterRulesPostRequest + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFilterRulesPostRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFilterRulesPostRequest is not found in the empty JSON string", RouteFilterRulesPostRequest.openapiRequiredFields.toString())); + } + } + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + RouteFilterRulesBase.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesPostRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesPostRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesPostRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesPostRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesPostRequest read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFilterRulesPostRequest instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFilterRulesPostRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesPostRequest + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesPostRequest + */ + public static RouteFilterRulesPostRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesPostRequest.class); + } + + /** + * Convert an instance of RouteFilterRulesPostRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterState.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterState.java new file mode 100644 index 00000000..fa36e69b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterState.java @@ -0,0 +1,82 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Route Filter status + */ +@JsonAdapter(RouteFilterState.Adapter.class) +public enum RouteFilterState { + + PROVISIONING("PROVISIONING"), + + REPROVISIONING("REPROVISIONING"), + + DEPROVISIONING("DEPROVISIONING"), + + PROVISIONED("PROVISIONED"), + + DEPROVISIONED("DEPROVISIONED"), + + NOT_PROVISIONED("NOT_PROVISIONED"), + + NOT_DEPROVISIONED("NOT_DEPROVISIONED"); + + private String value; + + RouteFilterState(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteFilterState fromValue(String value) { + for (RouteFilterState b : RouteFilterState.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RouteFilterState enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteFilterState read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteFilterState.fromValue(value); + } + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBase.java new file mode 100644 index 00000000..0a01a446 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBase.java @@ -0,0 +1,478 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Project; +import com.equinix.openapi.fabric.v4.model.SimplifiedNotification; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFiltersBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFiltersBase { + /** + * Route Filter type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER("BGP_IPv4_PREFIX_FILTER"), + + IPV6_PREFIX_FILTER("BGP_IPv6_PREFIX_FILTER"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + private Project project; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "notifications"; + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + private List notifications = new ArrayList<>(); + + public RouteFiltersBase() { + } + + public RouteFiltersBase type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Filter type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFiltersBase name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteFiltersBase description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided connection description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteFiltersBase project(Project project) { + + this.project = project; + return this; + } + + /** + * Get project + * @return project + **/ + @javax.annotation.Nullable + + public Project getProject() { + return project; + } + + + public void setProject(Project project) { + this.project = project; + } + + + public RouteFiltersBase notifications(List notifications) { + + this.notifications = notifications; + return this; + } + + public RouteFiltersBase addNotificationsItem(SimplifiedNotification notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * Preferences for notifications on route filter configuration or status changes + * @return notifications + **/ + @javax.annotation.Nullable + + public List getNotifications() { + return notifications; + } + + + public void setNotifications(List notifications) { + this.notifications = notifications; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFiltersBase instance itself + */ + public RouteFiltersBase putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFiltersBase routeFiltersBase = (RouteFiltersBase) o; + return Objects.equals(this.type, routeFiltersBase.type) && + Objects.equals(this.name, routeFiltersBase.name) && + Objects.equals(this.description, routeFiltersBase.description) && + Objects.equals(this.project, routeFiltersBase.project) && + Objects.equals(this.notifications, routeFiltersBase.notifications)&& + Objects.equals(this.additionalProperties, routeFiltersBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, name, description, project, notifications, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFiltersBase {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("project"); + openapiFields.add("notifications"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFiltersBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersBase is not found in the empty JSON string", RouteFiltersBase.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + // validate the optional field `project` + if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { + Project.validateJsonObject(jsonObj.getAsJsonObject("project")); + } + if (jsonObj.get("notifications") != null && !jsonObj.get("notifications").isJsonNull()) { + JsonArray jsonArraynotifications = jsonObj.getAsJsonArray("notifications"); + if (jsonArraynotifications != null) { + // ensure the json data is an array + if (!jsonObj.get("notifications").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notifications` to be an array in the JSON string but got `%s`", jsonObj.get("notifications").toString())); + } + + // validate the optional field `notifications` (array) + for (int i = 0; i < jsonArraynotifications.size(); i++) { + SimplifiedNotification.validateJsonObject(jsonArraynotifications.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFiltersBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFiltersBase value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFiltersBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFiltersBase instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFiltersBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFiltersBase + * @throws IOException if the JSON string is invalid with respect to RouteFiltersBase + */ + public static RouteFiltersBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersBase.class); + } + + /** + * Convert an instance of RouteFiltersBase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionLink.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java similarity index 76% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionLink.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java index e3e4252c..fd4713f9 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionLink.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java @@ -21,7 +21,6 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.net.URI; -import java.util.UUID; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -45,20 +44,30 @@ import com.equinix.openapi.fabric.JSON; /** - * ConnectionLink + * Current state of latest Route Filter change */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class ConnectionLink { - public static final String SERIALIZED_NAME_HREF = "href"; - @SerializedName(SERIALIZED_NAME_HREF) - private URI href; +public class RouteFiltersChange { + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private String uuid; /** - * Gets or Sets type + * Type of change */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { - EVPL_VC("EVPL_VC"); + IPV4_PREFIX_FILTER_UPDATE("BGP_IPv4_PREFIX_FILTER_UPDATE"), + + IPV4_PREFIX_FILTER_CREATION("BGP_IPv4_PREFIX_FILTER_CREATION"), + + IPV4_PREFIX_FILTER_DELETION("BGP_IPv4_PREFIX_FILTER_DELETION"), + + IPV6_PREFIX_FILTER_UPDATE("BGP_IPv6_PREFIX_FILTER_UPDATE"), + + IPV6_PREFIX_FILTER_CREATION("BGP_IPv6_PREFIX_FILTER_CREATION"), + + IPV6_PREFIX_FILTER_DELETION("BGP_IPv6_PREFIX_FILTER_DELETION"); private String value; @@ -102,46 +111,46 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TYPE) private TypeEnum type; - public static final String SERIALIZED_NAME_UUID = "uuid"; - @SerializedName(SERIALIZED_NAME_UUID) - private UUID uuid; + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; - public ConnectionLink() { + public RouteFiltersChange() { } - public ConnectionLink href(URI href) { + public RouteFiltersChange uuid(String uuid) { - this.href = href; + this.uuid = uuid; return this; } /** - * Get href - * @return href + * Uniquely identifies a change + * @return uuid **/ - @javax.annotation.Nullable + @javax.annotation.Nonnull - public URI getHref() { - return href; + public String getUuid() { + return uuid; } - public void setHref(URI href) { - this.href = href; + public void setUuid(String uuid) { + this.uuid = uuid; } - public ConnectionLink type(TypeEnum type) { + public RouteFiltersChange type(TypeEnum type) { this.type = type; return this; } /** - * Get type + * Type of change * @return type **/ - @javax.annotation.Nullable + @javax.annotation.Nonnull public TypeEnum getType() { return type; @@ -153,25 +162,25 @@ public void setType(TypeEnum type) { } - public ConnectionLink uuid(UUID uuid) { + public RouteFiltersChange href(URI href) { - this.uuid = uuid; + this.href = href; return this; } /** - * Get uuid - * @return uuid + * Route Filter Change URI + * @return href **/ @javax.annotation.Nullable - public UUID getUuid() { - return uuid; + public URI getHref() { + return href; } - public void setUuid(UUID uuid) { - this.uuid = uuid; + public void setHref(URI href) { + this.href = href; } /** @@ -187,9 +196,9 @@ public void setUuid(UUID uuid) { * * @param key name of the property * @param value value of the property - * @return the ConnectionLink instance itself + * @return the RouteFiltersChange instance itself */ - public ConnectionLink putAdditionalProperty(String key, Object value) { + public RouteFiltersChange putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -228,25 +237,25 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ConnectionLink connectionLink = (ConnectionLink) o; - return Objects.equals(this.href, connectionLink.href) && - Objects.equals(this.type, connectionLink.type) && - Objects.equals(this.uuid, connectionLink.uuid)&& - Objects.equals(this.additionalProperties, connectionLink.additionalProperties); + RouteFiltersChange routeFiltersChange = (RouteFiltersChange) o; + return Objects.equals(this.uuid, routeFiltersChange.uuid) && + Objects.equals(this.type, routeFiltersChange.type) && + Objects.equals(this.href, routeFiltersChange.href)&& + Objects.equals(this.additionalProperties, routeFiltersChange.additionalProperties); } @Override public int hashCode() { - return Objects.hash(href, type, uuid, additionalProperties); + return Objects.hash(uuid, type, href, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ConnectionLink {\n"); - sb.append(" href: ").append(toIndentedString(href)).append("\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("class RouteFiltersChange {\n"); sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -270,34 +279,43 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("href"); - openapiFields.add("type"); openapiFields.add("uuid"); + openapiFields.add("type"); + openapiFields.add("href"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("uuid"); + openapiRequiredFields.add("type"); } /** * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to ConnectionLink + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersChange */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!ConnectionLink.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in ConnectionLink is not found in the empty JSON string", ConnectionLink.openapiRequiredFields.toString())); + if (!RouteFiltersChange.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersChange is not found in the empty JSON string", RouteFiltersChange.openapiRequiredFields.toString())); } } - if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFiltersChange.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); } - if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + if (!jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } - if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); } } @@ -305,16 +323,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!ConnectionLink.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'ConnectionLink' and its subtypes + if (!RouteFiltersChange.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersChange' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(ConnectionLink.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersChange.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, ConnectionLink value) throws IOException { + public void write(JsonWriter out, RouteFiltersChange value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -337,11 +355,11 @@ else if (entry.getValue() instanceof Character) } @Override - public ConnectionLink read(JsonReader in) throws IOException { + public RouteFiltersChange read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - ConnectionLink instance = thisAdapter.fromJsonTree(jsonObj); + RouteFiltersChange instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -368,18 +386,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of ConnectionLink given an JSON string + * Create an instance of RouteFiltersChange given an JSON string * * @param jsonString JSON string - * @return An instance of ConnectionLink - * @throws IOException if the JSON string is invalid with respect to ConnectionLink + * @return An instance of RouteFiltersChange + * @throws IOException if the JSON string is invalid with respect to RouteFiltersChange */ - public static ConnectionLink fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, ConnectionLink.class); + public static RouteFiltersChange fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersChange.class); } /** - * Convert an instance of ConnectionLink to an JSON string + * Convert an instance of RouteFiltersChange to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperation.java new file mode 100644 index 00000000..eb59a8a5 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperation.java @@ -0,0 +1,402 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.RouteFiltersBase; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Route Filter change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFiltersChangeOperation { + /** + * Handy shortcut for operation name + */ + @JsonAdapter(OpEnum.Adapter.class) + public enum OpEnum { + ADD("add"), + + REPLACE("replace"), + + REMOVE("remove"); + + private String value; + + OpEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OpEnum fromValue(String value) { + for (OpEnum b : OpEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OpEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OpEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OpEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_OP = "op"; + @SerializedName(SERIALIZED_NAME_OP) + private OpEnum op; + + public static final String SERIALIZED_NAME_PATH = "path"; + @SerializedName(SERIALIZED_NAME_PATH) + private String path; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private RouteFiltersBase value; + + public RouteFiltersChangeOperation() { + } + + public RouteFiltersChangeOperation op(OpEnum op) { + + this.op = op; + return this; + } + + /** + * Handy shortcut for operation name + * @return op + **/ + @javax.annotation.Nonnull + + public OpEnum getOp() { + return op; + } + + + public void setOp(OpEnum op) { + this.op = op; + } + + + public RouteFiltersChangeOperation path(String path) { + + this.path = path; + return this; + } + + /** + * path inside document leading to updated parameter + * @return path + **/ + @javax.annotation.Nonnull + + public String getPath() { + return path; + } + + + public void setPath(String path) { + this.path = path; + } + + + public RouteFiltersChangeOperation value(RouteFiltersBase value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @javax.annotation.Nonnull + + public RouteFiltersBase getValue() { + return value; + } + + + public void setValue(RouteFiltersBase value) { + this.value = value; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFiltersChangeOperation instance itself + */ + public RouteFiltersChangeOperation putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFiltersChangeOperation routeFiltersChangeOperation = (RouteFiltersChangeOperation) o; + return Objects.equals(this.op, routeFiltersChangeOperation.op) && + Objects.equals(this.path, routeFiltersChangeOperation.path) && + Objects.equals(this.value, routeFiltersChangeOperation.value)&& + Objects.equals(this.additionalProperties, routeFiltersChangeOperation.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFiltersChangeOperation {\n"); + sb.append(" op: ").append(toIndentedString(op)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("op"); + openapiFields.add("path"); + openapiFields.add("value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("op"); + openapiRequiredFields.add("path"); + openapiRequiredFields.add("value"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersChangeOperation + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFiltersChangeOperation.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersChangeOperation is not found in the empty JSON string", RouteFiltersChangeOperation.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFiltersChangeOperation.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("op").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `op` to be a primitive type in the JSON string but got `%s`", jsonObj.get("op").toString())); + } + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } + // validate the required field `value` + RouteFiltersBase.validateJsonObject(jsonObj.getAsJsonObject("value")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFiltersChangeOperation.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersChangeOperation' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersChangeOperation.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFiltersChangeOperation value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFiltersChangeOperation read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFiltersChangeOperation instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFiltersChangeOperation given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFiltersChangeOperation + * @throws IOException if the JSON string is invalid with respect to RouteFiltersChangeOperation + */ + public static RouteFiltersChangeOperation fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersChangeOperation.class); + } + + /** + * Convert an instance of RouteFiltersChangeOperation to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersData.java new file mode 100644 index 00000000..0b2c0c2b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersData.java @@ -0,0 +1,750 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.RouteFilterState; +import com.equinix.openapi.fabric.v4.model.RouteFiltersChange; +import com.equinix.openapi.fabric.v4.model.RouteFiltersDataProject; +import com.equinix.openapi.fabric.v4.model.SimplifiedNotification; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFiltersData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFiltersData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Filter type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_FILTER("BGP_IPv4_PREFIX_FILTER"), + + IPV6_PREFIX_FILTER("BGP_IPv6_PREFIX_FILTER"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private TypeEnum type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private UUID uuid; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + + public static final String SERIALIZED_NAME_STATE = "state"; + @SerializedName(SERIALIZED_NAME_STATE) + private RouteFilterState state; + + public static final String SERIALIZED_NAME_CHANGE = "change"; + @SerializedName(SERIALIZED_NAME_CHANGE) + private RouteFiltersChange change; + + /** + * Gets or Sets notMatchedRuleAction + */ + @JsonAdapter(NotMatchedRuleActionEnum.Adapter.class) + public enum NotMatchedRuleActionEnum { + ALLOW("ALLOW"), + + DENY("DENY"); + + private String value; + + NotMatchedRuleActionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotMatchedRuleActionEnum fromValue(String value) { + for (NotMatchedRuleActionEnum b : NotMatchedRuleActionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotMatchedRuleActionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotMatchedRuleActionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotMatchedRuleActionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_NOT_MATCHED_RULE_ACTION = "notMatchedRuleAction"; + @SerializedName(SERIALIZED_NAME_NOT_MATCHED_RULE_ACTION) + private NotMatchedRuleActionEnum notMatchedRuleAction; + + public static final String SERIALIZED_NAME_CONNECTIONS_COUNT = "connectionsCount"; + @SerializedName(SERIALIZED_NAME_CONNECTIONS_COUNT) + private Integer connectionsCount; + + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + private RouteFiltersDataProject project; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "notifications"; + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + private List notifications = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; + @SerializedName(SERIALIZED_NAME_CHANGELOG) + private Changelog changelog; + + public RouteFiltersData() { + } + + public RouteFiltersData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Filter URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public RouteFiltersData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Filter type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteFiltersData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Filter identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteFiltersData name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nullable + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteFiltersData description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided connection description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteFiltersData state(RouteFilterState state) { + + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @javax.annotation.Nullable + + public RouteFilterState getState() { + return state; + } + + + public void setState(RouteFilterState state) { + this.state = state; + } + + + public RouteFiltersData change(RouteFiltersChange change) { + + this.change = change; + return this; + } + + /** + * Get change + * @return change + **/ + @javax.annotation.Nullable + + public RouteFiltersChange getChange() { + return change; + } + + + public void setChange(RouteFiltersChange change) { + this.change = change; + } + + + public RouteFiltersData notMatchedRuleAction(NotMatchedRuleActionEnum notMatchedRuleAction) { + + this.notMatchedRuleAction = notMatchedRuleAction; + return this; + } + + /** + * Get notMatchedRuleAction + * @return notMatchedRuleAction + **/ + @javax.annotation.Nullable + + public NotMatchedRuleActionEnum getNotMatchedRuleAction() { + return notMatchedRuleAction; + } + + + public void setNotMatchedRuleAction(NotMatchedRuleActionEnum notMatchedRuleAction) { + this.notMatchedRuleAction = notMatchedRuleAction; + } + + + public RouteFiltersData connectionsCount(Integer connectionsCount) { + + this.connectionsCount = connectionsCount; + return this; + } + + /** + * Get connectionsCount + * @return connectionsCount + **/ + @javax.annotation.Nullable + + public Integer getConnectionsCount() { + return connectionsCount; + } + + + public void setConnectionsCount(Integer connectionsCount) { + this.connectionsCount = connectionsCount; + } + + + public RouteFiltersData project(RouteFiltersDataProject project) { + + this.project = project; + return this; + } + + /** + * Get project + * @return project + **/ + @javax.annotation.Nullable + + public RouteFiltersDataProject getProject() { + return project; + } + + + public void setProject(RouteFiltersDataProject project) { + this.project = project; + } + + + public RouteFiltersData notifications(List notifications) { + + this.notifications = notifications; + return this; + } + + public RouteFiltersData addNotificationsItem(SimplifiedNotification notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * Preferences for notifications on route filter configuration or status changes + * @return notifications + **/ + @javax.annotation.Nullable + + public List getNotifications() { + return notifications; + } + + + public void setNotifications(List notifications) { + this.notifications = notifications; + } + + + public RouteFiltersData changelog(Changelog changelog) { + + this.changelog = changelog; + return this; + } + + /** + * Get changelog + * @return changelog + **/ + @javax.annotation.Nullable + + public Changelog getChangelog() { + return changelog; + } + + + public void setChangelog(Changelog changelog) { + this.changelog = changelog; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFiltersData instance itself + */ + public RouteFiltersData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFiltersData routeFiltersData = (RouteFiltersData) o; + return Objects.equals(this.href, routeFiltersData.href) && + Objects.equals(this.type, routeFiltersData.type) && + Objects.equals(this.uuid, routeFiltersData.uuid) && + Objects.equals(this.name, routeFiltersData.name) && + Objects.equals(this.description, routeFiltersData.description) && + Objects.equals(this.state, routeFiltersData.state) && + Objects.equals(this.change, routeFiltersData.change) && + Objects.equals(this.notMatchedRuleAction, routeFiltersData.notMatchedRuleAction) && + Objects.equals(this.connectionsCount, routeFiltersData.connectionsCount) && + Objects.equals(this.project, routeFiltersData.project) && + Objects.equals(this.notifications, routeFiltersData.notifications) && + Objects.equals(this.changelog, routeFiltersData.changelog)&& + Objects.equals(this.additionalProperties, routeFiltersData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, state, change, notMatchedRuleAction, connectionsCount, project, notifications, changelog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFiltersData {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" change: ").append(toIndentedString(change)).append("\n"); + sb.append(" notMatchedRuleAction: ").append(toIndentedString(notMatchedRuleAction)).append("\n"); + sb.append(" connectionsCount: ").append(toIndentedString(connectionsCount)).append("\n"); + sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("href"); + openapiFields.add("type"); + openapiFields.add("uuid"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("state"); + openapiFields.add("change"); + openapiFields.add("notMatchedRuleAction"); + openapiFields.add("connectionsCount"); + openapiFields.add("project"); + openapiFields.add("notifications"); + openapiFields.add("changelog"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFiltersData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersData is not found in the empty JSON string", RouteFiltersData.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + // validate the optional field `change` + if (jsonObj.get("change") != null && !jsonObj.get("change").isJsonNull()) { + RouteFiltersChange.validateJsonObject(jsonObj.getAsJsonObject("change")); + } + if ((jsonObj.get("notMatchedRuleAction") != null && !jsonObj.get("notMatchedRuleAction").isJsonNull()) && !jsonObj.get("notMatchedRuleAction").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `notMatchedRuleAction` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notMatchedRuleAction").toString())); + } + // validate the optional field `project` + if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { + RouteFiltersDataProject.validateJsonObject(jsonObj.getAsJsonObject("project")); + } + if (jsonObj.get("notifications") != null && !jsonObj.get("notifications").isJsonNull()) { + JsonArray jsonArraynotifications = jsonObj.getAsJsonArray("notifications"); + if (jsonArraynotifications != null) { + // ensure the json data is an array + if (!jsonObj.get("notifications").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notifications` to be an array in the JSON string but got `%s`", jsonObj.get("notifications").toString())); + } + + // validate the optional field `notifications` (array) + for (int i = 0; i < jsonArraynotifications.size(); i++) { + SimplifiedNotification.validateJsonObject(jsonArraynotifications.get(i).getAsJsonObject()); + }; + } + } + // validate the optional field `changelog` + if (jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) { + Changelog.validateJsonObject(jsonObj.getAsJsonObject("changelog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFiltersData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFiltersData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFiltersData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFiltersData instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFiltersData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFiltersData + * @throws IOException if the JSON string is invalid with respect to RouteFiltersData + */ + public static RouteFiltersData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersData.class); + } + + /** + * Convert an instance of RouteFiltersData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProject.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProject.java new file mode 100644 index 00000000..474a8a0f --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProject.java @@ -0,0 +1,320 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * RouteFiltersDataProject + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteFiltersDataProject { + public static final String SERIALIZED_NAME_PROJECT_ID = "projectId"; + @SerializedName(SERIALIZED_NAME_PROJECT_ID) + private String projectId; + + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public RouteFiltersDataProject() { + } + + public RouteFiltersDataProject projectId(String projectId) { + + this.projectId = projectId; + return this; + } + + /** + * Subscriber-assigned project ID + * @return projectId + **/ + @javax.annotation.Nonnull + + public String getProjectId() { + return projectId; + } + + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + + public RouteFiltersDataProject href(URI href) { + + this.href = href; + return this; + } + + /** + * Project URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the RouteFiltersDataProject instance itself + */ + public RouteFiltersDataProject putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RouteFiltersDataProject routeFiltersDataProject = (RouteFiltersDataProject) o; + return Objects.equals(this.projectId, routeFiltersDataProject.projectId) && + Objects.equals(this.href, routeFiltersDataProject.href)&& + Objects.equals(this.additionalProperties, routeFiltersDataProject.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(projectId, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFiltersDataProject {\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("projectId"); + openapiFields.add("href"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("projectId"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersDataProject + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteFiltersDataProject.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersDataProject is not found in the empty JSON string", RouteFiltersDataProject.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteFiltersDataProject.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("projectId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `projectId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("projectId").toString())); + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFiltersDataProject.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersDataProject' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersDataProject.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFiltersDataProject value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFiltersDataProject read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteFiltersDataProject instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RouteFiltersDataProject given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFiltersDataProject + * @throws IOException if the JSON string is invalid with respect to RouteFiltersDataProject + */ + public static RouteFiltersDataProject fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersDataProject.class); + } + + /** + * Convert an instance of RouteFiltersDataProject to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOf.java similarity index 73% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequest.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOf.java index 1b8b5471..f838443f 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOf.java @@ -14,13 +14,13 @@ import java.util.Objects; import java.util.Arrays; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilter; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.net.URI; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -44,36 +44,36 @@ import com.equinix.openapi.fabric.JSON; /** - * Validate connection auth api key or vlan + * RouteFiltersDataProjectAllOf */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class ValidateConnectionRequest { - public static final String SERIALIZED_NAME_FILTER = "filter"; - @SerializedName(SERIALIZED_NAME_FILTER) - private ValidateSubnetRequestFilter filter; +public class RouteFiltersDataProjectAllOf { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; - public ValidateConnectionRequest() { + public RouteFiltersDataProjectAllOf() { } - public ValidateConnectionRequest filter(ValidateSubnetRequestFilter filter) { + public RouteFiltersDataProjectAllOf href(URI href) { - this.filter = filter; + this.href = href; return this; } /** - * Get filter - * @return filter + * Project URI + * @return href **/ @javax.annotation.Nullable - public ValidateSubnetRequestFilter getFilter() { - return filter; + public URI getHref() { + return href; } - public void setFilter(ValidateSubnetRequestFilter filter) { - this.filter = filter; + public void setHref(URI href) { + this.href = href; } /** @@ -89,9 +89,9 @@ public void setFilter(ValidateSubnetRequestFilter filter) { * * @param key name of the property * @param value value of the property - * @return the ValidateConnectionRequest instance itself + * @return the RouteFiltersDataProjectAllOf instance itself */ - public ValidateConnectionRequest putAdditionalProperty(String key, Object value) { + public RouteFiltersDataProjectAllOf putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -130,21 +130,21 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ValidateConnectionRequest validateConnectionRequest = (ValidateConnectionRequest) o; - return Objects.equals(this.filter, validateConnectionRequest.filter)&& - Objects.equals(this.additionalProperties, validateConnectionRequest.additionalProperties); + RouteFiltersDataProjectAllOf routeFiltersDataProjectAllOf = (RouteFiltersDataProjectAllOf) o; + return Objects.equals(this.href, routeFiltersDataProjectAllOf.href)&& + Objects.equals(this.additionalProperties, routeFiltersDataProjectAllOf.additionalProperties); } @Override public int hashCode() { - return Objects.hash(filter, additionalProperties); + return Objects.hash(href, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ValidateConnectionRequest {\n"); - sb.append(" filter: ").append(toIndentedString(filter)).append("\n"); + sb.append("class RouteFiltersDataProjectAllOf {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -168,7 +168,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("filter"); + openapiFields.add("href"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -178,17 +178,16 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to ValidateConnectionRequest + * @throws IOException if the JSON Object is invalid with respect to RouteFiltersDataProjectAllOf */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!ValidateConnectionRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateConnectionRequest is not found in the empty JSON string", ValidateConnectionRequest.openapiRequiredFields.toString())); + if (!RouteFiltersDataProjectAllOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteFiltersDataProjectAllOf is not found in the empty JSON string", RouteFiltersDataProjectAllOf.openapiRequiredFields.toString())); } } - // validate the optional field `filter` - if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { - ValidateSubnetRequestFilter.validateJsonObject(jsonObj.getAsJsonObject("filter")); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); } } @@ -196,16 +195,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!ValidateConnectionRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'ValidateConnectionRequest' and its subtypes + if (!RouteFiltersDataProjectAllOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFiltersDataProjectAllOf' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(ValidateConnectionRequest.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFiltersDataProjectAllOf.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, ValidateConnectionRequest value) throws IOException { + public void write(JsonWriter out, RouteFiltersDataProjectAllOf value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -228,11 +227,11 @@ else if (entry.getValue() instanceof Character) } @Override - public ValidateConnectionRequest read(JsonReader in) throws IOException { + public RouteFiltersDataProjectAllOf read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - ValidateConnectionRequest instance = thisAdapter.fromJsonTree(jsonObj); + RouteFiltersDataProjectAllOf instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -259,18 +258,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of ValidateConnectionRequest given an JSON string + * Create an instance of RouteFiltersDataProjectAllOf given an JSON string * * @param jsonString JSON string - * @return An instance of ValidateConnectionRequest - * @throws IOException if the JSON string is invalid with respect to ValidateConnectionRequest + * @return An instance of RouteFiltersDataProjectAllOf + * @throws IOException if the JSON string is invalid with respect to RouteFiltersDataProjectAllOf */ - public static ValidateConnectionRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, ValidateConnectionRequest.class); + public static RouteFiltersDataProjectAllOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFiltersDataProjectAllOf.class); } /** - * Convert an instance of ValidateConnectionRequest to an JSON string + * Convert an instance of RouteFiltersDataProjectAllOf to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouterPackageCode.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouterPackageCode.java index 1962f1aa..193ce666 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouterPackageCode.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouterPackageCode.java @@ -32,7 +32,7 @@ public enum RouterPackageCode { BASIC("BASIC"), - PRO("PRO"), + STANDARD("STANDARD"), PREMIUM("PREMIUM"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetro.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetro.java index 976d8185..258a8927 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetro.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetro.java @@ -59,6 +59,10 @@ public class ServiceMetro { @SerializedName(SERIALIZED_NAME_NAME) private String name; + public static final String SERIALIZED_NAME_VC_BANDWIDTH_MAX = "vcBandwidthMax"; + @SerializedName(SERIALIZED_NAME_VC_BANDWIDTH_MAX) + private Integer vcBandwidthMax; + public static final String SERIALIZED_NAME_IBXS = "ibxs"; @SerializedName(SERIALIZED_NAME_IBXS) private List ibxs = new ArrayList<>(); @@ -122,6 +126,28 @@ public void setName(String name) { } + public ServiceMetro vcBandwidthMax(Integer vcBandwidthMax) { + + this.vcBandwidthMax = vcBandwidthMax; + return this; + } + + /** + * max VC speed supported in Mbps + * @return vcBandwidthMax + **/ + @javax.annotation.Nullable + + public Integer getVcBandwidthMax() { + return vcBandwidthMax; + } + + + public void setVcBandwidthMax(Integer vcBandwidthMax) { + this.vcBandwidthMax = vcBandwidthMax; + } + + public ServiceMetro ibxs(List ibxs) { this.ibxs = ibxs; @@ -282,6 +308,7 @@ public boolean equals(Object o) { ServiceMetro serviceMetro = (ServiceMetro) o; return Objects.equals(this.code, serviceMetro.code) && Objects.equals(this.name, serviceMetro.name) && + Objects.equals(this.vcBandwidthMax, serviceMetro.vcBandwidthMax) && Objects.equals(this.ibxs, serviceMetro.ibxs) && Objects.equals(this.inTrail, serviceMetro.inTrail) && Objects.equals(this.displayName, serviceMetro.displayName) && @@ -291,7 +318,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(code, name, ibxs, inTrail, displayName, sellerRegions, additionalProperties); + return Objects.hash(code, name, vcBandwidthMax, ibxs, inTrail, displayName, sellerRegions, additionalProperties); } @Override @@ -300,6 +327,7 @@ public String toString() { sb.append("class ServiceMetro {\n"); sb.append(" code: ").append(toIndentedString(code)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" vcBandwidthMax: ").append(toIndentedString(vcBandwidthMax)).append("\n"); sb.append(" ibxs: ").append(toIndentedString(ibxs)).append("\n"); sb.append(" inTrail: ").append(toIndentedString(inTrail)).append("\n"); sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); @@ -329,6 +357,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("code"); openapiFields.add("name"); + openapiFields.add("vcBandwidthMax"); openapiFields.add("ibxs"); openapiFields.add("inTrail"); openapiFields.add("displayName"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetros.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetros.java new file mode 100644 index 00000000..b44da6ed --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceMetros.java @@ -0,0 +1,335 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.ServiceMetro; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Service Profile Metros + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ServiceMetros { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + private Pagination pagination; + + public ServiceMetros() { + } + + public ServiceMetros data(List data) { + + this.data = data; + return this; + } + + public ServiceMetros addDataItem(ServiceMetro dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + + public ServiceMetros pagination(Pagination pagination) { + + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + **/ + @javax.annotation.Nullable + + public Pagination getPagination() { + return pagination; + } + + + public void setPagination(Pagination pagination) { + this.pagination = pagination; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the ServiceMetros instance itself + */ + public ServiceMetros putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ServiceMetros serviceMetros = (ServiceMetros) o; + return Objects.equals(this.data, serviceMetros.data) && + Objects.equals(this.pagination, serviceMetros.pagination)&& + Objects.equals(this.additionalProperties, serviceMetros.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, pagination, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceMetros {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("pagination"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to ServiceMetros + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!ServiceMetros.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ServiceMetros is not found in the empty JSON string", ServiceMetros.openapiRequiredFields.toString())); + } + } + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + ServiceMetro.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonObject(jsonObj.getAsJsonObject("pagination")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServiceMetros.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServiceMetros' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServiceMetros.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServiceMetros value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ServiceMetros read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + ServiceMetros instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ServiceMetros given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServiceMetros + * @throws IOException if the JSON string is invalid with respect to ServiceMetros + */ + public static ServiceMetros fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServiceMetros.class); + } + + /** + * Convert an instance of ServiceMetros to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequest.java similarity index 79% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequest.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequest.java index 3c2cdaaa..9b7fb787 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequest.java @@ -14,7 +14,7 @@ import java.util.Objects; import java.util.Arrays; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilter; +import com.equinix.openapi.fabric.v4.model.ValidateRequestFilter; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -44,18 +44,18 @@ import com.equinix.openapi.fabric.JSON; /** - * Validate subnet for Routing Protocol Configuration + * Validate connection auth api key or vlan */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class ValidateSubnetRequest { +public class ValidateRequest { public static final String SERIALIZED_NAME_FILTER = "filter"; @SerializedName(SERIALIZED_NAME_FILTER) - private ValidateSubnetRequestFilter filter; + private ValidateRequestFilter filter; - public ValidateSubnetRequest() { + public ValidateRequest() { } - public ValidateSubnetRequest filter(ValidateSubnetRequestFilter filter) { + public ValidateRequest filter(ValidateRequestFilter filter) { this.filter = filter; return this; @@ -67,12 +67,12 @@ public ValidateSubnetRequest filter(ValidateSubnetRequestFilter filter) { **/ @javax.annotation.Nullable - public ValidateSubnetRequestFilter getFilter() { + public ValidateRequestFilter getFilter() { return filter; } - public void setFilter(ValidateSubnetRequestFilter filter) { + public void setFilter(ValidateRequestFilter filter) { this.filter = filter; } @@ -89,9 +89,9 @@ public void setFilter(ValidateSubnetRequestFilter filter) { * * @param key name of the property * @param value value of the property - * @return the ValidateSubnetRequest instance itself + * @return the ValidateRequest instance itself */ - public ValidateSubnetRequest putAdditionalProperty(String key, Object value) { + public ValidateRequest putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -130,9 +130,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ValidateSubnetRequest validateSubnetRequest = (ValidateSubnetRequest) o; - return Objects.equals(this.filter, validateSubnetRequest.filter)&& - Objects.equals(this.additionalProperties, validateSubnetRequest.additionalProperties); + ValidateRequest validateRequest = (ValidateRequest) o; + return Objects.equals(this.filter, validateRequest.filter)&& + Objects.equals(this.additionalProperties, validateRequest.additionalProperties); } @Override @@ -143,7 +143,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ValidateSubnetRequest {\n"); + sb.append("class ValidateRequest {\n"); sb.append(" filter: ").append(toIndentedString(filter)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -178,17 +178,17 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to ValidateSubnetRequest + * @throws IOException if the JSON Object is invalid with respect to ValidateRequest */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!ValidateSubnetRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateSubnetRequest is not found in the empty JSON string", ValidateSubnetRequest.openapiRequiredFields.toString())); + if (!ValidateRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateRequest is not found in the empty JSON string", ValidateRequest.openapiRequiredFields.toString())); } } // validate the optional field `filter` if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { - ValidateSubnetRequestFilter.validateJsonObject(jsonObj.getAsJsonObject("filter")); + ValidateRequestFilter.validateJsonObject(jsonObj.getAsJsonObject("filter")); } } @@ -196,16 +196,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!ValidateSubnetRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'ValidateSubnetRequest' and its subtypes + if (!ValidateRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidateRequest' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(ValidateSubnetRequest.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidateRequest.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, ValidateSubnetRequest value) throws IOException { + public void write(JsonWriter out, ValidateRequest value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -228,11 +228,11 @@ else if (entry.getValue() instanceof Character) } @Override - public ValidateSubnetRequest read(JsonReader in) throws IOException { + public ValidateRequest read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - ValidateSubnetRequest instance = thisAdapter.fromJsonTree(jsonObj); + ValidateRequest instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -259,18 +259,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of ValidateSubnetRequest given an JSON string + * Create an instance of ValidateRequest given an JSON string * * @param jsonString JSON string - * @return An instance of ValidateSubnetRequest - * @throws IOException if the JSON string is invalid with respect to ValidateSubnetRequest + * @return An instance of ValidateRequest + * @throws IOException if the JSON string is invalid with respect to ValidateRequest */ - public static ValidateSubnetRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, ValidateSubnetRequest.class); + public static ValidateRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidateRequest.class); } /** - * Convert an instance of ValidateSubnetRequest to an JSON string + * Convert an instance of ValidateRequest to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilter.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilter.java similarity index 78% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilter.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilter.java index 8704ea72..b7581efb 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilter.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilter.java @@ -14,7 +14,7 @@ import java.util.Objects; import java.util.Arrays; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilterAnd; +import com.equinix.openapi.fabric.v4.model.ValidateRequestFilterAnd; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -49,21 +49,21 @@ * Filters */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class ValidateSubnetRequestFilter { +public class ValidateRequestFilter { public static final String SERIALIZED_NAME_AND = "and"; @SerializedName(SERIALIZED_NAME_AND) - private List and = new ArrayList<>(); + private List and = new ArrayList<>(); - public ValidateSubnetRequestFilter() { + public ValidateRequestFilter() { } - public ValidateSubnetRequestFilter and(List and) { + public ValidateRequestFilter and(List and) { this.and = and; return this; } - public ValidateSubnetRequestFilter addAndItem(ValidateSubnetRequestFilterAnd andItem) { + public ValidateRequestFilter addAndItem(ValidateRequestFilterAnd andItem) { if (this.and == null) { this.and = new ArrayList<>(); } @@ -77,12 +77,12 @@ public ValidateSubnetRequestFilter addAndItem(ValidateSubnetRequestFilterAnd and **/ @javax.annotation.Nullable - public List getAnd() { + public List getAnd() { return and; } - public void setAnd(List and) { + public void setAnd(List and) { this.and = and; } @@ -99,9 +99,9 @@ public void setAnd(List and) { * * @param key name of the property * @param value value of the property - * @return the ValidateSubnetRequestFilter instance itself + * @return the ValidateRequestFilter instance itself */ - public ValidateSubnetRequestFilter putAdditionalProperty(String key, Object value) { + public ValidateRequestFilter putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -140,9 +140,9 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ValidateSubnetRequestFilter validateSubnetRequestFilter = (ValidateSubnetRequestFilter) o; - return Objects.equals(this.and, validateSubnetRequestFilter.and)&& - Objects.equals(this.additionalProperties, validateSubnetRequestFilter.additionalProperties); + ValidateRequestFilter validateRequestFilter = (ValidateRequestFilter) o; + return Objects.equals(this.and, validateRequestFilter.and)&& + Objects.equals(this.additionalProperties, validateRequestFilter.additionalProperties); } @Override @@ -153,7 +153,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ValidateSubnetRequestFilter {\n"); + sb.append("class ValidateRequestFilter {\n"); sb.append(" and: ").append(toIndentedString(and)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -188,12 +188,12 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to ValidateSubnetRequestFilter + * @throws IOException if the JSON Object is invalid with respect to ValidateRequestFilter */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!ValidateSubnetRequestFilter.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateSubnetRequestFilter is not found in the empty JSON string", ValidateSubnetRequestFilter.openapiRequiredFields.toString())); + if (!ValidateRequestFilter.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateRequestFilter is not found in the empty JSON string", ValidateRequestFilter.openapiRequiredFields.toString())); } } if (jsonObj.get("and") != null && !jsonObj.get("and").isJsonNull()) { @@ -206,7 +206,7 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { // validate the optional field `and` (array) for (int i = 0; i < jsonArrayand.size(); i++) { - ValidateSubnetRequestFilterAnd.validateJsonObject(jsonArrayand.get(i).getAsJsonObject()); + ValidateRequestFilterAnd.validateJsonObject(jsonArrayand.get(i).getAsJsonObject()); }; } } @@ -216,16 +216,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!ValidateSubnetRequestFilter.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'ValidateSubnetRequestFilter' and its subtypes + if (!ValidateRequestFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidateRequestFilter' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(ValidateSubnetRequestFilter.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidateRequestFilter.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, ValidateSubnetRequestFilter value) throws IOException { + public void write(JsonWriter out, ValidateRequestFilter value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -248,11 +248,11 @@ else if (entry.getValue() instanceof Character) } @Override - public ValidateSubnetRequestFilter read(JsonReader in) throws IOException { + public ValidateRequestFilter read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - ValidateSubnetRequestFilter instance = thisAdapter.fromJsonTree(jsonObj); + ValidateRequestFilter instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -279,18 +279,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of ValidateSubnetRequestFilter given an JSON string + * Create an instance of ValidateRequestFilter given an JSON string * * @param jsonString JSON string - * @return An instance of ValidateSubnetRequestFilter - * @throws IOException if the JSON string is invalid with respect to ValidateSubnetRequestFilter + * @return An instance of ValidateRequestFilter + * @throws IOException if the JSON string is invalid with respect to ValidateRequestFilter */ - public static ValidateSubnetRequestFilter fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, ValidateSubnetRequestFilter.class); + public static ValidateRequestFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidateRequestFilter.class); } /** - * Convert an instance of ValidateSubnetRequestFilter to an JSON string + * Convert an instance of ValidateRequestFilter to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAnd.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAnd.java similarity index 81% rename from equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAnd.java rename to equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAnd.java index d85efbb6..383518c1 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAnd.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAnd.java @@ -45,10 +45,10 @@ import com.equinix.openapi.fabric.JSON; /** - * ValidateSubnetRequestFilterAnd + * ValidateRequestFilterAnd */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") -public class ValidateSubnetRequestFilterAnd { +public class ValidateRequestFilterAnd { public static final String SERIALIZED_NAME_PROPERTY = "property"; @SerializedName(SERIALIZED_NAME_PROPERTY) private String property; @@ -61,10 +61,10 @@ public class ValidateSubnetRequestFilterAnd { @SerializedName(SERIALIZED_NAME_VALUES) private List values = new ArrayList<>(); - public ValidateSubnetRequestFilterAnd() { + public ValidateRequestFilterAnd() { } - public ValidateSubnetRequestFilterAnd property(String property) { + public ValidateRequestFilterAnd property(String property) { this.property = property; return this; @@ -86,7 +86,7 @@ public void setProperty(String property) { } - public ValidateSubnetRequestFilterAnd operator(String operator) { + public ValidateRequestFilterAnd operator(String operator) { this.operator = operator; return this; @@ -108,13 +108,13 @@ public void setOperator(String operator) { } - public ValidateSubnetRequestFilterAnd values(List values) { + public ValidateRequestFilterAnd values(List values) { this.values = values; return this; } - public ValidateSubnetRequestFilterAnd addValuesItem(String valuesItem) { + public ValidateRequestFilterAnd addValuesItem(String valuesItem) { if (this.values == null) { this.values = new ArrayList<>(); } @@ -150,9 +150,9 @@ public void setValues(List values) { * * @param key name of the property * @param value value of the property - * @return the ValidateSubnetRequestFilterAnd instance itself + * @return the ValidateRequestFilterAnd instance itself */ - public ValidateSubnetRequestFilterAnd putAdditionalProperty(String key, Object value) { + public ValidateRequestFilterAnd putAdditionalProperty(String key, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap(); } @@ -191,11 +191,11 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - ValidateSubnetRequestFilterAnd validateSubnetRequestFilterAnd = (ValidateSubnetRequestFilterAnd) o; - return Objects.equals(this.property, validateSubnetRequestFilterAnd.property) && - Objects.equals(this.operator, validateSubnetRequestFilterAnd.operator) && - Objects.equals(this.values, validateSubnetRequestFilterAnd.values)&& - Objects.equals(this.additionalProperties, validateSubnetRequestFilterAnd.additionalProperties); + ValidateRequestFilterAnd validateRequestFilterAnd = (ValidateRequestFilterAnd) o; + return Objects.equals(this.property, validateRequestFilterAnd.property) && + Objects.equals(this.operator, validateRequestFilterAnd.operator) && + Objects.equals(this.values, validateRequestFilterAnd.values)&& + Objects.equals(this.additionalProperties, validateRequestFilterAnd.additionalProperties); } @Override @@ -206,7 +206,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class ValidateSubnetRequestFilterAnd {\n"); + sb.append("class ValidateRequestFilterAnd {\n"); sb.append(" property: ").append(toIndentedString(property)).append("\n"); sb.append(" operator: ").append(toIndentedString(operator)).append("\n"); sb.append(" values: ").append(toIndentedString(values)).append("\n"); @@ -245,12 +245,12 @@ private String toIndentedString(Object o) { * Validates the JSON Object and throws an exception if issues found * * @param jsonObj JSON Object - * @throws IOException if the JSON Object is invalid with respect to ValidateSubnetRequestFilterAnd + * @throws IOException if the JSON Object is invalid with respect to ValidateRequestFilterAnd */ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj == null) { - if (!ValidateSubnetRequestFilterAnd.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null - throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateSubnetRequestFilterAnd is not found in the empty JSON string", ValidateSubnetRequestFilterAnd.openapiRequiredFields.toString())); + if (!ValidateRequestFilterAnd.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidateRequestFilterAnd is not found in the empty JSON string", ValidateRequestFilterAnd.openapiRequiredFields.toString())); } } if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { @@ -269,16 +269,16 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!ValidateSubnetRequestFilterAnd.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'ValidateSubnetRequestFilterAnd' and its subtypes + if (!ValidateRequestFilterAnd.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidateRequestFilterAnd' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(ValidateSubnetRequestFilterAnd.class)); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidateRequestFilterAnd.class)); - return (TypeAdapter) new TypeAdapter() { + return (TypeAdapter) new TypeAdapter() { @Override - public void write(JsonWriter out, ValidateSubnetRequestFilterAnd value) throws IOException { + public void write(JsonWriter out, ValidateRequestFilterAnd value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); obj.remove("additionalProperties"); // serialize additional properties @@ -301,11 +301,11 @@ else if (entry.getValue() instanceof Character) } @Override - public ValidateSubnetRequestFilterAnd read(JsonReader in) throws IOException { + public ValidateRequestFilterAnd read(JsonReader in) throws IOException { JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); validateJsonObject(jsonObj); // store additional fields in the deserialized instance - ValidateSubnetRequestFilterAnd instance = thisAdapter.fromJsonTree(jsonObj); + ValidateRequestFilterAnd instance = thisAdapter.fromJsonTree(jsonObj); for (Map.Entry entry : jsonObj.entrySet()) { if (!openapiFields.contains(entry.getKey())) { if (entry.getValue().isJsonPrimitive()) { // primitive type @@ -332,18 +332,18 @@ else if (entry.getValue().getAsJsonPrimitive().isBoolean()) } /** - * Create an instance of ValidateSubnetRequestFilterAnd given an JSON string + * Create an instance of ValidateRequestFilterAnd given an JSON string * * @param jsonString JSON string - * @return An instance of ValidateSubnetRequestFilterAnd - * @throws IOException if the JSON string is invalid with respect to ValidateSubnetRequestFilterAnd + * @return An instance of ValidateRequestFilterAnd + * @throws IOException if the JSON string is invalid with respect to ValidateRequestFilterAnd */ - public static ValidateSubnetRequestFilterAnd fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, ValidateSubnetRequestFilterAnd.class); + public static ValidateRequestFilterAnd fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidateRequestFilterAnd.class); } /** - * Convert an instance of ValidateSubnetRequestFilterAnd to an JSON string + * Convert an instance of ValidateRequestFilterAnd to an JSON string * * @return JSON string */ diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/VirtualNetwork.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/VirtualNetwork.java new file mode 100644 index 00000000..a8b3f729 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/VirtualNetwork.java @@ -0,0 +1,312 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import com.equinix.openapi.fabric.JSON; + +/** + * Virtual Network Information + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class VirtualNetwork { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + private UUID uuid; + + public VirtualNetwork() { + } + + + public VirtualNetwork( + URI href + ) { + this(); + this.href = href; + } + + /** + * The Canonical URL at which the resource resides. + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + + + public VirtualNetwork uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Equinix-assigned Virtual Network identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the VirtualNetwork instance itself + */ + public VirtualNetwork putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return a map of objects + */ + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key name of the property + * @return an object + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VirtualNetwork virtualNetwork = (VirtualNetwork) o; + return Objects.equals(this.href, virtualNetwork.href) && + Objects.equals(this.uuid, virtualNetwork.uuid)&& + Objects.equals(this.additionalProperties, virtualNetwork.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, uuid, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VirtualNetwork {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("href"); + openapiFields.add("uuid"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to VirtualNetwork + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!VirtualNetwork.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VirtualNetwork is not found in the empty JSON string", VirtualNetwork.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `href` to be a primitive type in the JSON string but got `%s`", jsonObj.get("href").toString())); + } + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VirtualNetwork.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VirtualNetwork' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VirtualNetwork.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VirtualNetwork value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject()); + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public VirtualNetwork read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + VirtualNetwork instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VirtualNetwork given an JSON string + * + * @param jsonString JSON string + * @return An instance of VirtualNetwork + * @throws IOException if the JSON string is invalid with respect to VirtualNetwork + */ + public static VirtualNetwork fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VirtualNetwork.class); + } + + /** + * Convert an instance of VirtualNetwork to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ConnectionsApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ConnectionsApiTest.java index d62dfe52..6462a10d 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ConnectionsApiTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ConnectionsApiTest.java @@ -23,7 +23,7 @@ import com.equinix.openapi.fabric.v4.model.ConnectionSearchResponse; import com.equinix.openapi.fabric.v4.model.Error; import com.equinix.openapi.fabric.v4.model.SearchRequest; -import com.equinix.openapi.fabric.v4.model.ValidateConnectionRequest; +import com.equinix.openapi.fabric.v4.model.ValidateRequest; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -136,8 +136,8 @@ public void updateConnectionByUuidTest() throws ApiException { */ @Test public void validateConnectionsTest() throws ApiException { - ValidateConnectionRequest validateConnectionRequest = null; - ConnectionResponse response = api.validateConnections(validateConnectionRequest); + ValidateRequest validateRequest = null; + ConnectionResponse response = api.validateConnections(validateRequest); // TODO: test validations } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApiTest.java index 30a30f1e..256b0454 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApiTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/PrecisionTimeApiTest.java @@ -14,11 +14,8 @@ import com.equinix.openapi.fabric.ApiException; import com.equinix.openapi.fabric.v4.model.Error; -import com.equinix.openapi.fabric.v4.model.PackageResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeChangeOperation; -import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceConnectionsResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceCreateResponse; -import com.equinix.openapi.fabric.v4.model.PrecisionTimeServicePackagesResponse; import com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceRequest; import java.util.UUID; import org.junit.jupiter.api.Disabled; @@ -52,7 +49,7 @@ public void createTimeServicesTest() throws ApiException { } /** - * Delete Time Service + * Delete time service * * Delete EPT service by it's uuid * @@ -80,48 +77,7 @@ public void getTimeServicesByIdTest() throws ApiException { } /** - * Get all Connections - * - * The API provides capability to get prevision timing service's details - * - * @throws ApiException if the Api call fails - */ - @Test - public void getTimeServicesConnectionsByServiceIdTest() throws ApiException { - UUID serviceId = null; - PrecisionTimeServiceConnectionsResponse response = api.getTimeServicesConnectionsByServiceId(serviceId); - // TODO: test validations - } - - /** - * Get Package by Code - * - * The API provides capability to get timing service's package by code - * - * @throws ApiException if the Api call fails - */ - @Test - public void getTimeServicesPackageByCodeTest() throws ApiException { - String packageCode = null; - PackageResponse response = api.getTimeServicesPackageByCode(packageCode); - // TODO: test validations - } - - /** - * Get Packages - * - * The API provides capability to get timing service's packages - * - * @throws ApiException if the Api call fails - */ - @Test - public void getTimeServicesPackagesTest() throws ApiException { - PrecisionTimeServicePackagesResponse response = api.getTimeServicesPackages(); - // TODO: test validations - } - - /** - * Patch Time Service + * Patch time service * * The API provides capability to update timing service * diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApiTest.java new file mode 100644 index 00000000..a67f896a --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApiTest.java @@ -0,0 +1,183 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.api; + +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.v4.model.Error; +import com.equinix.openapi.fabric.v4.model.GetRouteFilterRulesResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangePrefixMatch; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesBase; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeData; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesData; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesPostRequest; +import com.equinix.openapi.fabric.v4.model.RouteFiltersData; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for RouteFilterRulesApi + */ +@Disabled +public class RouteFilterRulesApiTest { + + private final RouteFilterRulesApi api = new RouteFilterRulesApi(); + + /** + * Create RFRule + * + * This API provides capability to create a Route Filter Rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void createRouteFilterRuleTest() throws ApiException { + String routeFilterId = null; + RouteFilterRulesBase routeFilterRulesBase = null; + RouteFilterRulesData response = api.createRouteFilterRule(routeFilterId, routeFilterRulesBase); + // TODO: test validations + } + + /** + * Bulk RFRules + * + * This API provides capability to create bulk route filter rules + * + * @throws ApiException if the Api call fails + */ + @Test + public void createRouteFilterRulesInBulkTest() throws ApiException { + String routeFilterId = null; + RouteFilterRulesPostRequest routeFilterRulesPostRequest = null; + GetRouteFilterRulesResponse response = api.createRouteFilterRulesInBulk(routeFilterId, routeFilterRulesPostRequest); + // TODO: test validations + } + + /** + * DeleteRFRule + * + * This API provides capability to delete a Route Filter Rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteRouteFilterRuleByUuidTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + RouteFilterRulesData response = api.deleteRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId); + // TODO: test validations + } + + /** + * GetRFRule By UUID + * + * This API provides capability to view a Route Filter Rule by UUID + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterRuleByUuidTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + RouteFilterRulesData response = api.getRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId); + // TODO: test validations + } + + /** + * Get Change By ID + * + * This API provides capability to retrieve a specific Route Filter Rule's Changes + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterRuleChangeByUuidTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + UUID changeId = null; + RouteFilterRulesChangeData response = api.getRouteFilterRuleChangeByUuid(routeFilterId, routeFilterRuleId, changeId); + // TODO: test validations + } + + /** + * Get All Changes + * + * This API provides capability to retrieve all of a Route Filter Rule's Changes + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterRuleChangesTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + Integer offset = null; + Integer limit = null; + RouteFilterRulesChangeDataResponse response = api.getRouteFilterRuleChanges(routeFilterId, routeFilterRuleId, offset, limit); + // TODO: test validations + } + + /** + * GetRFRules + * + * This API provides capability to get all Route Filters Rules for Fabric + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterRulesTest() throws ApiException { + String routeFilterId = null; + Integer offset = null; + Integer limit = null; + GetRouteFilterRulesResponse response = api.getRouteFilterRules(routeFilterId, offset, limit); + // TODO: test validations + } + + /** + * PatchRFilterRule + * + * This API provides capability to partially update a Route Filter Rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void patchRouteFilterRuleByUuidTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + List routeFilterChangePrefixMatch = null; + RouteFiltersData response = api.patchRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterChangePrefixMatch); + // TODO: test validations + } + + /** + * ReplaceRFRule + * + * This API provides capability to replace a Route Filter Rule completely + * + * @throws ApiException if the Api call fails + */ + @Test + public void replaceRouteFilterRuleByUuidTest() throws ApiException { + String routeFilterId = null; + String routeFilterRuleId = null; + RouteFilterRulesBase routeFilterRulesBase = null; + RouteFilterRulesData response = api.replaceRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterRulesBase); + // TODO: test validations + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApiTest.java new file mode 100644 index 00000000..58323c85 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RouteFiltersApiTest.java @@ -0,0 +1,220 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.api; + +import com.equinix.openapi.fabric.ApiException; +import com.equinix.openapi.fabric.v4.model.ConnectionChangeOperation; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFilterData; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFiltersBase; +import com.equinix.openapi.fabric.v4.model.Error; +import com.equinix.openapi.fabric.v4.model.GetAllConnectionRouteFiltersResponse; +import com.equinix.openapi.fabric.v4.model.GetRouteFilterGetConnectionsResponse; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeData; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteFiltersBase; +import com.equinix.openapi.fabric.v4.model.RouteFiltersData; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for RouteFiltersApi + */ +@Disabled +public class RouteFiltersApiTest { + + private final RouteFiltersApi api = new RouteFiltersApi(); + + /** + * Attach Route Filter + * + * This API provides capability to attach a Route Filter to a Connection + * + * @throws ApiException if the Api call fails + */ + @Test + public void attachConnectionRouteFilterTest() throws ApiException { + String routeFilterId = null; + String connectionId = null; + ConnectionRouteFiltersBase connectionRouteFiltersBase = null; + ConnectionRouteFilterData response = api.attachConnectionRouteFilter(routeFilterId, connectionId, connectionRouteFiltersBase); + // TODO: test validations + } + + /** + * Create Route Filters + * + * This API provides capability to create a Route Filter + * + * @throws ApiException if the Api call fails + */ + @Test + public void createRouteFilterTest() throws ApiException { + RouteFiltersBase routeFiltersBase = null; + RouteFiltersData response = api.createRouteFilter(routeFiltersBase); + // TODO: test validations + } + + /** + * Delete Route Filter + * + * This API provides capability to delete a Route Filter + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteRouteFilterByUuidTest() throws ApiException { + String routeFilterId = null; + RouteFiltersData response = api.deleteRouteFilterByUuid(routeFilterId); + // TODO: test validations + } + + /** + * Detach Route Filter + * + * This API provides capability to detach a Route Filter from a Connection + * + * @throws ApiException if the Api call fails + */ + @Test + public void detachConnectionRouteFilterTest() throws ApiException { + String routeFilterId = null; + String connectionId = null; + ConnectionRouteFilterData response = api.detachConnectionRouteFilter(routeFilterId, connectionId); + // TODO: test validations + } + + /** + * Get Route Filter + * + * This API provides capability to view a specific Route Filter attached to a Connection + * + * @throws ApiException if the Api call fails + */ + @Test + public void getConnectionRouteFilterByUuidTest() throws ApiException { + String routeFilterId = null; + String connectionId = null; + ConnectionRouteFilterData response = api.getConnectionRouteFilterByUuid(routeFilterId, connectionId); + // TODO: test validations + } + + /** + * Get All RouteFilters + * + * This API provides capability to view all Route Filters attached to a Connection + * + * @throws ApiException if the Api call fails + */ + @Test + public void getConnectionRouteFiltersTest() throws ApiException { + String connectionId = null; + GetAllConnectionRouteFiltersResponse response = api.getConnectionRouteFilters(connectionId); + // TODO: test validations + } + + /** + * Get Filter By UUID + * + * This API provides capability to view a Route Filter by UUID + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterByUuidTest() throws ApiException { + String routeFilterId = null; + RouteFiltersData response = api.getRouteFilterByUuid(routeFilterId); + // TODO: test validations + } + + /** + * Get Change By ID + * + * This API provides capability to retrieve a specific Route Filter's Changes + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterChangeByUuidTest() throws ApiException { + String routeFilterId = null; + UUID changeId = null; + RouteFilterChangeData response = api.getRouteFilterChangeByUuid(routeFilterId, changeId); + // TODO: test validations + } + + /** + * Get All Changes + * + * This API provides capability to retrieve all of a Route Filter's Changes + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterChangesTest() throws ApiException { + String routeFilterId = null; + Integer offset = null; + Integer limit = null; + RouteFilterChangeDataResponse response = api.getRouteFilterChanges(routeFilterId, offset, limit); + // TODO: test validations + } + + /** + * Get Connections + * + * This API provides capability to view all Connections using the Route Filter + * + * @throws ApiException if the Api call fails + */ + @Test + public void getRouteFilterConnectionsTest() throws ApiException { + String routeFilterId = null; + GetRouteFilterGetConnectionsResponse response = api.getRouteFilterConnections(routeFilterId); + // TODO: test validations + } + + /** + * Patch Route Filter + * + * This API provides capability to partially update a Route Filter + * + * @throws ApiException if the Api call fails + */ + @Test + public void patchRouteFilterByUuidTest() throws ApiException { + String routeFilterId = null; + List connectionChangeOperation = null; + RouteFiltersData response = api.patchRouteFilterByUuid(routeFilterId, connectionChangeOperation); + // TODO: test validations + } + + /** + * Replace Route Filter + * + * This API provides capability to replace a Route Filter completely + * + * @throws ApiException if the Api call fails + */ + @Test + public void replaceRouteFilterByUuidTest() throws ApiException { + String routeFilterId = null; + RouteFiltersBase routeFiltersBase = null; + RouteFiltersData response = api.replaceRouteFilterByUuid(routeFilterId, routeFiltersBase); + // TODO: test validations + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApiTest.java index d3dd23bc..812c040c 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApiTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/RoutingProtocolsApiTest.java @@ -25,7 +25,7 @@ import com.equinix.openapi.fabric.v4.model.RoutingProtocolChangeDataResponse; import com.equinix.openapi.fabric.v4.model.RoutingProtocolData; import java.util.UUID; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequest; +import com.equinix.openapi.fabric.v4.model.ValidateRequest; import com.equinix.openapi.fabric.v4.model.ValidateSubnetResponse; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -243,8 +243,8 @@ public void replaceConnectionRoutingProtocolByUuidTest() throws ApiException { @Test public void validateRoutingProtocolTest() throws ApiException { UUID routerId = null; - ValidateSubnetRequest validateSubnetRequest = null; - ValidateSubnetResponse response = api.validateRoutingProtocol(routerId, validateSubnetRequest); + ValidateRequest validateRequest = null; + ValidateSubnetResponse response = api.validateRoutingProtocol(routerId, validateRequest); // TODO: test validations } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApiTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApiTest.java index d9f8a09a..f054fb4d 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApiTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/api/ServiceProfilesApiTest.java @@ -15,6 +15,7 @@ import com.equinix.openapi.fabric.ApiException; import com.equinix.openapi.fabric.v4.model.Error; import com.equinix.openapi.fabric.v4.model.JsonPatchOperation; +import com.equinix.openapi.fabric.v4.model.ServiceMetros; import com.equinix.openapi.fabric.v4.model.ServiceProfile; import com.equinix.openapi.fabric.v4.model.ServiceProfileRequest; import com.equinix.openapi.fabric.v4.model.ServiceProfileSearchRequest; @@ -79,6 +80,22 @@ public void getServiceProfileByUuidTest() throws ApiException { // TODO: test validations } + /** + * Get Profile Metros + * + * Get service profile metros by UUID. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getServiceProfileMetrosByUuidTest() throws ApiException { + UUID serviceProfileId = null; + Integer offset = null; + Integer limit = null; + ServiceMetros response = api.getServiceProfileMetrosByUuid(serviceProfileId, offset, limit); + // TODO: test validations + } + /** * Get all Profiles * diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/AccessPointTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/AccessPointTest.java index f39f6b68..ccfc7a1b 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/AccessPointTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/AccessPointTest.java @@ -23,6 +23,7 @@ import com.equinix.openapi.fabric.v4.model.SimplifiedPort; import com.equinix.openapi.fabric.v4.model.SimplifiedServiceProfile; import com.equinix.openapi.fabric.v4.model.VirtualDevice; +import com.equinix.openapi.fabric.v4.model.VirtualNetwork; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -159,4 +160,12 @@ public void providerConnectionIdTest() { // TODO: test providerConnectionId } + /** + * Test the property 'virtualNetwork' + */ + @Test + public void virtualNetworkTest() { + // TODO: test virtualNetwork + } + } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterDataTest.java new file mode 100644 index 00000000..29dc3cc7 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterDataTest.java @@ -0,0 +1,81 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for ConnectionRouteFilterData + */ +public class ConnectionRouteFilterDataTest { + private final ConnectionRouteFilterData model = new ConnectionRouteFilterData(); + + /** + * Model tests for ConnectionRouteFilterData + */ + @Test + public void testConnectionRouteFilterData() { + // TODO: test ConnectionRouteFilterData + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'attachmentStatus' + */ + @Test + public void attachmentStatusTest() { + // TODO: test attachmentStatus + } + + /** + * Test the property 'direction' + */ + @Test + public void directionTest() { + // TODO: test direction + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequestTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBaseTest.java similarity index 70% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequestTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBaseTest.java index 12f9a5b9..4aac5a7e 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateConnectionRequestTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFiltersBaseTest.java @@ -12,7 +12,6 @@ package com.equinix.openapi.fabric.v4.model; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilter; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -24,25 +23,25 @@ /** - * Model tests for ValidateConnectionRequest + * Model tests for ConnectionRouteFiltersBase */ -public class ValidateConnectionRequestTest { - private final ValidateConnectionRequest model = new ValidateConnectionRequest(); +public class ConnectionRouteFiltersBaseTest { + private final ConnectionRouteFiltersBase model = new ConnectionRouteFiltersBase(); /** - * Model tests for ValidateConnectionRequest + * Model tests for ConnectionRouteFiltersBase */ @Test - public void testValidateConnectionRequest() { - // TODO: test ValidateConnectionRequest + public void testConnectionRouteFiltersBase() { + // TODO: test ConnectionRouteFiltersBase } /** - * Test the property 'filter' + * Test the property 'direction' */ @Test - public void filterTest() { - // TODO: test filter + public void directionTest() { + // TODO: test direction } } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponseTest.java similarity index 75% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponseTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponseTest.java index f2cf4e05..fdae2686 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponseTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponseTest.java @@ -12,7 +12,7 @@ package com.equinix.openapi.fabric.v4.model; -import com.equinix.openapi.fabric.v4.model.ConnectionLink; +import com.equinix.openapi.fabric.v4.model.ConnectionRouteFilterData; import com.equinix.openapi.fabric.v4.model.Pagination; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; @@ -27,17 +27,17 @@ /** - * Model tests for PrecisionTimeServiceConnectionsResponse + * Model tests for GetAllConnectionRouteFiltersResponse */ -public class PrecisionTimeServiceConnectionsResponseTest { - private final PrecisionTimeServiceConnectionsResponse model = new PrecisionTimeServiceConnectionsResponse(); +public class GetAllConnectionRouteFiltersResponseTest { + private final GetAllConnectionRouteFiltersResponse model = new GetAllConnectionRouteFiltersResponse(); /** - * Model tests for PrecisionTimeServiceConnectionsResponse + * Model tests for GetAllConnectionRouteFiltersResponse */ @Test - public void testPrecisionTimeServiceConnectionsResponse() { - // TODO: test PrecisionTimeServiceConnectionsResponse + public void testGetAllConnectionRouteFiltersResponse() { + // TODO: test GetAllConnectionRouteFiltersResponse } /** diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponseTest.java new file mode 100644 index 00000000..51b0cf74 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterGetConnectionsResponseTest.java @@ -0,0 +1,59 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterConnectionsData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for GetRouteFilterGetConnectionsResponse + */ +public class GetRouteFilterGetConnectionsResponseTest { + private final GetRouteFilterGetConnectionsResponse model = new GetRouteFilterGetConnectionsResponse(); + + /** + * Model tests for GetRouteFilterGetConnectionsResponse + */ + @Test + public void testGetRouteFilterGetConnectionsResponse() { + // TODO: test GetRouteFilterGetConnectionsResponse + } + + /** + * Test the property 'pagination' + */ + @Test + public void paginationTest() { + // TODO: test pagination + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponseTest.java similarity index 76% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponseTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponseTest.java index ac4accf4..72fd7868 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponseTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteFilterRulesResponseTest.java @@ -12,8 +12,8 @@ package com.equinix.openapi.fabric.v4.model; -import com.equinix.openapi.fabric.v4.model.PackageResponse; import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesData; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -27,17 +27,17 @@ /** - * Model tests for PrecisionTimeServicePackagesResponse + * Model tests for GetRouteFilterRulesResponse */ -public class PrecisionTimeServicePackagesResponseTest { - private final PrecisionTimeServicePackagesResponse model = new PrecisionTimeServicePackagesResponse(); +public class GetRouteFilterRulesResponseTest { + private final GetRouteFilterRulesResponse model = new GetRouteFilterRulesResponse(); /** - * Model tests for PrecisionTimeServicePackagesResponse + * Model tests for GetRouteFilterRulesResponse */ @Test - public void testPrecisionTimeServicePackagesResponse() { - // TODO: test PrecisionTimeServicePackagesResponse + public void testGetRouteFilterRulesResponse() { + // TODO: test GetRouteFilterRulesResponse } /** diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTest.java index ac8f88d3..582f4b5c 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolTest.java @@ -18,6 +18,7 @@ import com.equinix.openapi.fabric.v4.model.LinkProtocolQinq; import com.equinix.openapi.fabric.v4.model.LinkProtocolType; import com.equinix.openapi.fabric.v4.model.LinkProtocolUntagged; +import com.equinix.openapi.fabric.v4.model.LinkProtocolVxlan; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -154,6 +155,14 @@ public void subInterfaceTest() { // TODO: test subInterface } + /** + * Test the property 'vni' + */ + @Test + public void vniTest() { + // TODO: test vni + } + /** * Test the property 'vnid' */ diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlanTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlanTest.java new file mode 100644 index 00000000..eed913a6 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/LinkProtocolVxlanTest.java @@ -0,0 +1,56 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.LinkProtocolType; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for LinkProtocolVxlan + */ +public class LinkProtocolVxlanTest { + private final LinkProtocolVxlan model = new LinkProtocolVxlan(); + + /** + * Model tests for LinkProtocolVxlan + */ + @Test + public void testLinkProtocolVxlan() { + // TODO: test LinkProtocolVxlan + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'vni' + */ + @Test + public void vniTest() { + // TODO: test vni + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ModelInterfaceTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ModelInterfaceTest.java index cadc2ad5..337ffaca 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ModelInterfaceTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ModelInterfaceTest.java @@ -70,4 +70,12 @@ public void typeTest() { // TODO: test type } + /** + * Test the property 'projectId' + */ + @Test + public void projectIdTest() { + // TODO: test projectId + } + } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponseTest.java new file mode 100644 index 00000000..0cde4004 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataResponseTest.java @@ -0,0 +1,59 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterChangeData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterChangeDataResponse + */ +public class RouteFilterChangeDataResponseTest { + private final RouteFilterChangeDataResponse model = new RouteFilterChangeDataResponse(); + + /** + * Model tests for RouteFilterChangeDataResponse + */ + @Test + public void testRouteFilterChangeDataResponse() { + // TODO: test RouteFilterChangeDataResponse + } + + /** + * Test the property 'pagination' + */ + @Test + public void paginationTest() { + // TODO: test pagination + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataTest.java new file mode 100644 index 00000000..8624b5cf --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeDataTest.java @@ -0,0 +1,66 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.RouteFiltersChangeOperation; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.time.OffsetDateTime; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterChangeData + */ +public class RouteFilterChangeDataTest { + private final RouteFilterChangeData model = new RouteFilterChangeData(); + + /** + * Model tests for RouteFilterChangeData + */ + @Test + public void testRouteFilterChangeData() { + // TODO: test RouteFilterChangeData + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatchTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatchTest.java new file mode 100644 index 00000000..11e037bf --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangePrefixMatchTest.java @@ -0,0 +1,63 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterChangePrefixMatch + */ +public class RouteFilterChangePrefixMatchTest { + private final RouteFilterChangePrefixMatch model = new RouteFilterChangePrefixMatch(); + + /** + * Model tests for RouteFilterChangePrefixMatch + */ + @Test + public void testRouteFilterChangePrefixMatch() { + // TODO: test RouteFilterChangePrefixMatch + } + + /** + * Test the property 'op' + */ + @Test + public void opTest() { + // TODO: test op + } + + /** + * Test the property 'path' + */ + @Test + public void pathTest() { + // TODO: test path + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsDataTest.java new file mode 100644 index 00000000..673ec7d4 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterConnectionsDataTest.java @@ -0,0 +1,74 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.ConnectionType; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterConnectionsData + */ +public class RouteFilterConnectionsDataTest { + private final RouteFilterConnectionsData model = new RouteFilterConnectionsData(); + + /** + * Model tests for RouteFilterConnectionsData + */ + @Test + public void testRouteFilterConnectionsData() { + // TODO: test RouteFilterConnectionsData + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBaseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBaseTest.java new file mode 100644 index 00000000..edc19cee --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesBaseTest.java @@ -0,0 +1,71 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesBase + */ +public class RouteFilterRulesBaseTest { + private final RouteFilterRulesBase model = new RouteFilterRulesBase(); + + /** + * Model tests for RouteFilterRulesBase + */ + @Test + public void testRouteFilterRulesBase() { + // TODO: test RouteFilterRulesBase + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'prefix' + */ + @Test + public void prefixTest() { + // TODO: test prefix + } + + /** + * Test the property 'prefixMatch' + */ + @Test + public void prefixMatchTest() { + // TODO: test prefixMatch + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponseTest.java new file mode 100644 index 00000000..47644f3b --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataResponseTest.java @@ -0,0 +1,59 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesChangeDataResponse + */ +public class RouteFilterRulesChangeDataResponseTest { + private final RouteFilterRulesChangeDataResponse model = new RouteFilterRulesChangeDataResponse(); + + /** + * Model tests for RouteFilterRulesChangeDataResponse + */ + @Test + public void testRouteFilterRulesChangeDataResponse() { + // TODO: test RouteFilterRulesChangeDataResponse + } + + /** + * Test the property 'pagination' + */ + @Test + public void paginationTest() { + // TODO: test pagination + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataTest.java new file mode 100644 index 00000000..6911e282 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeDataTest.java @@ -0,0 +1,66 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChangeOperation; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.time.OffsetDateTime; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesChangeData + */ +public class RouteFilterRulesChangeDataTest { + private final RouteFilterRulesChangeData model = new RouteFilterRulesChangeData(); + + /** + * Model tests for RouteFilterRulesChangeData + */ + @Test + public void testRouteFilterRulesChangeData() { + // TODO: test RouteFilterRulesChangeData + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperationTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperationTest.java new file mode 100644 index 00000000..d67f43cb --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeOperationTest.java @@ -0,0 +1,79 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesChangeOperation + */ +public class RouteFilterRulesChangeOperationTest { + private final RouteFilterRulesChangeOperation model = new RouteFilterRulesChangeOperation(); + + /** + * Model tests for RouteFilterRulesChangeOperation + */ + @Test + public void testRouteFilterRulesChangeOperation() { + // TODO: test RouteFilterRulesChangeOperation + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'prefix' + */ + @Test + public void prefixTest() { + // TODO: test prefix + } + + /** + * Test the property 'action' + */ + @Test + public void actionTest() { + // TODO: test action + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeTest.java new file mode 100644 index 00000000..ba045f73 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesChangeTest.java @@ -0,0 +1,64 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesChange + */ +public class RouteFilterRulesChangeTest { + private final RouteFilterRulesChange model = new RouteFilterRulesChange(); + + /** + * Model tests for RouteFilterRulesChange + */ + @Test + public void testRouteFilterRulesChange() { + // TODO: test RouteFilterRulesChange + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesDataTest.java new file mode 100644 index 00000000..8f653fed --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesDataTest.java @@ -0,0 +1,123 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesChange; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesData + */ +public class RouteFilterRulesDataTest { + private final RouteFilterRulesData model = new RouteFilterRulesData(); + + /** + * Model tests for RouteFilterRulesData + */ + @Test + public void testRouteFilterRulesData() { + // TODO: test RouteFilterRulesData + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'prefixMatch' + */ + @Test + public void prefixMatchTest() { + // TODO: test prefixMatch + } + + /** + * Test the property 'change' + */ + @Test + public void changeTest() { + // TODO: test change + } + + /** + * Test the property 'action' + */ + @Test + public void actionTest() { + // TODO: test action + } + + /** + * Test the property 'prefix' + */ + @Test + public void prefixTest() { + // TODO: test prefix + } + + /** + * Test the property 'changelog' + */ + @Test + public void changelogTest() { + // TODO: test changelog + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequestTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequestTest.java new file mode 100644 index 00000000..81db3bcd --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPostRequestTest.java @@ -0,0 +1,50 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.RouteFilterRulesBase; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterRulesPostRequest + */ +public class RouteFilterRulesPostRequestTest { + private final RouteFilterRulesPostRequest model = new RouteFilterRulesPostRequest(); + + /** + * Model tests for RouteFilterRulesPostRequest + */ + @Test + public void testRouteFilterRulesPostRequest() { + // TODO: test RouteFilterRulesPostRequest + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterStateTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterStateTest.java new file mode 100644 index 00000000..37c60d47 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFilterStateTest.java @@ -0,0 +1,32 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.annotations.SerializedName; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFilterState + */ +public class RouteFilterStateTest { + /** + * Model tests for RouteFilterState + */ + @Test + public void testRouteFilterState() { + // TODO: test RouteFilterState + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBaseTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBaseTest.java new file mode 100644 index 00000000..3d993d6c --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersBaseTest.java @@ -0,0 +1,83 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Project; +import com.equinix.openapi.fabric.v4.model.SimplifiedNotification; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFiltersBase + */ +public class RouteFiltersBaseTest { + private final RouteFiltersBase model = new RouteFiltersBase(); + + /** + * Model tests for RouteFiltersBase + */ + @Test + public void testRouteFiltersBase() { + // TODO: test RouteFiltersBase + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'project' + */ + @Test + public void projectTest() { + // TODO: test project + } + + /** + * Test the property 'notifications' + */ + @Test + public void notificationsTest() { + // TODO: test notifications + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperationTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperationTest.java new file mode 100644 index 00000000..f1e13561 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeOperationTest.java @@ -0,0 +1,64 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.RouteFiltersBase; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFiltersChangeOperation + */ +public class RouteFiltersChangeOperationTest { + private final RouteFiltersChangeOperation model = new RouteFiltersChangeOperation(); + + /** + * Model tests for RouteFiltersChangeOperation + */ + @Test + public void testRouteFiltersChangeOperation() { + // TODO: test RouteFiltersChangeOperation + } + + /** + * Test the property 'op' + */ + @Test + public void opTest() { + // TODO: test op + } + + /** + * Test the property 'path' + */ + @Test + public void pathTest() { + // TODO: test path + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionLinkTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeTest.java similarity index 84% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionLinkTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeTest.java index 5bf0affa..72f905af 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionLinkTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChangeTest.java @@ -19,31 +19,30 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.net.URI; -import java.util.UUID; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for ConnectionLink + * Model tests for RouteFiltersChange */ -public class ConnectionLinkTest { - private final ConnectionLink model = new ConnectionLink(); +public class RouteFiltersChangeTest { + private final RouteFiltersChange model = new RouteFiltersChange(); /** - * Model tests for ConnectionLink + * Model tests for RouteFiltersChange */ @Test - public void testConnectionLink() { - // TODO: test ConnectionLink + public void testRouteFiltersChange() { + // TODO: test RouteFiltersChange } /** - * Test the property 'href' + * Test the property 'uuid' */ @Test - public void hrefTest() { - // TODO: test href + public void uuidTest() { + // TODO: test uuid } /** @@ -55,11 +54,11 @@ public void typeTest() { } /** - * Test the property 'uuid' + * Test the property 'href' */ @Test - public void uuidTest() { - // TODO: test uuid + public void hrefTest() { + // TODO: test href } } diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOfTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOfTest.java new file mode 100644 index 00000000..be23bc17 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectAllOfTest.java @@ -0,0 +1,48 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFiltersDataProjectAllOf + */ +public class RouteFiltersDataProjectAllOfTest { + private final RouteFiltersDataProjectAllOf model = new RouteFiltersDataProjectAllOf(); + + /** + * Model tests for RouteFiltersDataProjectAllOf + */ + @Test + public void testRouteFiltersDataProjectAllOf() { + // TODO: test RouteFiltersDataProjectAllOf + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectTest.java new file mode 100644 index 00000000..e76359f9 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataProjectTest.java @@ -0,0 +1,56 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFiltersDataProject + */ +public class RouteFiltersDataProjectTest { + private final RouteFiltersDataProject model = new RouteFiltersDataProject(); + + /** + * Model tests for RouteFiltersDataProject + */ + @Test + public void testRouteFiltersDataProject() { + // TODO: test RouteFiltersDataProject + } + + /** + * Test the property 'projectId' + */ + @Test + public void projectIdTest() { + // TODO: test projectId + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataTest.java new file mode 100644 index 00000000..81e4c736 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/RouteFiltersDataTest.java @@ -0,0 +1,144 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.RouteFilterState; +import com.equinix.openapi.fabric.v4.model.RouteFiltersChange; +import com.equinix.openapi.fabric.v4.model.RouteFiltersDataProject; +import com.equinix.openapi.fabric.v4.model.SimplifiedNotification; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for RouteFiltersData + */ +public class RouteFiltersDataTest { + private final RouteFiltersData model = new RouteFiltersData(); + + /** + * Model tests for RouteFiltersData + */ + @Test + public void testRouteFiltersData() { + // TODO: test RouteFiltersData + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'state' + */ + @Test + public void stateTest() { + // TODO: test state + } + + /** + * Test the property 'change' + */ + @Test + public void changeTest() { + // TODO: test change + } + + /** + * Test the property 'notMatchedRuleAction' + */ + @Test + public void notMatchedRuleActionTest() { + // TODO: test notMatchedRuleAction + } + + /** + * Test the property 'connectionsCount' + */ + @Test + public void connectionsCountTest() { + // TODO: test connectionsCount + } + + /** + * Test the property 'project' + */ + @Test + public void projectTest() { + // TODO: test project + } + + /** + * Test the property 'notifications' + */ + @Test + public void notificationsTest() { + // TODO: test notifications + } + + /** + * Test the property 'changelog' + */ + @Test + public void changelogTest() { + // TODO: test changelog + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetroTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetroTest.java index 536fe181..923eafc0 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetroTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetroTest.java @@ -56,6 +56,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'vcBandwidthMax' + */ + @Test + public void vcBandwidthMaxTest() { + // TODO: test vcBandwidthMax + } + /** * Test the property 'ibxs' */ diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetrosTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetrosTest.java new file mode 100644 index 00000000..ef477dae --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ServiceMetrosTest.java @@ -0,0 +1,59 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.equinix.openapi.fabric.v4.model.Pagination; +import com.equinix.openapi.fabric.v4.model.ServiceMetro; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for ServiceMetros + */ +public class ServiceMetrosTest { + private final ServiceMetros model = new ServiceMetros(); + + /** + * Model tests for ServiceMetros + */ + @Test + public void testServiceMetros() { + // TODO: test ServiceMetros + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'pagination' + */ + @Test + public void paginationTest() { + // TODO: test pagination + } + +} diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAndTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAndTest.java similarity index 81% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAndTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAndTest.java index 9c35b8f7..1346285d 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterAndTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterAndTest.java @@ -25,17 +25,17 @@ /** - * Model tests for ValidateSubnetRequestFilterAnd + * Model tests for ValidateRequestFilterAnd */ -public class ValidateSubnetRequestFilterAndTest { - private final ValidateSubnetRequestFilterAnd model = new ValidateSubnetRequestFilterAnd(); +public class ValidateRequestFilterAndTest { + private final ValidateRequestFilterAnd model = new ValidateRequestFilterAnd(); /** - * Model tests for ValidateSubnetRequestFilterAnd + * Model tests for ValidateRequestFilterAnd */ @Test - public void testValidateSubnetRequestFilterAnd() { - // TODO: test ValidateSubnetRequestFilterAnd + public void testValidateRequestFilterAnd() { + // TODO: test ValidateRequestFilterAnd } /** diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterTest.java similarity index 76% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterTest.java index 90f78692..38ab528e 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestFilterTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestFilterTest.java @@ -12,7 +12,7 @@ package com.equinix.openapi.fabric.v4.model; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilterAnd; +import com.equinix.openapi.fabric.v4.model.ValidateRequestFilterAnd; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -26,17 +26,17 @@ /** - * Model tests for ValidateSubnetRequestFilter + * Model tests for ValidateRequestFilter */ -public class ValidateSubnetRequestFilterTest { - private final ValidateSubnetRequestFilter model = new ValidateSubnetRequestFilter(); +public class ValidateRequestFilterTest { + private final ValidateRequestFilter model = new ValidateRequestFilter(); /** - * Model tests for ValidateSubnetRequestFilter + * Model tests for ValidateRequestFilter */ @Test - public void testValidateSubnetRequestFilter() { - // TODO: test ValidateSubnetRequestFilter + public void testValidateRequestFilter() { + // TODO: test ValidateRequestFilter } /** diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestTest.java similarity index 77% rename from equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestTest.java rename to equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestTest.java index 5237b9da..d1d1f2ef 100644 --- a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateSubnetRequestTest.java +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/ValidateRequestTest.java @@ -12,7 +12,7 @@ package com.equinix.openapi.fabric.v4.model; -import com.equinix.openapi.fabric.v4.model.ValidateSubnetRequestFilter; +import com.equinix.openapi.fabric.v4.model.ValidateRequestFilter; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -24,17 +24,17 @@ /** - * Model tests for ValidateSubnetRequest + * Model tests for ValidateRequest */ -public class ValidateSubnetRequestTest { - private final ValidateSubnetRequest model = new ValidateSubnetRequest(); +public class ValidateRequestTest { + private final ValidateRequest model = new ValidateRequest(); /** - * Model tests for ValidateSubnetRequest + * Model tests for ValidateRequest */ @Test - public void testValidateSubnetRequest() { - // TODO: test ValidateSubnetRequest + public void testValidateRequest() { + // TODO: test ValidateRequest } /** diff --git a/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/VirtualNetworkTest.java b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/VirtualNetworkTest.java new file mode 100644 index 00000000..91e1aa76 --- /dev/null +++ b/equinix-openapi-fabric/src/test/java/com/equinix/openapi/fabric/v4/model/VirtualNetworkTest.java @@ -0,0 +1,57 @@ +/* + * Equinix Fabric API v4 + * Equinix Fabric is an advanced software-defined interconnection solution that enables you to directly, securely and dynamically connect to distributed infrastructure and digital ecosystems on platform Equinix via a single port, Customers can use Fabric to connect to:
1. Cloud Service Providers - Clouds, network and other service providers.
2. Enterprises - Other Equinix customers, vendors and partners.
3. Myself - Another customer instance deployed at Equinix.
+ * + * Contact: api-support@equinix.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.equinix.openapi.fabric.v4.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.net.URI; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for VirtualNetwork + */ +public class VirtualNetworkTest { + private final VirtualNetwork model = new VirtualNetwork(); + + /** + * Model tests for VirtualNetwork + */ + @Test + public void testVirtualNetwork() { + // TODO: test VirtualNetwork + } + + /** + * Test the property 'href' + */ + @Test + public void hrefTest() { + // TODO: test href + } + + /** + * Test the property 'uuid' + */ + @Test + public void uuidTest() { + // TODO: test uuid + } + +} diff --git a/spec/oas3.fabric.config.json b/spec/oas3.fabric.config.json index e7f9df12..e7d54bce 100644 --- a/spec/oas3.fabric.config.json +++ b/spec/oas3.fabric.config.json @@ -1,8 +1,8 @@ { "groupId": "com.equinix", "artifactId": "equinix-openapi-fabric", - "artifactVersion": "0.4.0", - "artifactDescription": "Equinix Fabric API Specification 4.10 generated SDK", + "artifactVersion": "0.5.0", + "artifactDescription": "Equinix Fabric API Specification 4.11 generated SDK", "library": "okhttp-gson", "invokerPackage": "com.equinix.openapi.fabric", "modelPackage": "com.equinix.openapi.fabric.v4.model", diff --git a/spec/oas3.fabric.fetched.json b/spec/oas3.fabric.fetched.json index 76ca7108..35520d0a 100644 --- a/spec/oas3.fabric.fetched.json +++ b/spec/oas3.fabric.fetched.json @@ -13,7 +13,7 @@ "name": "Equinix Inc", "url": "https://developer.equinix.com/agreement" }, - "version": "4.10" + "version": "4.11" }, "externalDocs": { "description": "Find more information on Equinix Developer Portal", @@ -125,9 +125,6 @@ "Colo2Sp-Aws-Primary": { "$ref": "#/components/examples/COLO2AWSSPwithDot1q-Primary" }, - "Colo2Sp-Aws-Secondary": { - "$ref": "#/components/examples/COLO2AWSSPwithDot1q-Secondary" - }, "Colo2Sp-AzureDot1Q": { "$ref": "#/components/examples/COLO2AzureSPwithDot1q-Primary" }, @@ -220,6 +217,9 @@ }, "AsideServiceToken2ZsideServiceToken": { "$ref": "#/components/examples/AsideServiceToken2ZsideServiceToken" + }, + "Metal2Sp-Aws": { + "$ref": "#/components/examples/Metal2Sp-Aws" } } } @@ -267,6 +267,9 @@ }, "ServiceToken2PortResponseQinQ": { "$ref": "#/components/examples/AsideServiceToken2PortResponseWithQinq" + }, + "Metal2Sp-Aws": { + "$ref": "#/components/examples/Metal2Sp-Aws-Response" } } } @@ -4135,6 +4138,124 @@ } } }, + "/fabric/v4/serviceProfiles/{serviceProfileId}/metros": { + "get": { + "tags": [ + "Service Profiles" + ], + "summary": "Get Profile Metros", + "description": "Get service profile metros by UUID.", + "operationId": "getServiceProfileMetrosByUuid", + "parameters": [ + { + "name": "serviceProfileId", + "in": "path", + "description": "Service Profile UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceProfileId" + } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json; charset=UTF-8": { + "schema": { + "$ref": "#/components/schemas/ServiceMetros" + }, + "examples": { + "ServiceProfileMetros": { + "$ref": "#/components/examples/ServiceProfilesResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-400" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-403-read" + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-500" + } + } + } + } + } + } + } + }, "/fabric/v4/serviceTokens/{serviceTokenId}": { "get": { "tags": [ @@ -5459,44 +5580,36 @@ } } }, - "/fabric/v4/routers": { - "post": { + "/fabric/v4/connections/{connectionId}/routeFilters": { + "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Create Routers", - "description": "This API provides capability to create user's Cloud Routers", - "operationId": "createCloudRouter", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterPostRequest" - }, - "examples": { - "CreateLabPackage": { - "$ref": "#/components/examples/CreateLabPackage" - }, - "CreateProPackage": { - "$ref": "#/components/examples/CreateProPackage" - } - } + "summary": "Get All RouteFilters", + "description": "This API provides capability to view all Route Filters attached to a Connection", + "operationId": "getConnectionRouteFilters", + "parameters": [ + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } - }, - "required": true - }, + } + ], "responses": { "200": { - "description": "Fabric Cloud Router object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPostResponseExample" + "connectionRouteFiltersResponse": { + "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" } } } @@ -5511,7 +5624,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_package" + "$ref": "#/components/examples/400_route_filters" } } } @@ -5547,6 +5660,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -5571,7 +5699,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -5580,43 +5708,52 @@ } } }, - "/fabric/v4/routers/{routerId}": { + "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get Routers", - "description": "This API provides capability to retrieve user's Cloud Routers", - "operationId": "getCloudRouterByUuid", + "summary": "Get Route Filter", + "description": "This API provides capability to view a specific Route Filter attached to a Connection", + "operationId": "getConnectionRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } } ], "responses": { "200": { - "description": "Fabric Cloud Router object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterResponseExample" + "connectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -5624,14 +5761,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_route_filters" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -5639,14 +5776,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -5654,14 +5791,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -5669,38 +5806,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/404_invalid_id" } } } } - } - } - }, - "delete": { - "tags": [ - "Cloud Routers" - ], - "summary": "Delete Routers", - "description": "This API provides capability to delete user's Cloud Routers", - "operationId": "deleteCloudRouterByUuid", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Cloud Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId" - } - } - ], - "responses": { - "204": { - "description": "Deleted Cloud Router Successfully" }, - "400": { - "description": "Bad request", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -5708,14 +5821,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/415" } } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -5723,52 +5836,7 @@ }, "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" + "$ref": "#/components/examples/500_internal_error" } } } @@ -5776,39 +5844,45 @@ } } }, - "patch": { + "put": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Update Routers", - "description": "This API provides capability to update user's Cloud Routers", - "operationId": "updateCloudRouterByUuid", + "summary": "Attach Route Filter", + "description": "This API provides capability to attach a Route Filter to a Connection", + "operationId": "attachConnectionRouteFilter", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterUpdateRequest" + "$ref": "#/components/schemas/ConnectionRouteFiltersBase" }, "examples": { - "UpdatePackage": { - "$ref": "#/components/examples/UpdatePackage" - }, - "UpdateName": { - "$ref": "#/components/examples/UpdateName" + "ConnectionRouteFilterAttachInboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNotifications" + "ConnectionRouteFilterAttachOutboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" } } } @@ -5816,16 +5890,16 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPatchResponseExample" + "connectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -5839,8 +5913,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "InvalidDirection": { + "$ref": "#/components/examples/400_invalid_direction" + }, + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -5877,7 +5954,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -5885,7 +5962,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -5915,53 +5992,55 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions": { - "get": { + }, + "delete": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActions", + "summary": "Detach Route Filter", + "description": "This API provides capability to detach a Route Filter from a Connection", + "operationId": "detachConnectionRouteFilter", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteFilterId" } }, { - "name": "state", - "in": "query", - "description": "Action state", + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, "schema": { - "$ref": "#/components/schemas/ActionState" + "$ref": "#/components/schemas/ConnectionId" } } ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "connectionRouteFilterDetachInboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" + }, + "connectionRouteFilterDetachOutboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" } } } @@ -5976,7 +6055,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_transient_state" } } } @@ -6013,7 +6092,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6021,14 +6100,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6051,41 +6130,33 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, + } + }, + "/fabric/v4/routeFilters": { "post": { "tags": [ - "Cloud Routers" - ], - "summary": "Route table actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "createCloudRouterAction", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" - } - } + "Route Filters" ], + "summary": "Create Route Filters", + "description": "This API provides capability to create a Route Filter", + "operationId": "createRouteFilter", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionRequest" + "$ref": "#/components/schemas/RouteFiltersBase" }, "examples": { - "RouteEntriesStatusUpdate": { - "$ref": "#/components/examples/RouteEntriesStatusUpdate" + "RouteFilterBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" } } } @@ -6098,11 +6169,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "cloudRouterActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "getSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -6117,7 +6188,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6154,7 +6225,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6162,14 +6233,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6192,7 +6263,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6201,59 +6272,37 @@ } } }, - "/fabric/v4/routers/{routerId}/routes/search": { - "post": { + "/fabric/v4/routeFilters/{routeFilterId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Search Route Table", - "description": "The API provides capability to get list of user's Fabric Cloud Router route table entries using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchCloudRouterRoutes", + "summary": "Get Filter By UUID", + "description": "This API provides capability to view a Route Filter by UUID", + "operationId": "getRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteFilterId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchRequest" - }, - "examples": { - "SearchFilterByNextHop": { - "$ref": "#/components/examples/SearchFilterByNextHop" - }, - "SearchFilterByPrefix": { - "$ref": "#/components/examples/SearchFilterByPrefix" - }, - "SearchFilterByType": { - "$ref": "#/components/examples/SearchFilterByType" - }, - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" - } - } - } - }, - "required": true - }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" + }, + "examples": { + "getSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + } } } } @@ -6267,7 +6316,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6304,7 +6353,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6312,14 +6361,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6342,31 +6391,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/validate": { - "post": { + }, + "put": { "tags": [ - "Routing Protocols" + "Route Filters" ], - "summary": "Validate Subnet", - "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", - "operationId": "validateRoutingProtocol", + "summary": "Replace Route Filter", + "description": "This API provides capability to replace a Route Filter completely", + "operationId": "replaceRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" } } ], @@ -6374,14 +6421,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetRequest" + "$ref": "#/components/schemas/RouteFiltersBase" }, "examples": { - "ValidateDirectIpv4": { - "$ref": "#/components/examples/Request-direct-ipv4" - }, - "ValidateDirectIpv6": { - "$ref": "#/components/examples/Request-direct-ipv6" + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterIPv4" } } } @@ -6389,16 +6433,16 @@ "required": true }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "ValidateSubnet": { - "$ref": "#/components/examples/Response-200" + "routeFilterIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterIpv4ReplaceResponse" } } } @@ -6412,60 +6456,119 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" - }, - "Subnet Overlapping": { - "$ref": "#/components/examples/error-400-overlappingSubnet" + "example": { + "$ref": "#/components/examples/400_route_filters" } } } } - } - } - } - }, - "/fabric/v4/routers/search": { - "post": { - "tags": [ - "Cloud Routers" - ], - "summary": "Search Routers", - "description": "The API provides capability to get list of user's Cloud Routers using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchCloudRouters", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterSearchRequest" - }, - "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterByNameAndMetroName": { - "$ref": "#/components/examples/SearchFilterByNameAndMetroName" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } } } } }, - "required": true - }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Route Filters" + ], + "summary": "Delete Route Filter", + "description": "This API provides capability to delete a Route Filter", + "operationId": "deleteRouteFilterByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + } + ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "Example": { - "$ref": "#/components/examples/search-example" + "routeFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" } } } @@ -6480,7 +6583,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_attached_connection" } } } @@ -6516,6 +6619,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -6540,56 +6658,73 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routerPackages": { - "get": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "List Packages", - "description": "This API provides capability to retrieve user's Cloud Routers Packages", - "operationId": "getCloudRouterPackages", + "summary": "Patch Route Filter", + "description": "This API provides capability to partially update a Route Filter", + "operationId": "patchRouteFilterByUuid", "parameters": [ { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "schema": { - "type": "integer" - }, - "example": 1 - }, - { - "name": "limit", - "in": "query", - "description": "number of records to fetch", - "required": false, + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/RouteFilterId" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFiltersPatchRequest" + }, + "examples": { + "RouteFilterNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterName" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Cloud Router Packages", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "Example": { - "$ref": "#/components/examples/ListFCRPackagesResponse" + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -6625,6 +6760,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -6649,7 +6799,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6658,32 +6808,57 @@ } } }, - "/fabric/v4/routerPackages/{routerPackageCode}": { + "/fabric/v4/routeFilters/{routeFilterId}/changes": { "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get Package Details", - "description": "This API provides capability to retrieve user's Cloud Routers Package Details", - "operationId": "getCloudRouterPackageByCode", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter's Changes", + "operationId": "getRouteFilterChanges", "parameters": [ { - "name": "routerPackageCode", + "name": "routeFilterId", "in": "path", - "description": "Equinix-assigned Cloud Router package identifier", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterPackageCode" + "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Cloud Router Package details", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/RouteFilterChangeDataResponse" + }, + "examples": { + "RouteFilterChangesResponse": { + "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" + } } } } @@ -6697,7 +6872,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_package" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -6733,8 +6908,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6742,7 +6917,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -6757,7 +6932,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6766,141 +6941,120 @@ } } }, - "/fabric/v4/health": { + "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { "get": { "tags": [ - "Health" + "Route Filters" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter's Changes", + "operationId": "getRouteFilterChangeByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_1" + } + } ], - "summary": "Get service status", - "description": "GET All service health statys with an option query parameter to return all Equinix Fabric customer in which the customer has a presence.", - "operationId": "getStatus", - "parameters": [], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/HealthResponse" + "$ref": "#/components/schemas/RouteFilterChangeData" }, "examples": { - "metroExample": { - "$ref": "#/components/examples/healthResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" } } } } - } - } - } - }, - "/fabric/v4/connections/validate": { - "post": { - "tags": [ - "Connections" - ], - "summary": "Validate Connection", - "description": "This API provides capability to validate by auth key", - "operationId": "validateConnections", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ValidateConnectionRequest" - }, - "examples": { - "Alibaba-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Alibaba" - }, - "Aws-ValidateAuthKey": { - "$ref": "#/components/examples/Request_AWS" - }, - "Azure-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Azure" - }, - "Google-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Google" - }, - "IBM-1.0-ValidateAuthKey": { - "$ref": "#/components/examples/Request_IBM_1" - }, - "IBM-2.0-ValidateAuthKey": { - "$ref": "#/components/examples/Request_IBM_2" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Oracle-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Oracle" + "examples": { + "example": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Dot1q-ValidateVlanAvailability": { - "$ref": "#/components/examples/Dot1q_Vlan" + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Qinq-ValidateVlanAvailability": { - "$ref": "#/components/examples/Qinq_Vlan" + "examples": { + "example": { + "$ref": "#/components/examples/403" + } } } } }, - "required": true - }, - "responses": { - "200": { - "description": "Successful operation", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Alibaba-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Alibaba" - }, - "Aws-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Aws" - }, - "Azure-ValidateAuthKey-no-existing-connections": { - "$ref": "#/components/examples/Response-Azure-no-existing-connections" - }, - "Azure-ValidateAuthKey-1-existing-Dot1q-connection": { - "$ref": "#/components/examples/Response-Azure-1-existing-Dot1q-connection" - }, - "Azure-ValidateAuthKey-1-existing-Qinq-connection": { - "$ref": "#/components/examples/Response-Azure-1-existing-Qinq-connection" - }, - "Azure-ValidateAuthKey-2-existing-Dot1q-connection": { - "$ref": "#/components/examples/Response-Azure-2-existing-Dot1q-connections" - }, - "Google-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Google" - }, - "IBM-1.0-ValidateAuthKey": { - "$ref": "#/components/examples/Response-IBM-1" - }, - "IBM-2.0-ValidateAuthKey": { - "$ref": "#/components/examples/Response-IBM-2" - }, - "Oracle-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Oracle" - }, - "Dot1q-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Dot1q-Vlan" - }, - "Qinq-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Qinq-Vlan" + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "400": { - "description": "Bad request", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -6909,44 +7063,36 @@ } } }, - "/fabric/v4/networks": { - "post": { + "/fabric/v4/routeFilters/{routeFilterId}/connections": { + "get": { "tags": [ - "Networks" + "Route Filters" ], - "summary": "Create Network", - "description": "This API provides capability to create user's Fabric Network", - "operationId": "createNetwork", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkPostRequest" - }, - "examples": { - "CreateGlobalNetwork": { - "$ref": "#/components/examples/CreateGlobalNetwork" - }, - "CreateRegionalNetwork": { - "$ref": "#/components/examples/CreateRegionalNetwork" - } - } + "summary": "Get Connections", + "description": "This API provides capability to view all Connections using the Route Filter", + "operationId": "getRouteFilterConnections", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" } - }, - "required": true - }, + } + ], "responses": { - "202": { - "description": "Fabric Network Access point object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPostResponseExample" + "routeFilterGetConnectionsResponse": { + "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" } } } @@ -6961,7 +7107,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6997,6 +7143,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7021,7 +7182,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -7030,41 +7191,71 @@ } } }, - "/fabric/v4/networks/{networkId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Network By ID", - "description": "This API provides capability to retrieve user's Fabric Network", - "operationId": "getNetworkByUuid", + "summary": "GetRFRules", + "description": "This API provides capability to get all Route Filters Rules for Fabric", + "operationId": "getRouteFilterRules", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetResponseExample" + "getAllRouteFilters": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" } } } } }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, "401": { "description": "Unauthorized", "content": { @@ -7096,7 +7287,17 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter Rule ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -7104,7 +7305,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/500_internal_error" } } } @@ -7112,35 +7313,50 @@ } } }, - "delete": { + "post": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Delete Network By ID", - "description": "This API provides capability to delete user's Fabric Network", - "operationId": "deleteNetworkByUuid", + "summary": "Create RFRule", + "description": "This API provides capability to create a Route Filter Rule", + "operationId": "createRouteFilterRule", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + }, + "examples": { + "RouteFilterRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" + } + } + } + }, + "required": true + }, "responses": { "202": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkDeleteResponseExample" + "getSpecificRouteFilterRuleResponse": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" } } } @@ -7155,7 +7371,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7192,7 +7408,17 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter Rule ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -7200,61 +7426,69 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "patch": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { + "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Update Network By ID", - "description": "This API provides capability to update user's Fabric Network", - "operationId": "updateNetworkByUuid", + "summary": "GetRFRule By UUID", + "description": "This API provides capability to view a Route Filter Rule by UUID", + "operationId": "getRouteFilterRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" } } ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/NetworkUpdateRequest" - }, - "examples": { - "UpdateName": { - "$ref": "#/components/examples/UpdateNetworkName" - }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNetworkNotifications" - } - } - } - }, - "required": true - }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPatchResponseExample" + "getSpecificRouteFilterRuleResponse": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" } } } @@ -7269,7 +7503,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7306,7 +7540,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7314,7 +7548,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -7334,31 +7568,60 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } - } - }, - "/fabric/v4/networks/search": { - "post": { + }, + "put": { "tags": [ - "Networks" + "Route Filter Rules" + ], + "summary": "ReplaceRFRule", + "description": "This API provides capability to replace a Route Filter Rule completely", + "operationId": "replaceRouteFilterRuleByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + } ], - "summary": "Search Network", - "description": "The API provides capability to get list of user's Fabric Network using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchNetworks", - "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchRequest" + "$ref": "#/components/schemas/RouteFilterRulesBase" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" } } } @@ -7366,16 +7629,16 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkSearchResponseExample" + "routeFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleIpv4ReplaceResponse" } } } @@ -7390,7 +7653,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7426,6 +7689,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7440,40 +7718,62 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } - } - }, - "/fabric/v4/networks/{networkId}/connections": { - "get": { + }, + "delete": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Connections", - "description": "The API provides capability to get list of user's Fabric Network connections", - "operationId": "getConnectionsByNetworkUuid", + "summary": "DeleteRFRule", + "description": "This API provides capability to delete a Route Filter Rule", + "operationId": "deleteRouteFilterRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" } } ], "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkConnections" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/GetNetworkConnectionExample" + "routeFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" } } } @@ -7488,7 +7788,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/400_transient_filter" } } } @@ -7524,8 +7824,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7533,52 +7833,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } } - } - } - } - }, - "/fabric/v4/networks/{networkId}/changes": { - "get": { - "tags": [ - "Networks" - ], - "summary": "Get Network Changes", - "description": "The API provides capability to get list of user's Fabric Network changes", - "operationId": "getNetworkChanges", - "parameters": [ - { - "name": "networkId", - "in": "path", - "description": "Network UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/NetworkId" - } - } - ], - "responses": { - "200": { - "description": "Fabric Network Access point object", + }, + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChangeResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkChangeResponseExample" + "example": { + "$ref": "#/components/examples/415" } } } } }, - "400": { - "description": "Bad request", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -7586,14 +7863,89 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/500_internal_error" } } } } - }, - "401": { - "description": "Unauthorized", + } + } + }, + "patch": { + "tags": [ + "Route Filter Rules" + ], + "summary": "PatchRFilterRule", + "description": "This API provides capability to partially update a Route Filter Rule", + "operationId": "patchRouteFilterRuleByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesPatchRequest" + }, + "examples": { + "RouteFilterRuleNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFiltersData" + }, + "examples": { + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" + } + } + } + } + }, + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -7622,6 +7974,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7636,49 +8003,84 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } } }, - "/fabric/v4/networks/{networkId}/changes/{changeId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve user's Fabric Network Change", - "operationId": "getNetworkChangeByUuid", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChanges", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } }, { - "name": "changeId", + "name": "routeFilterRuleId", "in": "path", - "description": "Network Change UUID", + "description": "Route Filter Rules Id", "required": true, "schema": { - "$ref": "#/components/schemas/ChangeId_1" + "$ref": "#/components/schemas/RouteFilterRuleId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Route Filter Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChange" + "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetChangeResponseExample" + "RouteFilterRuleChangesResponse": { + "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" } } } @@ -7693,7 +8095,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7730,7 +8132,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7738,7 +8140,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -7747,36 +8164,54 @@ } } }, - "/fabric/v4/timeServices/{serviceId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { "get": { "tags": [ - "Precision Time" + "Route Filter Rules" ], - "summary": "Get Time Service", - "description": "The API provides capability to get precision timing service's details", - "operationId": "getTimeServicesById", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChangeByUuid", "parameters": [ { - "name": "serviceId", + "name": "routeFilterId", "in": "path", - "description": "Service UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Route Filter Rule Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_2" } } ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/RouteFilterRulesChangeData" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" } } } @@ -7790,137 +8225,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7956,8 +8262,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7965,7 +8271,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -7980,43 +8286,116 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { + "post": { "tags": [ - "Precision Time" + "Route Filter Rules" ], - "summary": "Delete Time Service", - "description": "Delete EPT service by it's uuid", - "operationId": "deleteTimeServiceById", + "summary": "Bulk RFRules", + "description": "This API provides capability to create bulk route filter rules", + "operationId": "createRouteFilterRulesInBulk", "parameters": [ { - "name": "serviceId", + "name": "routeFilterId", "in": "path", - "description": "Service UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouteFilterId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesPostRequest" + } + } + }, + "required": true + }, "responses": { - "204": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "getAllRouteFilters": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" + } + } + } + } + } + } + } + }, + "/fabric/v4/routers": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Create Routers", + "description": "This API provides capability to create user's Cloud Routers", + "operationId": "createCloudRouter", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPostRequest" + }, + "examples": { + "CreateLabPackage": { + "$ref": "#/components/examples/CreateLabPackage" + }, + "CreateProPackage": { + "$ref": "#/components/examples/CreateStandardPackage" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Fabric Cloud Router object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouter" + }, + "examples": { + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPostResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_package" } } } @@ -8083,199 +8462,137 @@ } } } - }, - "patch": { + } + }, + "/fabric/v4/routers/{routerId}": { + "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Patch Time Service", - "description": "The API provides capability to update timing service", - "operationId": "updateTimeServicesById", + "summary": "Get Routers", + "description": "This API provides capability to retrieve user's Cloud Routers", + "operationId": "getCloudRouterByUuid", "parameters": [ { - "name": "serviceId", + "name": "routerId", "in": "path", - "description": "Service UUID", + "description": "Cloud Router UUID", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouterId" } } ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/precisionTimeChangeOperation" + "responses": { + "200": { + "description": "Fabric Cloud Router object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouter" + }, + "examples": { + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterResponseExample" + } } - }, - "examples": { - "editName": { - "$ref": "#/components/examples/edit" + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } } } } }, - "required": true - }, - "responses": { - "200": { - "description": "Successful operation", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "example": { + "$ref": "#/components/examples/403" } } } } }, - "400": { - "description": "Bad request", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Cloud Routers" + ], + "summary": "Delete Routers", + "description": "This API provides capability to delete user's Cloud Routers", + "operationId": "deleteCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "responses": { + "204": { + "description": "Deleted Cloud Router Successfully" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" } } } @@ -8311,8 +8628,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -8320,7 +8637,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404" } } } @@ -8342,32 +8659,40 @@ } } } - } - }, - "/fabric/v4/timeServices": { - "post": { + }, + "patch": { "tags": [ - "Precision Time" + "Cloud Routers" + ], + "summary": "Update Routers", + "description": "This API provides capability to update user's Cloud Routers", + "operationId": "updateCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } ], - "summary": "Create Time Service", - "description": "The API provides capability to create timing service", - "operationId": "createTimeServices", - "parameters": [], "requestBody": { "content": { - "application/json": { + "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" + "$ref": "#/components/schemas/CloudRouterUpdateRequest" }, "examples": { - "ntpSingleStandard": { - "$ref": "#/components/examples/ntpSingleStandard" + "UpdatePackage": { + "$ref": "#/components/examples/UpdatePackage" }, - "ptpSingleStandard": { - "$ref": "#/components/examples/ptpSingleStandard" + "UpdateName": { + "$ref": "#/components/examples/UpdateName" }, - "ptpSingleEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration" + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNotifications" } } } @@ -8375,16 +8700,16 @@ "required": true }, "responses": { - "202": { - "description": "Successful operation", + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPatchResponseExample" } } } @@ -8398,137 +8723,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -8564,6 +8760,21 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -8597,36 +8808,59 @@ } } }, - "/fabric/v4/timeServices/{serviceId}/connections": { + "/fabric/v4/routers/{routerId}/actions": { "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get all Connections", - "description": "The API provides capability to get prevision timing service's details", - "operationId": "getTimeServicesConnectionsByServiceId", + "summary": "Get actions", + "description": "This API provides capability to fetch action status", + "operationId": "getCloudRouterActions", "parameters": [ { - "name": "serviceId", + "name": "routerId", "in": "path", - "description": "Service UUID", + "description": "Router UUID", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouterId_1" + } + }, + { + "name": "state", + "in": "query", + "description": "Action state", + "schema": { + "$ref": "#/components/schemas/ActionState" } } ], "responses": { "200": { - "description": "Return Time Service Connection", + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterActionResponse" + }, + "examples": { + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceConnectionsResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/serviceConnectionsResponse" + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -8662,8 +8896,23 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -8693,35 +8942,58 @@ } } } - } - }, - "/fabric/v4/timeServicePackages": { - "get": { + }, + "post": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Packages", - "description": "The API provides capability to get timing service's packages", - "operationId": "getTimeServicesPackages", - "parameters": [], + "summary": "Route table actions", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "createCloudRouterAction", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterActionRequest" + }, + "examples": { + "RouteEntriesStatusUpdate": { + "$ref": "#/components/examples/RouteEntriesStatusUpdate" + } + } + } + }, + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/servicePackagesResponse" + "cloudRouterActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" } } } } }, - "415": { - "description": "Unsupported Media Type", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8729,14 +9001,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/400_invalid_operation" } } } } }, - "500": { - "description": "Internal server error", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -8744,58 +9016,44 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/401" } } } } - } - } - } - }, - "/fabric/v4/timeServicePackages/{packageCode}": { - "get": { - "tags": [ - "Precision Time" - ], - "summary": "Get Package by Code", - "description": "The API provides capability to get timing service's package by code", - "operationId": "getTimeServicesPackageByCode", - "parameters": [ - { - "name": "packageCode", - "in": "path", - "description": "Package Code", - "required": true, - "schema": { - "type": "string", - "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" - ] + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } - } - ], - "responses": { - "200": { - "description": "Successful operation", + }, + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/servicePackageResponse" + "$ref": "#/components/examples/404" } } } } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -8826,1855 +9084,2504 @@ } } } - } - }, - "components": { - "schemas": { - "ConnectionPostRequest": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectionType" - }, - "name": { - "type": "string", - "description": "Customer-provided connection name" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + }, + "/fabric/v4/routers/{routerId}/routes/search": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Search Route Table", + "description": "The API provides capability to get list of user's Fabric Cloud Router route table entries using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchCloudRouterRoutes", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchRequest" + }, + "examples": { + "SearchFilterByNextHop": { + "$ref": "#/components/examples/SearchFilterByNextHop" + }, + "SearchFilterByPrefix": { + "$ref": "#/components/examples/SearchFilterByPrefix" + }, + "SearchFilterByType": { + "$ref": "#/components/examples/SearchFilterByType" + }, + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } } }, - "bandwidth": { - "maximum": 50000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth in Mbps" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + } + } + } }, - "geoScope": { - "$ref": "#/components/schemas/GeoScopeType" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "redundancy": { - "$ref": "#/components/schemas/ConnectionRedundancy" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "aSide": { - "$ref": "#/components/schemas/ConnectionSide" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } }, - "project": { - "$ref": "#/components/schemas/Project" + "415": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "description": "Connection additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } - }, - "description": "Create connection post request" - }, - "Connection": { - "required": [ - "aSide", - "bandwidth", - "name", - "type", - "zSide" + } + } + }, + "/fabric/v4/routers/{routerId}/validate": { + "post": { + "tags": [ + "Routing Protocols" ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectionType" - }, - "href": { - "type": "string", - "description": "Connection URI", - "format": "uri", - "readOnly": true - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier" - }, - "name": { - "type": "string", - "description": "Customer-provided connection name" + "summary": "Validate Subnet", + "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", + "operationId": "validateRoutingProtocol", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "ValidateDirectIpv4": { + "$ref": "#/components/examples/Request-direct-ipv4" + }, + "ValidateDirectIpv6": { + "$ref": "#/components/examples/Request-direct-ipv6" + } + } + } }, - "description": { - "type": "string", - "description": "Customer-provided connection description" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateSubnetResponse" + }, + "examples": { + "ValidateSubnet": { + "$ref": "#/components/examples/Response-200" + } + } + } + } }, - "state": { - "$ref": "#/components/schemas/ConnectionState" - }, - "change": { - "$ref": "#/components/schemas/Change" - }, - "operation": { - "$ref": "#/components/schemas/ConnectionOperation" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "Bad Request": { + "$ref": "#/components/examples/error-400" + }, + "Subnet Overlapping": { + "$ref": "#/components/examples/error-400-overlappingSubnet" + } + } + } + } + } + } + } + }, + "/fabric/v4/routers/search": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Search Routers", + "description": "The API provides capability to get list of user's Cloud Routers using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchCloudRouters", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterByNameAndMetroName": { + "$ref": "#/components/examples/SearchFilterByNameAndMetroName" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } } }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" - }, - "bandwidth": { - "maximum": 10000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth in Mbps" - }, - "geoScope": { - "$ref": "#/components/schemas/GeoScopeType" - }, - "redundancy": { - "$ref": "#/components/schemas/ConnectionRedundancy" - }, - "isRemote": { - "type": "boolean", - "description": "Connection property derived from access point locations" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/search-example" + } + } + } + } }, - "direction": { - "$ref": "#/components/schemas/ConnectionDirection" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "aSide": { - "$ref": "#/components/schemas/ConnectionSide" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "description": "Connection additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } } }, - "project": { - "$ref": "#/components/schemas/Project" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Connection specification" - }, - "ErrorList": { - "type": "array", - "description": "List of Error Message", - "items": { - "$ref": "#/components/schemas/Error" } - }, - "ConnectionId": { - "type": "string", - "description": "Connection UUID", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "ConnectionDirection": { - "type": "string", - "description": "Connection directionality from the requester point of view", - "enum": [ - "INTERNAL", - "INCOMING", - "OUTGOING" - ] - }, - "VirtualCircuitId": { - "type": "string", - "description": "Virtual Circuit UUID" - }, - "ConnectionUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Connection Update Request", - "items": { - "$ref": "#/components/schemas/ConnectionChangeOperation" - } - }, - "ConnectionActionRequest": { - "required": [ - "type" + } + }, + "/fabric/v4/routerPackages": { + "get": { + "tags": [ + "Cloud Routers" ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/Actions" - }, - "description": { - "type": "string", - "description": "Connection rejection reason datail" + "summary": "List Packages", + "description": "This API provides capability to retrieve user's Cloud Routers Packages", + "operationId": "getCloudRouterPackages", + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 }, - "data": { - "$ref": "#/components/schemas/ConnectionAcceptanceData" - } - }, - "description": "Connection action request" - }, - "ConnectionAction": { - "required": [ - "data", - "href", - "type", - "uuid" + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 + } ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/Actions" - }, - "href": { - "type": "string", - "description": "Connection action URI", - "format": "uri", - "readOnly": true - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier" + "responses": { + "200": { + "description": "Fabric Cloud Router Packages", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/ListFCRPackagesResponse" + } + } + } + } }, - "description": { - "type": "string", - "description": "Connection rejection reason detail" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "data": { - "$ref": "#/components/schemas/ConnectionAcceptanceData" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" - } - }, - "description": "Connection action" - }, - "GetResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "data": { - "type": "array", - "description": "List of Routing Protocols", - "items": { - "$ref": "#/components/schemas/RoutingProtocolData" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } } - }, - "RoutingProtocolBase": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP", - "DIRECT" - ] - } - }, - "oneOf": [ - { - "$ref": "#/components/schemas/RoutingProtocolBGPType" - }, + } + }, + "/fabric/v4/routerPackages/{routerPackageCode}": { + "get": { + "tags": [ + "Cloud Routers" + ], + "summary": "Get Package Details", + "description": "This API provides capability to retrieve user's Cloud Routers Package Details", + "operationId": "getCloudRouterPackageByCode", + "parameters": [ { - "$ref": "#/components/schemas/RoutingProtocolDirectType" + "name": "routerPackageCode", + "in": "path", + "description": "Equinix-assigned Cloud Router package identifier", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterPackageCode" + } } - ] - }, - "RoutingProtocolBGPType": { - "required": [ - "type" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP" - ] - }, - "name": { - "type": "string", - "example": "My-BGP-route-1" - }, - "bgpIpv4": { - "$ref": "#/components/schemas/BGPConnectionIpv4" + "responses": { + "200": { + "description": "Fabric Cloud Router Package details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPackage" + } + } + } }, - "bgpIpv6": { - "$ref": "#/components/schemas/BGPConnectionIpv6" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_package" + } + } + } + } }, - "customerAsn": { - "type": "integer", - "description": "Customer asn", - "format": "int64" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "equinixAsn": { - "type": "integer", - "description": "Equinix asn", - "format": "int64" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "bgpAuthKey": { - "type": "string", - "description": "BGP authorization key" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "bfd": { - "$ref": "#/components/schemas/RoutingProtocolBFD" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } } - }, - "RoutingProtocolDirectType": { - "required": [ - "type" + } + }, + "/fabric/v4/health": { + "get": { + "tags": [ + "Health" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "DIRECT" - ] - }, - "name": { - "type": "string", - "example": "My-direct-route-1" - }, - "directIpv4": { - "$ref": "#/components/schemas/DirectConnectionIpv4" - }, - "directIpv6": { - "$ref": "#/components/schemas/DirectConnectionIpv6" + "summary": "Get service status", + "description": "GET All service health statys with an option query parameter to return all Equinix Fabric customer in which the customer has a presence.", + "operationId": "getStatus", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + }, + "examples": { + "metroExample": { + "$ref": "#/components/examples/healthResponse" + } + } + } + } } } - }, - "RoutingProtocolData": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP", - "DIRECT" - ] - } + } + }, + "/fabric/v4/connections/validate": { + "post": { + "tags": [ + "Connections" + ], + "summary": "Validate Connection", + "description": "This API provides capability to validate by auth key", + "operationId": "validateConnections", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "Alibaba-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Alibaba" + }, + "Aws-ValidateAuthKey": { + "$ref": "#/components/examples/Request_AWS" + }, + "Azure-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Azure" + }, + "Google-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Google" + }, + "IBM-1.0-ValidateAuthKey": { + "$ref": "#/components/examples/Request_IBM_1" + }, + "IBM-2.0-ValidateAuthKey": { + "$ref": "#/components/examples/Request_IBM_2" + }, + "Oracle-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Oracle" + }, + "Dot1q-ValidateVlanAvailability": { + "$ref": "#/components/examples/Dot1q_Vlan" + }, + "Qinq-ValidateVlanAvailability": { + "$ref": "#/components/examples/Qinq_Vlan" + } + } + } + }, + "required": true }, - "oneOf": [ - { - "$ref": "#/components/schemas/RoutingProtocolBGPData" + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionResponse" + }, + "examples": { + "Alibaba-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Alibaba" + }, + "Aws-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Aws" + }, + "Azure-ValidateAuthKey-no-existing-connections": { + "$ref": "#/components/examples/Response-Azure-no-existing-connections" + }, + "Azure-ValidateAuthKey-1-existing-Dot1q-connection": { + "$ref": "#/components/examples/Response-Azure-1-existing-Dot1q-connection" + }, + "Azure-ValidateAuthKey-1-existing-Qinq-connection": { + "$ref": "#/components/examples/Response-Azure-1-existing-Qinq-connection" + }, + "Azure-ValidateAuthKey-2-existing-Dot1q-connection": { + "$ref": "#/components/examples/Response-Azure-2-existing-Dot1q-connections" + }, + "Google-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Google" + }, + "IBM-1.0-ValidateAuthKey": { + "$ref": "#/components/examples/Response-IBM-1" + }, + "IBM-2.0-ValidateAuthKey": { + "$ref": "#/components/examples/Response-IBM-2" + }, + "Oracle-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Oracle" + }, + "Dot1q-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Dot1q-Vlan" + }, + "Qinq-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Qinq-Vlan" + } + } + } + } }, - { - "$ref": "#/components/schemas/RoutingProtocolDirectData" - } - ] - }, - "ConnectionRoutingProtocolPostRequest": { - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "Connection routing protocol configuration", - "items": { - "$ref": "#/components/schemas/RoutingProtocolBase" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "Bad Request": { + "$ref": "#/components/examples/error-400" + } + } + } } } - }, - "description": "Create connection routing protocolpost request" - }, - "RoutingProtocolId": { - "type": "string", - "description": "Routing Protocol UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "ConnectionRoutingProtocolPatchRequest": { - "minItems": 1, - "type": "array", - "description": "Patch connection routing protocol request", - "items": { - "$ref": "#/components/schemas/ConnectionChangeOperation" } - }, - "BGPActionsBulkData": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BGPActionData" + } + }, + "/fabric/v4/networks": { + "post": { + "tags": [ + "Networks" + ], + "summary": "Create Network", + "description": "This API provides capability to create user's Fabric Network", + "operationId": "createNetwork", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkPostRequest" + }, + "examples": { + "CreateGlobalNetwork": { + "$ref": "#/components/examples/CreateGlobalNetwork" + }, + "CreateRegionalNetwork": { + "$ref": "#/components/examples/CreateRegionalNetwork" + } + } } - } + }, + "required": true }, - "description": "List of BGP Actions" - }, - "BGPActionRequest": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/BGPActions" - } - }, - "description": "BGP action request" - }, - "BGPActionData": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Routing Protocol URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5/actions" + "responses": { + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPostResponseExample" + } + } + } + } }, - "uuid": { - "type": "string", - "description": "Routing protocol identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" + } + } + } + } }, - "type": { - "$ref": "#/components/schemas/BGPActions" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "description": { - "type": "string", - "description": "BGP action description" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "state": { - "$ref": "#/components/schemas/BGPActionStates" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "changelog": { - "$ref": "#/components/schemas/Changelog" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } } - }, - "ActionId": { - "type": "string", - "description": "BGP Action UUID", - "format": "uuid", - "example": "86534014-34b4-53f6-45d6-4b94a92d8623" - }, - "ChangeId": { - "type": "string", - "description": "Routing Protocol Change UUID", - "format": "uuid", - "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" - }, - "RoutingProtocolChangeData": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Current outcome of the change flow", - "enum": [ - "COMPLETED", - "FAILED", - "REQUESTED" - ] - }, - "createdBy": { - "type": "string", - "description": "Created by User Key" - }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "Updated by User Key" - }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time" - }, - "information": { - "type": "string", - "description": "Additional information" - }, - "data": { - "$ref": "#/components/schemas/RoutingProtocolChangeOperation" - } - }, - "description": "Current state of latest Routing Protocol change", - "allOf": [ + } + }, + "/fabric/v4/networks/{networkId}": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Network By ID", + "description": "This API provides capability to retrieve user's Fabric Network", + "operationId": "getNetworkByUuid", + "parameters": [ { - "$ref": "#/components/schemas/RoutingProtocolChange" - } - ] - }, - "RoutingProtocolChangeDataResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RoutingProtocolChangeData" + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" } } - }, - "description": "List of network changes" - }, - "SearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/Expression" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkGetResponseExample" + } + } + } + } }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SortCriteria" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Search requests containing criteria" - }, - "Expression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/Expressions" }, - "or": { - "$ref": "#/components/schemas/Expressions" - }, - "property": { - "$ref": "#/components/schemas/SearchFieldName" - }, - "operator": { - "type": "string", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "IN", - "NOT IN", - "IS NOT NULL", - "IS NULL" - ] + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "values": { - "type": "array", - "items": { - "type": "string" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } } } } }, - "Expressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Expression" - } - }, - "SearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/isRemote", - "/name", - "/uuid", - "/type", - "/geoScope", - "/account/orgId", - "/aSide/accessPoint/account/accountName", - "/aSide/accessPoint/account/accountNumber", - "/aSide/accessPoint/router/uuid", - "/aSide/accessPoint/linkProtocol/vlanCTag", - "/aSide/accessPoint/linkProtocol/vlanSTag", - "/aSide/accessPoint/linkProtocol/vlanTagMin", - "/aSide/accessPoint/linkProtocol/vlanTagMax", - "/aSide/accessPoint/location/metroCode", - "/aSide/accessPoint/location/metroName", - "/aSide/accessPoint/name", - "/aSide/accessPoint/port/uuid", - "/aSide/accessPoint/port/name", - "/aSide/accessPoint/type", - "/aSide/accessPoint/virtualDevice/name", - "/aSide/accessPoint/virtualDevice/uuid", - "/aSide/serviceToken/uuid", - "/change/status", - "/operation/equinixStatus", - "/operation/providerStatus", - "/project/projectId", - "/redundancy/group", - "/redundancy/priority", - "/zSide/accessPoint/account/accountName", - "/zSide/accessPoint/authenticationKey", - "/zSide/accessPoint/linkProtocol/vlanCTag", - "/zSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/linkProtocol/vlanTagMin", - "/zSide/accessPoint/linkProtocol/vlanTagMax", - "/zSide/accessPoint/location/metroCode", - "/zSide/accessPoint/location/metroName", - "/zSide/accessPoint/name", - "/zSide/accessPoint/port/uuid", - "/zSide/accessPoint/network/uuid", - "/zSide/accessPoint/port/name", - "/zSide/accessPoint/profile/uuid", - "/zSide/accessPoint/type", - "/zSide/accessPoint/virtualDevice/name", - "/zSide/accessPoint/virtualDevice/uuid", - "/zSide/serviceToken/uuid", - "*" - ] - }, - "SortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/SortDirection" - }, - "property": { - "$ref": "#/components/schemas/SortBy" + "delete": { + "tags": [ + "Networks" + ], + "summary": "Delete Network By ID", + "description": "This API provides capability to delete user's Fabric Network", + "operationId": "deleteNetworkByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - } - }, - "ConnectionSearchResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + ], + "responses": { + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkDeleteResponseExample" + } + } + } + } }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SortCriteriaResponse" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } + } + } } }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection" + "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" + } + } + } } } - }, - "description": "List of connections" + } }, - "FilterBody": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/SearchExpression" + "patch": { + "tags": [ + "Networks" + ], + "summary": "Update Network By ID", + "description": "This API provides capability to update user's Fabric Network", + "operationId": "updateNetworkByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - }, - "description": "Search requests containing criteria" - }, - "SearchExpression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/SearchExpressions" - }, - "or": { - "$ref": "#/components/schemas/SearchExpressions" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/NetworkUpdateRequest" + }, + "examples": { + "UpdateName": { + "$ref": "#/components/examples/UpdateNetworkName" + }, + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNetworkNotifications" + } + } + } }, - "property": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPatchResponseExample" + } + } + } + } }, - "operator": { - "type": "string", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "IN", - "NOT IN", - "IS NOT NULL", - "IS NULL" - ] + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } + } + } + } }, - "values": { - "type": "array", - "items": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - } - }, - "SearchExpressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchExpression" - } - }, - "PriceSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } }, - "pagination": { - "$ref": "#/components/schemas/Pagination" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } } - }, - "PriceErrorList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceError" - } - }, - "PriceError": { - "required": [ - "errorCode", - "errorMessage" + } + }, + "/fabric/v4/networks/search": { + "post": { + "tags": [ + "Networks" ], - "type": "object", - "properties": { - "errorCode": { - "type": "string", - "enum": [ - "EQ-3038010", - "EQ-3038022", - "EQ-3038030" - ] - }, - "errorMessage": { - "type": "string", - "enum": [ - "Validation failure", - "Invalid value", - "Internal Server Error" - ] - }, - "correlationId": { - "type": "string" + "summary": "Search Network", + "description": "The API provides capability to get list of user's Fabric Network using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchNetworks", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } + } }, - "details": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkSearchResponse" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkSearchResponseExample" + } + } + } + } }, - "help": { - "type": "string" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Error with details", - "discriminator": { - "propertyName": "errorCode" - } - }, - "PortUUID": { - "type": "string", - "description": "Port UUID", - "format": "uuid" - }, - "startDateTime": { - "type": "string", - "description": "startDateTime", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "endDateTime": { - "type": "string", - "description": "endDateTime", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "Statistics": { - "type": "object", - "properties": { - "startDateTime": { - "type": "string", - "description": "Start and duration of the statistical analysis interval.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "endDateTime": { - "type": "string", - "description": "End and duration of the statistical analysis interval.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" }, - "viewPoint": { - "type": "string", - "description": "Point of view for connection metrics - aSide or zSide", - "enum": [ - "aSide", - "zSide" - ] + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "bandwidthUtilization": { - "$ref": "#/components/schemas/BandwidthUtilization" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } - }, - "description": "This API provides service-level traffic metrics so that you can view access and gather key information required to manage service subscription sizing and capacity." - }, - "BandwidthUtilization": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "description": "Aggregated data transfer capacity. Possible values- Mbps, megabits (1 million bits) per second; Gbps, gigabits (1 billion bits) per second.", - "enum": [ - "Mbps" - ] - }, - "metricInterval": { - "type": "string", - "description": "An interval formatted value, indicating the time-interval the metric objects within the response represent" - }, - "inbound": { - "$ref": "#/components/schemas/Direction" - }, - "outbound": { - "$ref": "#/components/schemas/Direction" + } + } + }, + "/fabric/v4/networks/{networkId}/connections": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Connections", + "description": "The API provides capability to get list of user's Fabric Network connections", + "operationId": "getConnectionsByNetworkUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - }, - "description": "Bandwidth utilization statistics (octet counters-based)" - }, - "Direction": { - "type": "object", - "properties": { - "max": { - "type": "number", - "description": "Max bandwidth within request time range, represented in units specified by response \"units\" field", - "format": "float" + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkConnections" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/GetNetworkConnectionExample" + } + } + } + } }, - "mean": { - "type": "number", - "description": "Mean bandwidth within request time range, represented in units specified by response \"units\" field", - "format": "float" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } + } }, - "metrics": { - "type": "array", - "description": "Bandwidth utilization statistics for a specified interval.", - "items": { - "$ref": "#/components/schemas/Metrics" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Directional statistics" - }, - "Metrics": { - "type": "object", - "properties": { - "intervalEndTimestamp": { - "type": "string", - "description": "Interval end timestamp", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" }, - "max": { - "type": "number", - "description": "Max bandwidth within statistics object time interval, represented in units specified by response \"units\" field", - "format": "float" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "mean": { - "type": "number", - "description": "Mean bandwidth within statistics object time interval, represented in units specified by response \"units\" field", - "format": "float" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } - }, - "description": "Bandwidth utilization statistics for a specified interval." - }, - "sort": { - "type": "string", - "description": "Key or set of keys that organizes the search payload by property (such as createdDate or metroCode) or by direction. Ascending (ASC) is the default value. The \"?\" prefix indicates descending (DESC) order.", - "default": "-bandwidthUtilization", - "enum": [ - "-bandwidthUtilization" - ] - }, - "top": { - "type": "integer", - "description": "Filter returning only the specified number of most heavily trafficked ports. The standard value is [1...10], and the default is 5.", - "default": 5 - }, - "duration": { - "type": "string", - "description": "Duration of the statistical analysis interval.", - "default": "P7D", - "enum": [ - "P7D", - "P1M", - "P3M" - ] - }, - "query_direction": { - "type": "string", - "description": "Direction of traffic from the requester's viewpoint.", - "default": "outbound", - "enum": [ - "inbound", - "outbound" - ] - }, - "metricInterval": { - "type": "string", - "description": "metric interval", - "default": "P7D", - "enum": [ - "P7D" - ] - }, - "metros": { - "type": "array", - "description": "Two-letter prefix indicating the metropolitan area in which a specified Equinix asset is located.", - "items": { - "type": "string" } - }, - "projectId": { - "type": "string", - "description": "projectId", - "example": "30ad25e2-53dc-11ed-bdc3-0242ac120002" - }, - "TopUtilizedStatistics": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "description": "Data returned from the API call.", - "items": { - "$ref": "#/components/schemas/Statistics" - } - } - }, - "description": "This API provides service-level traffic metrics for the top utilized ports so that you can view access and gather key information required to manage service subscription sizing and capacity." - }, - "viewPoint": { - "type": "string", - "description": "viewPoint", - "enum": [ - "aSide", - "zSide" - ] - }, - "ServiceProfiles": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfile" - } - }, - "pagination": { - "$ref": "#/components/schemas/Pagination" - } - }, - "description": "Service Profiles" - }, - "ServiceProfileRequest": { - "required": [ - "description", - "name", - "type" + } + }, + "/fabric/v4/networks/{networkId}/changes": { + "get": { + "tags": [ + "Networks" ], - "type": "object", - "properties": { - "project": { - "$ref": "#/components/schemas/Project" - } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", - "allOf": [ + "summary": "Get Network Changes", + "description": "The API provides capability to get list of user's Fabric Network changes", + "operationId": "getNetworkChanges", + "parameters": [ { - "$ref": "#/components/schemas/SimplifiedServiceProfile" - } - ] - }, - "SimplifiedServiceProfile": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Service Profile URI response attribute", - "format": "uri", - "readOnly": true - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileTypeEnum" - }, - "name": { - "maxLength": 50, - "type": "string", - "description": "Customer-assigned service profile name", - "example": "Sample Service Profile" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned service profile identifier", - "format": "uuid" - }, - "description": { - "type": "string", - "description": "User-provided service description should be of maximum length 375", - "example": "offering connectivity to my-network" - }, - "notifications": { - "type": "array", - "description": "Recipients of notifications on service profile change", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" - } - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "visibility": { - "$ref": "#/components/schemas/ServiceProfileVisibilityEnum" - }, - "allowedEmails": { - "type": "array", - "items": { - "type": "string", - "format": "email" + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" } - }, - "accessPointTypeConfigs": { - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointType" + } + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkChangeResponse" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkChangeResponseExample" + } + } + } } }, - "customFields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomField" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } } }, - "marketingInfo": { - "$ref": "#/components/schemas/MarketingInfo" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointCOLO" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } }, - "virtualDevices": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointVD" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } }, - "metros": { - "type": "array", - "description": "Derived response attribute.", - "items": { - "$ref": "#/components/schemas/ServiceMetro" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } } - }, - "selfProfile": { - "type": "boolean", - "description": "response attribute indicates whether the profile belongs to the same organization as the api-invoker." - }, - "projectId": { - "type": "string" } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n" - }, - "Tags": { - "type": "array", - "items": { - "type": "string" } - }, - "ServiceProfileAccessPointType": { - "type": "object", - "description": "Access Point Type", - "oneOf": [ - { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeCOLO" + } + }, + "/fabric/v4/networks/{networkId}/changes/{changeId}": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve user's Fabric Network Change", + "operationId": "getNetworkChangeByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } }, { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeVD" + "name": "changeId", + "in": "path", + "description": "Network Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_3" + } } - ] - }, - "ServiceProfileAccessPointTypeCOLO": { - "required": [ - "type" ], - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" - }, - "supportedBandwidths": { - "$ref": "#/components/schemas/Bandwidths" - }, - "allowRemoteConnections": { - "type": "boolean", - "description": "Setting to allow or prohibit remote connections to the service profile.", - "example": true, - "default": false - }, - "allowCustomBandwidth": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth.", - "example": true, - "default": false - }, - "bandwidthAlertThreshold": { - "type": "number", - "description": "percentage of port bandwidth at which an allocation alert is generated - missing on wiki." - }, - "allowBandwidthAutoApproval": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller.", - "default": false - }, - "allowBandwidthUpgrade": { - "type": "boolean", - "description": "Availability of a bandwidth upgrade. The default is false." - }, - "linkProtocolConfig": { - "$ref": "#/components/schemas/ServiceProfileLinkProtocolConfig" - }, - "enableAutoGenerateServiceKey": { - "type": "boolean", - "description": "for verizon only." - }, - "connectionRedundancyRequired": { - "type": "boolean", - "description": "Mandate redundant connections", - "example": true, - "default": false + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkChange" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkGetChangeResponseExample" + } + } + } + } }, - "apiConfig": { - "$ref": "#/components/schemas/ApiConfig" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } + } }, - "connectionLabel": { - "type": "string", - "description": "custom name for \"Connection\"" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "authenticationKey": { - "$ref": "#/components/schemas/AuthenticationKey" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "metadata": { - "$ref": "#/components/schemas/ServiceProfileMetadata" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } } - }, - "description": "Colo Access Point Type" - }, - "ServiceProfileAccessPointTypeEnum": { - "type": "string", - "description": "Access point type", - "enum": [ - "VD", - "COLO" - ] - }, - "Bandwidths": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bandwidth" } - }, - "Bandwidth": { - "type": "integer", - "description": "speed in Mbps", - "example": 50 - }, - "ServiceProfileLinkProtocolConfig": { - "type": "object", - "properties": { - "encapsulationStrategy": { - "type": "string", - "description": "was tagType - missing on wiki", - "enum": [ - "CTAGED", - "BOTH", - "NAMED" - ] - }, - "namedTags": { - "maxItems": 64, - "type": "array", - "items": { - "type": "string" + } + }, + "/fabric/v4/timeServices/{serviceId}": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Time Service", + "description": "The API provides capability to get precision timing service's details", + "operationId": "getTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" } - }, - "vlanCTagLabel": { - "type": "string", - "description": "was ctagLabel" - }, - "reuseVlanSTag": { - "type": "boolean", - "example": true, - "default": false - }, - "encapsulation": { - "type": "string", - "description": "Port encapsulation - Derived response attribute. Ignored on request payloads.", - "enum": [ - "QINQ", - "DOT1Q", - "UNTAGGED" - ] } - }, - "description": "Configuration for dot1q to qinq translation support" - }, - "ApiConfig": { - "type": "object", - "properties": { - "apiAvailable": { - "type": "boolean", - "description": "Setting indicating whether the API is available (true) or not (false).", - "example": true, - "default": false - }, - "integrationId": { - "type": "string" - }, - "equinixManagedPort": { - "type": "boolean", - "description": "Setting indicating that the port is managed by Equinix (true) or not (false).", - "example": true, - "default": false - }, - "equinixManagedVlan": { - "type": "boolean", - "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false).", - "example": true, - "default": false + ], + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "allowOverSubscription": { - "type": "boolean", - "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false.\nOversubscription is the sale of more than the available network bandwidth. This practice is common\nand legitimate. After all, many customers use less bandwidth than they've purchased.\nAnd network users don't consume bandwidth all at the same time. The leftover bandwidth can be sold to\nother customers. When demand surges, operational and engineering resources can be shifted to\naccommodate the load.\n", - "example": false, - "default": false + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - "overSubscriptionLimit": { - "maximum": 20, - "minimum": 1, - "type": "integer", - "description": "A cap on oversubscription.", - "example": 1, - "default": 1 + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "bandwidthFromApi": { - "type": "boolean", - "default": false - } - }, - "description": "Configuration for API based Integration for Service Profile" - }, - "AuthenticationKey": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "example": true, - "default": false + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "label": { - "type": "string", - "example": "Service Key" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "description": { - "type": "string", - "example": "description for the authentication key" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Authentication Key Support and Customization" + } }, - "ServiceProfileMetadata": { - "type": "object", - "properties": { - "props": { - "type": "string" - }, - "regEx": { - "type": "string" - }, - "regExMsg": { - "type": "string" - }, - "vlanRangeMaxValue": { - "type": "integer" - }, - "vlanRangeMinValue": { - "type": "integer" - }, - "maxQinq": { - "type": "string" - }, - "maxDot1q": { - "type": "integer" - }, - "variableBilling": { - "type": "boolean" - }, - "globalOrganization": { - "type": "string" - }, - "limitAuthKeyConn": { - "type": "boolean" - }, - "allowSecondaryLocation": { - "type": "boolean" - }, - "redundantProfileId": { - "type": "string" - }, - "allowVcMigration": { - "type": "boolean" - }, - "connectionEditable": { - "type": "boolean" - }, - "releaseVlan": { - "type": "boolean" - }, - "maxConnectionsOnPort": { - "type": "integer" - }, - "portAssignmentStrategy": { - "type": "string" - }, - "eqxManagedPort": { - "type": "boolean" - }, - "connectionNameEditable": { - "type": "boolean" - } - }, - "description": "Metadata. Response attribute. Ignored on request payload." - }, - "ServiceProfileAccessPointTypeVD": { - "required": [ - "type" + "delete": { + "tags": [ + "Precision Time" ], - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" - }, - "supportedBandwidths": { - "$ref": "#/components/schemas/Bandwidths" - }, - "allowRemoteConnections": { - "type": "boolean", - "description": "Allow remote connections to Service Profile", - "example": true - }, - "allowCustomBandwidth": { - "type": "boolean", - "example": true + "summary": "Delete time service", + "description": "Delete EPT service by it's uuid", + "operationId": "deleteTimeServiceById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } } - }, - "description": "VirtualDevice Access Point Type" - }, - "CustomField": { - "required": [ - "dataType", - "description", - "isRequired", - "label" ], - "properties": { - "label": { - "type": "string", - "example": "Account Number" - }, - "description": { - "type": "string", - "example": "Provide a valid account number" - }, - "required": { - "type": "boolean", - "example": true - }, - "dataType": { - "type": "string", - "enum": [ - "STRING", - "LIST", - "NUMBER" - ] + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "options": { - "type": "array", - "items": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } }, - "captureInEmail": { - "type": "boolean", - "description": "capture this field as a part of email notification" - } - }, - "description": "Define Custom Attributes" - }, - "MarketingInfo": { - "type": "object", - "properties": { - "logo": { - "type": "string", - "description": "Logo file name" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "promotion": { - "type": "boolean", - "description": "Profile promotion on marketplace" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "processSteps": { - "maxItems": 3, - "type": "array", - "items": { - "$ref": "#/components/schemas/ProcessStep" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } } }, - "ProcessStep": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Service profile custom step title" - }, - "subTitle": { - "type": "string", - "description": "Service profile custom step sub title" - }, - "description": { - "type": "string", - "description": "Service profile custom step description" + "patch": { + "tags": [ + "Precision Time" + ], + "summary": "Patch time service", + "description": "The API provides capability to update timing service", + "operationId": "updateTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } } - }, - "description": "Definition of customized step while making connection" - }, - "ServiceProfileAccessPointCOLO": { - "required": [ - "type", - "uuid" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "XF_PORT" - ] - }, - "uuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "sellerRegion": { - "type": "string" - }, - "sellerRegionDescription": { - "type": "string" - }, - "crossConnectId": { - "type": "string" - } - }, - "description": "Colo Access Point" - }, - "ServiceProfileAccessPointVD": { - "required": [ - "type", - "uuid" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "VD" - ] - }, - "uuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "interfaceUuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - } - }, - "description": "Virtual Device Point" - }, - "ServiceMetro": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "metro code" - }, - "name": { - "type": "string", - "description": "metro name" - }, - "ibxs": { - "type": "array", - "items": { - "type": "string", - "description": "ibx codes" - } - }, - "inTrail": { - "type": "boolean" - }, - "displayName": { - "type": "string", - "description": "service metro display name" - }, - "sellerRegions": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "ServiceProfile": { - "type": "object", - "properties": { - "state": { - "$ref": "#/components/schemas/ServiceProfileStateEnum" - }, - "account": { - "description": "Seller Account for Service Profile.", - "allOf": [ - { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - { - "type": "object" - } - ] - }, - "project": { - "$ref": "#/components/schemas/Project" - }, - "changeLog": { - "description": "Seller Account for Service Profile.", - "allOf": [ - { - "$ref": "#/components/schemas/Changelog" + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "maxItems": 1, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/precisionTimeChangeOperation" + } }, - { - "type": "object" + "examples": { + "editName": { + "$ref": "#/components/examples/edit" + } } - ] - } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", - "allOf": [ - { - "$ref": "#/components/schemas/SimplifiedServiceProfile" - } - ] - }, - "ServiceProfileSearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/ServiceProfileFilter" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileSortCriteria" } - } - }, - "description": "Search requests containing criteria" - }, - "ServiceProfileFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/ServiceProfileSimpleExpression" - }, - { - "$ref": "#/components/schemas/ServiceProfileAndFilter" - } - ] - }, - "ServiceProfileSimpleExpression": { - "type": "object", - "properties": { - "property": { - "type": "string", - "description": "Possible field names to use on filters:\n * `/name` - Service Profile name\n * `/uuid` - Service Profile uuid\n * `/state` - Service Profile status\n * `/metros/code` - Service Profile metro code\n * `/visibility` - Service Profile package\n * `/type` - Service Profile package\n * `/project/projectId` - Service Profile project id\n", - "example": "/name" - }, - "operator": { - "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n", - "example": "=" }, - "values": { - "type": "array", - "items": { - "type": "string", - "example": "ServiceProfile-1" - } - } - } - }, - "ServiceProfileAndFilter": { - "type": "object", - "properties": { - "and": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileSimpleExpression" + "required": true + }, + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } } - } - } - }, - "ServiceProfileSortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/ServiceProfileSortDirection" }, - "property": { - "$ref": "#/components/schemas/ServiceProfileSortBy" - } - } - }, - "ServiceProfileSortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "ServiceProfileSortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/state", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] - }, - "ServiceProfileId": { - "type": "string", - "description": "Service Profile UUID", - "format": "uuid" - }, - "JsonPatch": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatchOperation" - } - }, - "JsonPatchOperation": { - "type": "object", - "description": "Service Profile Access Points", - "oneOf": [ - { - "$ref": "#/components/schemas/AddOperation" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - { - "$ref": "#/components/schemas/RemoveOperation" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - { - "$ref": "#/components/schemas/ReplaceOperation" - } - ] - }, - "AddOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "value": { - "type": "object", - "description": "value to add" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Add Sub-Resource to the existing model" - }, - "OpEnum": { - "type": "string", - "description": "the operation to be performed", - "enum": [ - "add", - "remove", - "replace" - ] - }, - "Path": { - "type": "string", - "description": "A JSON Pointer path." - }, - "RemoveOperation": { - "required": [ - "op", - "path" + } + } + }, + "/fabric/v4/timeServices": { + "post": { + "tags": [ + "Precision Time" ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "summary": "Create Time Service", + "description": "The API provides capability to create timing service", + "operationId": "createTimeServices", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceRequest" + }, + "examples": { + "ntpSingleStandard": { + "$ref": "#/components/examples/ntpSingleStandard" + }, + "ptpSingleStandard": { + "$ref": "#/components/examples/ptpSingleStandard" + }, + "ptpSingleEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration" + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" - } + "required": true }, - "description": "Remove sub-resource from an existing model" - }, - "ReplaceOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - "value": { - "type": "object", - "description": "value to replace with" - } - }, - "description": "Replace attribute value or sub-resource in the existing model" - }, - "ServiceTokenUUID": { - "type": "string", - "description": "Service Token UUID", - "format": "uuid" - }, - "ServiceToken": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ServiceTokenType" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "href": { - "type": "string", - "description": "An absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "uuid": { - "type": "string", - "description": "Equinix-assigned service token identifier", - "format": "uuid" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ConnectionPostRequest": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectionType" }, "name": { "type": "string", - "description": "Customer-provided service token name" + "description": "Customer-provided connection name" }, - "description": { + "order": { + "$ref": "#/components/schemas/Order" + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on connection configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } + }, + "bandwidth": { + "maximum": 50000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth in Mbps" + }, + "geoScope": { + "$ref": "#/components/schemas/GeoScopeType" + }, + "redundancy": { + "$ref": "#/components/schemas/ConnectionRedundancy" + }, + "aSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "additionalInfo": { + "type": "array", + "description": "Connection additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } + } + }, + "description": "Create connection post request" + }, + "Connection": { + "required": [ + "aSide", + "bandwidth", + "name", + "type", + "zSide" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectionType" + }, + "href": { "type": "string", - "description": "Customer-provided service token description" + "description": "Connection URI", + "format": "uri", + "readOnly": true }, - "expirationDateTime": { + "uuid": { "type": "string", - "description": "Expiration date and time of the service token.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "Equinix-assigned connection identifier" }, - "connection": { - "$ref": "#/components/schemas/ServiceTokenConnection" + "name": { + "type": "string", + "description": "Customer-provided connection name" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" }, "state": { - "$ref": "#/components/schemas/ServiceTokenState" + "$ref": "#/components/schemas/ConnectionState" + }, + "change": { + "$ref": "#/components/schemas/Change" + }, + "operation": { + "$ref": "#/components/schemas/ConnectionOperation" + }, + "order": { + "$ref": "#/components/schemas/Order" }, "notifications": { "type": "array", - "description": "Service token related notifications", + "description": "Preferences for notifications on connection configuration or status changes", "items": { "$ref": "#/components/schemas/SimplifiedNotification" } @@ -10682,283 +11589,286 @@ "account": { "$ref": "#/components/schemas/SimplifiedAccount" }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" }, + "bandwidth": { + "maximum": 10000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth in Mbps" + }, + "geoScope": { + "$ref": "#/components/schemas/GeoScopeType" + }, + "redundancy": { + "$ref": "#/components/schemas/ConnectionRedundancy" + }, + "isRemote": { + "type": "boolean", + "description": "Connection property derived from access point locations" + }, + "direction": { + "$ref": "#/components/schemas/ConnectionDirection" + }, + "aSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "additionalInfo": { + "type": "array", + "description": "Connection additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } + }, "project": { "$ref": "#/components/schemas/Project" } }, - "description": "Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens authorize users to access protected resources and services. The tokens remove sensitive content from the environment, rather than just masking it, making the protected data impossible to unencrypt or decrypt. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets." + "description": "Connection specification" }, - "ServiceTokenUpdateRequest": { + "ErrorList": { + "type": "array", + "description": "List of Error Message", + "items": { + "$ref": "#/components/schemas/Error" + } + }, + "ConnectionId": { + "type": "string", + "description": "Connection UUID", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "ConnectionDirection": { + "type": "string", + "description": "Connection directionality from the requester point of view", + "enum": [ + "INTERNAL", + "INCOMING", + "OUTGOING" + ] + }, + "VirtualCircuitId": { + "type": "string", + "description": "Virtual Circuit UUID" + }, + "ConnectionUpdateRequest": { "minItems": 1, "type": "array", - "description": "Service Token Update Request", + "description": "Connection Update Request", "items": { - "$ref": "#/components/schemas/ServiceTokenChangeOperation" + "$ref": "#/components/schemas/ConnectionChangeOperation" } }, - "ServiceTokens": { + "ConnectionActionRequest": { + "required": [ + "type" + ], "type": "object", "properties": { - "data": { - "type": "array", - "description": "List of Service Tokens", - "items": { - "$ref": "#/components/schemas/ServiceToken" - } + "type": { + "$ref": "#/components/schemas/Actions" }, - "pagination": { - "$ref": "#/components/schemas/Pagination" + "description": { + "type": "string", + "description": "Connection rejection reason datail" + }, + "data": { + "$ref": "#/components/schemas/ConnectionAcceptanceData" } }, - "description": "Service tokens authorize a user to access protected resources and services available on the Equinix Fabric network. The owner of the resources can distribute service tokens to third-party users (trusted partners and vendors), allowing them to directly access and work with the resources on the network without involving the resource owners." + "description": "Connection action request" }, - "ServiceTokenActionRequest": { + "ConnectionAction": { "required": [ - "type" + "data", + "href", + "type", + "uuid" ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/ServiceTokenActions" + "$ref": "#/components/schemas/Actions" + }, + "href": { + "type": "string", + "description": "Connection action URI", + "format": "uri", + "readOnly": true + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier" + }, + "description": { + "type": "string", + "description": "Connection rejection reason detail" + }, + "data": { + "$ref": "#/components/schemas/ConnectionAcceptanceData" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" } }, - "description": "Service Token action request" + "description": "Connection action" }, - "ServiceTokenSearchRequest": { + "GetResponse": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/ServiceTokenSearchExpression" - }, "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - } - }, - "description": "Search requests containing criteria" - }, - "ServiceTokenSearchExpression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/ServiceTokenSearchExpressions" - }, - "property": { - "$ref": "#/components/schemas/ServiceTokenSearchFieldName" - }, - "operator": { - "type": "string", - "enum": [ - "=" - ] + "$ref": "#/components/schemas/Pagination" }, - "values": { + "data": { "type": "array", + "description": "List of Routing Protocols", "items": { - "type": "string" + "$ref": "#/components/schemas/RoutingProtocolData" } } } }, - "ServiceTokenSearchExpressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTokenSearchExpression" - } - }, - "ServiceTokenSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/uuid", - "/state", - "/name", - "/project/projectId" - ] - }, - "Presence": { - "type": "string", - "description": "Presence", - "enum": [ - "MY_PORTS" - ] - }, - "MetroResponse": { + "RoutingProtocolBase": { "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "description": "List of Fabric Metros.", - "items": { - "$ref": "#/components/schemas/Metro" - } + "type": { + "type": "string", + "description": "Routing protocol type", + "enum": [ + "BGP", + "DIRECT" + ] } }, - "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." + "oneOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolBGPType" + }, + { + "$ref": "#/components/schemas/RoutingProtocolDirectType" + } + ] }, - "Metro": { + "RoutingProtocolBGPType": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "The Canonical URL at which the resource resides." - }, "type": { "type": "string", - "description": "Indicator of a Fabric Metro" + "description": "Routing protocol type", + "enum": [ + "BGP" + ] }, - "code": { + "name": { "type": "string", - "description": "Code Assigned to an Equinix IBX data center in a specified metropolitan area." + "example": "My-BGP-route-1" }, - "region": { - "type": "string", - "description": "Board geographic area in which the data center is located" + "bgpIpv4": { + "$ref": "#/components/schemas/BGPConnectionIpv4" }, - "name": { - "type": "string", - "description": "Name of the region in which the data center is located." + "bgpIpv6": { + "$ref": "#/components/schemas/BGPConnectionIpv6" }, - "equinixAsn": { + "customerAsn": { "type": "integer", - "description": "Autonomous system number (ASN) for a specified Fabric metro. The ASN is a unique identifier that carries the network routing protocol and exchanges that data with other internal systems via border gateway protocol.", + "description": "Customer asn", "format": "int64" }, - "localVCBandwidthMax": { + "equinixAsn": { "type": "integer", - "description": "This field holds Max Connection speed with in the metro", + "description": "Equinix asn", "format": "int64" }, - "geoCoordinates": { - "$ref": "#/components/schemas/GeoCoordinates" - }, - "connectedMetros": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectedMetro" - } - }, - "geoScopes": { - "type": "array", - "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." - }, - "GeoCoordinates": { - "type": "object", - "properties": { - "latitude": { - "type": "number", - "description": "Latitude of a Fabric Metro", - "format": "double" + "bgpAuthKey": { + "type": "string", + "description": "BGP authorization key" }, - "longitude": { - "type": "number", - "description": "Longitude of a Fabric Metro", - "format": "double" + "bfd": { + "$ref": "#/components/schemas/RoutingProtocolBFD" } - }, - "description": "Geographic location data of Fabric Metro" + } }, - "ConnectedMetro": { + "RoutingProtocolDirectType": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { + "type": { "type": "string", - "description": "The Canonical URL at which the resource resides." + "description": "Routing protocol type", + "enum": [ + "DIRECT" + ] }, - "code": { + "name": { "type": "string", - "description": "Code assigned to an Equinix International Business Exchange (IBX) data center in a specified metropolitan area." + "example": "My-direct-route-1" }, - "avgLatency": { - "type": "number", - "description": "Average latency (in milliseconds[ms]) between two specified metros." + "directIpv4": { + "$ref": "#/components/schemas/DirectConnectionIpv4" }, - "remoteVCBandwidthMax": { - "type": "integer", - "description": "This field holds the Max Connection speed with connected metros", - "format": "int64" + "directIpv6": { + "$ref": "#/components/schemas/DirectConnectionIpv6" } - }, - "description": "Arrays of objects containing latency data for the specified metros" - }, - "GeoScopeType": { - "type": "string", - "description": "Geographic boundary types", - "enum": [ - "CANADA", - "CONUS" - ] - }, - "MetroErrorList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetroError" } }, - "MetroError": { - "required": [ - "errorCode", - "errorMessage" - ], + "RoutingProtocolData": { "type": "object", "properties": { - "errorCode": { - "type": "string", - "enum": [ - "EQ-3036001", - "EQ-3036013", - "EQ-3036030", - "EQ-3036100" - ] - }, - "errorMessage": { + "type": { "type": "string", + "description": "Routing protocol type", "enum": [ - "Unauthorized", - "Invalid Query Parameter", - "Invalid Path Parameter", - "Invalid Query or Path Parameter", - "Internal Server Error", - "Metro Not Found" + "BGP", + "DIRECT" ] + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolBGPData" }, - "correlationId": { - "type": "string" - }, - "details": { - "type": "string" - }, - "help": { - "type": "string" - }, - "additionalInfo": { + { + "$ref": "#/components/schemas/RoutingProtocolDirectData" + } + ] + }, + "ConnectionRoutingProtocolPostRequest": { + "type": "object", + "properties": { + "data": { "type": "array", + "description": "Connection routing protocol configuration", "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "$ref": "#/components/schemas/RoutingProtocolBase" } } }, - "description": "Error with details", - "discriminator": { - "propertyName": "errorCode" - } + "description": "Create connection routing protocolpost request" }, - "MetroCode": { + "RoutingProtocolId": { "type": "string", - "description": "Metro Code" - }, - "AllPortsResponse": { + "description": "Routing Protocol UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "ConnectionRoutingProtocolPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch connection routing protocol request", + "items": { + "$ref": "#/components/schemas/ConnectionChangeOperation" + } + }, + "BGPActionsBulkData": { "type": "object", "properties": { "pagination": { @@ -10966,363 +11876,312 @@ }, "data": { "type": "array", - "description": "GET All User Port Across Fabric Metros", "items": { - "$ref": "#/components/schemas/Port" + "$ref": "#/components/schemas/BGPActionData" } } }, - "description": "GET All User Port Across Fabric Metros" + "description": "List of BGP Actions" }, - "Port": { + "BGPActionRequest": { "required": [ - "account", - "connectivitySourceType", - "encapsulation", - "location", - "physicalPortsSpeed", - "physicalPortsType", - "settings", "type" ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/PortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Port Id" - }, + "$ref": "#/components/schemas/BGPActions" + } + }, + "description": "BGP action request" + }, + "BGPActionData": { + "type": "object", + "properties": { "href": { "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "description": "Routing Protocol URI", "format": "uri", - "readOnly": true + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5/actions" }, "uuid": { "type": "string", - "description": "Equinix assigned response attribute for port identifier", - "format": "uuid" + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "name": { - "type": "string", - "description": "Equinix assigned response attribute for Port name" + "type": { + "$ref": "#/components/schemas/BGPActions" }, "description": { "type": "string", - "description": "Equinix assigned response attribute for Port description" - }, - "physicalPortsSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Ports Speed in Mbps" - }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Connection count" - }, - "physicalPortsType": { - "type": "string", - "description": "Physical Ports Type", - "enum": [ - "1000BASE_LX", - "10GBASE_LR", - "100GBASE_LR4", - "10GBASE_ER", - "1000BASE_SX" - ] - }, - "physicalPortsCount": { - "type": "integer" - }, - "connectivitySourceType": { - "type": "string", - "description": "Port connectivity type", - "enum": [ - "COLO", - "BMMR", - "REMOTE" - ] - }, - "bmmrType": { - "type": "string", - "enum": [ - "SELF", - "EQUINIX" - ] - }, - "project": { - "$ref": "#/components/schemas/Project" + "description": "BGP action description" }, "state": { - "$ref": "#/components/schemas/PortState" - }, - "order": { - "$ref": "#/components/schemas/PortOrder" - }, - "cvpId": { - "type": "string", - "description": "Equinix assigned response attribute for Unique ID for a virtual port." - }, - "operation": { - "$ref": "#/components/schemas/PortOperation" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "$ref": "#/components/schemas/BGPActionStates" }, "changelog": { "$ref": "#/components/schemas/Changelog" - }, - "serviceType": { + } + } + }, + "ActionId": { + "type": "string", + "description": "BGP Action UUID", + "format": "uuid", + "example": "86534014-34b4-53f6-45d6-4b94a92d8623" + }, + "ChangeId": { + "type": "string", + "description": "Routing Protocol Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RoutingProtocolChangeData": { + "type": "object", + "properties": { + "status": { "type": "string", - "description": "Port service Type", + "description": "Current outcome of the change flow", "enum": [ - "EPL", - "MSP" + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - "bandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port bandwidth in Mbps" - }, - "availableBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" - }, - "usedBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "device": { - "$ref": "#/components/schemas/PortDevice" - }, - "interface": { - "$ref": "#/components/schemas/PortInterface" - }, - "demarcationPointIbx": { + "createdBy": { "type": "string", - "description": "A-side/Equinix ibx" + "description": "Created by User Key" }, - "tetherIbx": { + "createdDateTime": { "type": "string", - "description": "z-side/Equinix ibx" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "redundancy": { - "$ref": "#/components/schemas/PortRedundancy" - }, - "encapsulation": { - "$ref": "#/components/schemas/PortEncapsulation" - }, - "lagEnabled": { - "type": "boolean", - "description": "If LAG enabled" - }, - "lag": { - "$ref": "#/components/schemas/PortLag" - }, - "asn": { - "type": "integer", - "description": "Port ASN" - }, - "settings": { - "$ref": "#/components/schemas/PortSettings" + "description": "Set when change flow starts", + "format": "date-time" }, - "physicalPortQuantity": { - "type": "integer", - "description": "Number of physical ports" + "updatedBy": { + "type": "string", + "description": "Updated by User Key" }, - "notifications": { - "type": "array", - "description": "Notification preferences", - "items": { - "$ref": "#/components/schemas/PortNotification" - } + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time" }, - "additionalInfo": { - "type": "array", - "description": "Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } + "information": { + "type": "string", + "description": "Additional information" }, - "physicalPorts": { - "type": "array", - "description": "Physical ports that implement this port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "data": { + "$ref": "#/components/schemas/RoutingProtocolChangeOperation" + } + }, + "description": "Current state of latest Routing Protocol change", + "allOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolChange" + } + ] + }, + "RoutingProtocolChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "loas": { + "data": { "type": "array", - "description": "Port Loas", "items": { - "$ref": "#/components/schemas/PortLoa" + "$ref": "#/components/schemas/RoutingProtocolChangeData" } } }, - "description": "Port specification" + "description": "List of network changes" }, - "PhysicalPort": { + "SearchRequest": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/PhysicalPortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Physical Port Id" - }, - "href": { - "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true - }, - "state": { - "$ref": "#/components/schemas/PortState" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "interfaceSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Port Speed in Mbps" - }, - "interfaceType": { - "type": "string", - "description": "Physical Port Interface Type" - }, - "tether": { - "$ref": "#/components/schemas/PortTether" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "additionalInfo": { - "type": "array", - "description": "Physical Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } - }, - "order": { - "$ref": "#/components/schemas/PortOrder" + "filter": { + "$ref": "#/components/schemas/Expression" }, - "operation": { - "$ref": "#/components/schemas/PortOperation" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "loas": { + "sort": { "type": "array", - "description": "Port Loas", "items": { - "$ref": "#/components/schemas/PortLoa" + "$ref": "#/components/schemas/SortCriteria" } } }, - "description": "Physical Port specification" + "description": "Search requests containing criteria" }, - "BulkPort": { + "Expression": { "type": "object", "properties": { - "data": { + "and": { + "$ref": "#/components/schemas/Expressions" + }, + "or": { + "$ref": "#/components/schemas/Expressions" + }, + "property": { + "$ref": "#/components/schemas/SearchFieldName" + }, + "operator": { + "type": "string", + "enum": [ + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "IN", + "NOT IN", + "IS NOT NULL", + "IS NULL" + ] + }, + "values": { "type": "array", "items": { - "$ref": "#/components/schemas/Port" + "type": "string" } } - }, - "description": "Create bulk port request" + } }, - "BulkPhysicalPort": { + "Expressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Expression" + } + }, + "SearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/isRemote", + "/name", + "/uuid", + "/type", + "/geoScope", + "/account/orgId", + "/aSide/accessPoint/account/accountName", + "/aSide/accessPoint/account/accountNumber", + "/aSide/accessPoint/router/uuid", + "/aSide/accessPoint/linkProtocol/vlanCTag", + "/aSide/accessPoint/linkProtocol/vlanSTag", + "/aSide/accessPoint/linkProtocol/vlanTagMin", + "/aSide/accessPoint/linkProtocol/vlanTagMax", + "/aSide/accessPoint/location/metroCode", + "/aSide/accessPoint/location/metroName", + "/aSide/accessPoint/name", + "/aSide/accessPoint/port/uuid", + "/aSide/accessPoint/port/name", + "/aSide/accessPoint/type", + "/aSide/accessPoint/virtualDevice/name", + "/aSide/accessPoint/virtualDevice/uuid", + "/aSide/serviceToken/uuid", + "/change/status", + "/operation/equinixStatus", + "/operation/providerStatus", + "/project/projectId", + "/redundancy/group", + "/redundancy/priority", + "/zSide/accessPoint/account/accountName", + "/zSide/accessPoint/authenticationKey", + "/zSide/accessPoint/linkProtocol/vlanCTag", + "/zSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/linkProtocol/vlanTagMin", + "/zSide/accessPoint/linkProtocol/vlanTagMax", + "/zSide/accessPoint/location/metroCode", + "/zSide/accessPoint/location/metroName", + "/zSide/accessPoint/name", + "/zSide/accessPoint/port/uuid", + "/zSide/accessPoint/network/uuid", + "/zSide/accessPoint/port/name", + "/zSide/accessPoint/profile/uuid", + "/zSide/accessPoint/type", + "/zSide/accessPoint/virtualDevice/name", + "/zSide/accessPoint/virtualDevice/uuid", + "/zSide/serviceToken/uuid", + "*" + ] + }, + "SortCriteria": { "type": "object", "properties": { - "data": { - "type": "array", - "description": "add physical ports to virtual port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "direction": { + "$ref": "#/components/schemas/SortDirection" + }, + "property": { + "$ref": "#/components/schemas/SortBy" } - }, - "description": "Add to Lag request" + } }, - "AllPhysicalPortsResponse": { + "ConnectionSearchResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, - "data": { + "sort": { "type": "array", - "description": "GET All Physical Ports", "items": { - "$ref": "#/components/schemas/PhysicalPort" + "$ref": "#/components/schemas/SortCriteriaResponse" } - } - }, - "description": "GET All Physical Ports" - }, - "LinkProtocolGetResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" }, "data": { "type": "array", "items": { - "$ref": "#/components/schemas/LinkProtocolResponse" + "$ref": "#/components/schemas/Connection" } } }, - "description": "List of Vlans" + "description": "List of connections" }, - "PortV4SearchRequest": { + "FilterBody": { "type": "object", "properties": { "filter": { - "$ref": "#/components/schemas/PortExpression" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PortSortCriteria" - } + "$ref": "#/components/schemas/SearchExpression" } }, "description": "Search requests containing criteria" }, - "PortExpression": { + "SearchExpression": { "type": "object", "properties": { "and": { - "$ref": "#/components/schemas/PortExpressions" + "$ref": "#/components/schemas/SearchExpressions" }, "or": { - "$ref": "#/components/schemas/PortExpressions" + "$ref": "#/components/schemas/SearchExpressions" }, "property": { - "$ref": "#/components/schemas/PortSearchFieldName" + "type": "string" }, "operator": { "type": "string", "enum": [ - "=" + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "IN", + "NOT IN", + "IS NOT NULL", + "IS NULL" ] }, "values": { @@ -11333,323 +12192,243 @@ } } }, - "PortExpressions": { + "SearchExpressions": { "type": "array", "items": { - "$ref": "#/components/schemas/PortExpression" + "$ref": "#/components/schemas/SearchExpression" } }, - "PortSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/project/projectId", - "/settings/productCode", - "/state" - ] - }, - "PortSortCriteria": { + "PriceSearchResponse": { "type": "object", "properties": { - "direction": { - "$ref": "#/components/schemas/PortSortDirection" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, - "property": { - "$ref": "#/components/schemas/PortSortBy" + "pagination": { + "$ref": "#/components/schemas/Pagination" } } }, - "CloudRouterPostRequest": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "XF_ROUTER" - ] - }, - "name": { - "type": "string", - "description": "Customer-provided Cloud Router name" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocationWithoutIBX" - }, - "package": { - "$ref": "#/components/schemas/CloudRouterPackageType" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "project": { - "$ref": "#/components/schemas/Project" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" - } - } - }, - "description": "Create Cloud Router" + "PriceErrorList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError" + } }, - "CloudRouter": { + "PriceError": { + "required": [ + "errorCode", + "errorMessage" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Cloud Routers URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170" - }, - "uuid": { + "errorCode": { "type": "string", - "description": "Equinix-assigned access point identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "enum": [ + "EQ-3038010", + "EQ-3038022", + "EQ-3038030" + ] }, - "name": { + "errorMessage": { "type": "string", - "description": "Customer-provided Cloud Router name", - "format": "string", - "example": "test-fg-1" - }, - "state": { - "$ref": "#/components/schemas/CloudRouterAccessPointState" - }, - "equinixAsn": { - "type": "integer", - "description": "Equinix ASN", - "format": "int64", - "example": 30000 - }, - "bgpIpv4RoutesCount": { - "minimum": 0, - "type": "integer", - "description": "Access point used and maximum number of IPv4 BGP routes" - }, - "bgpIpv6RoutesCount": { - "minimum": 0, - "type": "integer", - "description": "Access point used and maximum number of IPv6 BGP routes" - }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Number of connections associated with this Access point" + "enum": [ + "Validation failure", + "Invalid value", + "Internal Server Error" + ] }, - "distinctIpv4PrefixesCount": { - "minimum": 0, - "type": "integer", - "description": "Number of distinct ipv4 routes" + "correlationId": { + "type": "string" }, - "distinctIpv6PrefixesCount": { - "minimum": 0, - "type": "integer", - "description": "Number of distinct ipv6 routes" + "details": { + "type": "string" }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "help": { + "type": "string" }, - "change": { - "$ref": "#/components/schemas/CloudRouterChange" + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Fabric Cloud Router object", - "allOf": [ - { - "$ref": "#/components/schemas/CloudRouterPostRequest" - } - ] - }, - "RouterId": { - "type": "string", - "description": "Cloud Router UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "CloudRouterUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Fabric Cloud Router Update Request", - "items": { - "$ref": "#/components/schemas/CloudRouterChangeOperation" + "description": "Error with details", + "discriminator": { + "propertyName": "errorCode" } }, - "RouterId_1": { + "PortUUID": { "type": "string", - "description": "Router UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Port UUID", + "format": "uuid" }, - "ActionState": { - "$ref": "#/components/schemas/CloudRouterActionState" + "startDateTime": { + "type": "string", + "description": "startDateTime", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "CloudRouterActionState": { + "endDateTime": { "type": "string", - "description": "Cloud Router action state", - "enum": [ - "DONE", - "FAILED", - "PENDING" - ] + "description": "endDateTime", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "CloudRouterActionResponse": { - "required": [ - "changeLog", - "state", - "type", - "uuid" - ], + "Statistics": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/CloudRouterActionType" - }, - "uuid": { + "startDateTime": { "type": "string", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Start and duration of the statistical analysis interval.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "description": { + "endDateTime": { "type": "string", - "example": "description" + "description": "End and duration of the statistical analysis interval.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "state": { - "$ref": "#/components/schemas/CloudRouterActionState" + "viewPoint": { + "type": "string", + "description": "Point of view for connection metrics - aSide or zSide", + "enum": [ + "aSide", + "zSide" + ] }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "bandwidthUtilization": { + "$ref": "#/components/schemas/BandwidthUtilization" } }, - "description": "Cloud Router actions response object" + "description": "This API provides service-level traffic metrics so that you can view access and gather key information required to manage service subscription sizing and capacity." }, - "CloudRouterActionRequest": { - "required": [ - "type" - ], + "BandwidthUtilization": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/CloudRouterActionType" + "unit": { + "type": "string", + "description": "Aggregated data transfer capacity. Possible values- Mbps, megabits (1 million bits) per second; Gbps, gigabits (1 billion bits) per second.", + "enum": [ + "Mbps" + ] + }, + "metricInterval": { + "type": "string", + "description": "An interval formatted value, indicating the time-interval the metric objects within the response represent" + }, + "inbound": { + "$ref": "#/components/schemas/Direction" + }, + "outbound": { + "$ref": "#/components/schemas/Direction" } }, - "description": "Cloud Router action request" + "description": "Bandwidth utilization statistics (octet counters-based)" }, - "RouteTableEntrySearchRequest": { + "Direction": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/RouteTableEntryFilters" + "max": { + "type": "number", + "description": "Max bandwidth within request time range, represented in units specified by response \"units\" field", + "format": "float" }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" + "mean": { + "type": "number", + "description": "Mean bandwidth within request time range, represented in units specified by response \"units\" field", + "format": "float" }, - "sort": { + "metrics": { "type": "array", + "description": "Bandwidth utilization statistics for a specified interval.", "items": { - "$ref": "#/components/schemas/RouteTableEntrySortCriteria" + "$ref": "#/components/schemas/Metrics" } } }, - "description": "Search requests containing criteria" + "description": "Directional statistics" }, - "RouteTableEntryFilters": { + "Metrics": { "type": "object", "properties": { - "and": { - "maxItems": 8, - "type": "array", - "items": { - "$ref": "#/components/schemas/RouteTableEntryFilter" - } - } - } - }, - "RouteTableEntryFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" - }, - { - "$ref": "#/components/schemas/RouteTableEntryOrFilter" - } - ] - }, - "RouteTableEntrySimpleExpression": { - "type": "object", - "properties": { - "property": { + "intervalEndTimestamp": { "type": "string", - "description": "Possible field names to use on filters:\n * `/type` - Route table entry type\n * `/prefix` - Route table entry prefix\n * `/nextHop` - Route table entry nextHop\n * `/state` - Route table entry state\n * `/*` - all-category search\n", - "example": "/type" + "description": "Interval end timestamp", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "operator": { - "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `~*` - case-insensitive like\n", - "example": "=" + "max": { + "type": "number", + "description": "Max bandwidth within statistics object time interval, represented in units specified by response \"units\" field", + "format": "float" }, - "values": { - "type": "array", - "items": { - "type": "string", - "example": "IPv4_BGP_ROUTE" - } + "mean": { + "type": "number", + "description": "Mean bandwidth within statistics object time interval, represented in units specified by response \"units\" field", + "format": "float" } - } + }, + "description": "Bandwidth utilization statistics for a specified interval." }, - "RouteTableEntryOrFilter": { - "type": "object", - "properties": { - "or": { - "maxItems": 3, - "type": "array", - "items": { - "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" - } - } - } + "sort": { + "type": "string", + "description": "Key or set of keys that organizes the search payload by property (such as createdDate or metroCode) or by direction. Ascending (ASC) is the default value. The \"?\" prefix indicates descending (DESC) order.", + "default": "-bandwidthUtilization", + "enum": [ + "-bandwidthUtilization" + ] }, - "RouteTableEntrySortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/RouteTableEntrySortDirection" - }, - "property": { - "$ref": "#/components/schemas/RouteTableEntrySortBy" - } - } + "top": { + "type": "integer", + "description": "Filter returning only the specified number of most heavily trafficked ports. The standard value is [1...10], and the default is 5.", + "default": 5 }, - "RouteTableEntrySortDirection": { + "duration": { "type": "string", - "description": "Sorting direction", - "default": "DESC", + "description": "Duration of the statistical analysis interval.", + "default": "P7D", "enum": [ - "DESC", - "ASC" + "P7D", + "P1M", + "P3M" ] }, - "RouteTableEntrySortBy": { + "query_direction": { "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", + "description": "Direction of traffic from the requester's viewpoint.", + "default": "outbound", "enum": [ - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime", - "/prefix", - "/nextHop", - "/connection/name", - "/type" + "inbound", + "outbound" ] }, - "RouteTableEntrySearchResponse": { + "metricInterval": { + "type": "string", + "description": "metric interval", + "default": "P7D", + "enum": [ + "P7D" + ] + }, + "metros": { + "type": "array", + "description": "Two-letter prefix indicating the metropolitan area in which a specified Equinix asset is located.", + "items": { + "type": "string" + } + }, + "projectId": { + "type": "string", + "description": "projectId", + "example": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + }, + "TopUtilizedStatistics": { "type": "object", "properties": { "pagination": { @@ -11659,487 +12438,669 @@ "type": "array", "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/RouteTableEntry" + "$ref": "#/components/schemas/Statistics" } } - } - }, - "ValidateSubnetRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter" - } }, - "description": "Validate subnet for Routing Protocol Configuration" + "description": "This API provides service-level traffic metrics for the top utilized ports so that you can view access and gather key information required to manage service subscription sizing and capacity." }, - "ValidateSubnetResponse": { + "viewPoint": { + "type": "string", + "description": "viewPoint", + "enum": [ + "aSide", + "zSide" + ] + }, + "ServiceProfiles": { "type": "object", "properties": { - "additionalInfo": { + "data": { "type": "array", - "description": "Additional information", "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "$ref": "#/components/schemas/ServiceProfile" } - } - }, - "description": "ValidateResponse" - }, - "CloudRouterSearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/CloudRouterFilters" }, "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CloudRouterSortCriteria" - } + "$ref": "#/components/schemas/Pagination" } }, - "description": "Search requests containing criteria" + "description": "Service Profiles" }, - "CloudRouterFilters": { + "ServiceProfileRequest": { + "required": [ + "description", + "name", + "type" + ], "type": "object", "properties": { - "and": { - "maxItems": 8, - "type": "array", - "items": { - "$ref": "#/components/schemas/CloudRouterFilter" - } + "project": { + "$ref": "#/components/schemas/Project" } - } - }, - "CloudRouterFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/CloudRouterSimpleExpression" - }, + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", + "allOf": [ { - "$ref": "#/components/schemas/CloudRouterOrFilter" + "$ref": "#/components/schemas/SimplifiedServiceProfile" } ] }, - "CloudRouterSimpleExpression": { + "SimplifiedServiceProfile": { "type": "object", "properties": { - "property": { + "href": { "type": "string", - "description": "Possible field names to use on filters:\n * `/project/projectId` - project id (mandatory)\n * `/name` - Fabric Cloud Router name\n * `/uuid` - Fabric Cloud Router uuid\n * `/state` - Fabric Cloud Router status\n * `/location/metroCode` - Fabric Cloud Router metro code\n * `/location/metroName` - Fabric Cloud Router metro name\n * `/package/code` - Fabric Cloud Router package\n * `/*` - all-category search\n", - "example": "/name" + "description": "Service Profile URI response attribute", + "format": "uri", + "readOnly": true }, - "operator": { + "type": { + "$ref": "#/components/schemas/ServiceProfileTypeEnum" + }, + "name": { + "maxLength": 50, "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `ILIKE` - case-insensitive like\n", - "example": "=" + "description": "Customer-assigned service profile name", + "example": "Sample Service Profile" }, - "values": { + "uuid": { + "type": "string", + "description": "Equinix-assigned service profile identifier", + "format": "uuid" + }, + "description": { + "type": "string", + "description": "User-provided service description should be of maximum length 375", + "example": "offering connectivity to my-network" + }, + "notifications": { "type": "array", + "description": "Recipients of notifications on service profile change", "items": { - "type": "string", - "example": "FabricCloudRouter-1" + "$ref": "#/components/schemas/SimplifiedNotification" } - } - } - }, - "CloudRouterOrFilter": { - "type": "object", - "properties": { - "or": { - "maxItems": 3, + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "visibility": { + "$ref": "#/components/schemas/ServiceProfileVisibilityEnum" + }, + "allowedEmails": { "type": "array", "items": { - "$ref": "#/components/schemas/CloudRouterSimpleExpression" + "type": "string", + "format": "email" } - } - } - }, - "CloudRouterSortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/CloudRouterSortDirection" }, - "property": { - "$ref": "#/components/schemas/CloudRouterSortBy" - } - } - }, - "CloudRouterSortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "CloudRouterSortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/uuid", - "/state", - "/location/metroCode", - "/location/metroName", - "/package/code", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] - }, - "SearchResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "accessPointTypeConfigs": { + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileAccessPointType" + } }, - "data": { + "customFields": { "type": "array", - "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/CustomField" } - } - } - }, - "PackageResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" }, - "data": { + "marketingInfo": { + "$ref": "#/components/schemas/MarketingInfo" + }, + "ports": { "type": "array", - "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/ServiceProfileAccessPointCOLO" + } + }, + "virtualDevices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileAccessPointVD" + } + }, + "metros": { + "type": "array", + "description": "Derived response attribute.", + "items": { + "$ref": "#/components/schemas/ServiceMetro" } + }, + "selfProfile": { + "type": "boolean", + "description": "response attribute indicates whether the profile belongs to the same organization as the api-invoker." + }, + "projectId": { + "type": "string" } + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" } }, - "RouterPackageCode": { - "type": "string", - "description": "Router package code", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" + "ServiceProfileAccessPointType": { + "type": "object", + "description": "Access Point Type", + "oneOf": [ + { + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeCOLO" + }, + { + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeVD" + } ] }, - "CloudRouterPackage": { + "ServiceProfileAccessPointTypeCOLO": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Cloud Router package URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" + "uuid": { + "type": "string" }, "type": { - "type": "string", - "description": "Type of Router package", - "example": "ROUTER_PACKAGE", - "enum": [ - "ROUTER_PACKAGE" - ] - }, - "code": { - "$ref": "#/components/schemas/code" + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" }, - "description": { - "type": "string", - "description": "Fabric Cloud Router Package description" + "supportedBandwidths": { + "$ref": "#/components/schemas/Bandwidths" }, - "totalIPv4RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "Cloud Router package BGP IPv4 routes limit", - "example": 50 + "allowRemoteConnections": { + "type": "boolean", + "description": "Setting to allow or prohibit remote connections to the service profile.", + "example": true, + "default": false }, - "totalIPv6RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "Cloud Router package BGP IPv6 routes limit", - "example": 50 + "allowCustomBandwidth": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth.", + "example": true, + "default": false }, - "staticIPv4RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package static IPv4 routes limit", - "example": 3 + "bandwidthAlertThreshold": { + "type": "number", + "description": "percentage of port bandwidth at which an allocation alert is generated - missing on wiki." }, - "staticIPv6RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package static IPv6 routes limit" + "allowBandwidthAutoApproval": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller.", + "default": false }, - "naclsMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package NACLs limit", - "example": 2 + "allowBandwidthUpgrade": { + "type": "boolean", + "description": "Availability of a bandwidth upgrade. The default is false." }, - "naclRulesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package NACLs rules limit", - "example": 5 + "linkProtocolConfig": { + "$ref": "#/components/schemas/ServiceProfileLinkProtocolConfig" }, - "haSupported": { + "enableAutoGenerateServiceKey": { "type": "boolean", - "description": "CloudRouter package high-available configuration support", - "example": true + "description": "for verizon only." }, - "routeFilterSupported": { + "connectionRedundancyRequired": { "type": "boolean", - "description": "CloudRouter package route filter support" - }, - "natType": { - "type": "string", - "description": "CloudRouter package NAT supported type", - "example": "STATIC_NAT", - "enum": [ - "STATIC_NAT" - ] + "description": "Mandate redundant connections", + "example": true, + "default": false }, - "vcCountMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max Connection limit", - "example": 10 + "apiConfig": { + "$ref": "#/components/schemas/ApiConfig" }, - "crCountMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max CloudRouter limit", - "example": 3 + "connectionLabel": { + "type": "string", + "description": "custom name for \"Connection\"" }, - "vcBandwidthMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max Bandwidth limit", - "example": 50 + "authenticationKey": { + "$ref": "#/components/schemas/AuthenticationKey" }, - "changeLog": { - "$ref": "#/components/schemas/PackageChangeLog" + "metadata": { + "$ref": "#/components/schemas/ServiceProfileMetadata" } }, - "description": "Fabric Cloud Router Package" + "description": "Colo Access Point Type" }, - "HealthResponse": { + "ServiceProfileAccessPointTypeEnum": { + "type": "string", + "description": "Access point type", + "enum": [ + "VD", + "COLO" + ] + }, + "Bandwidths": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Bandwidth" + } + }, + "Bandwidth": { + "type": "integer", + "description": "speed in Mbps", + "example": 50 + }, + "ServiceProfileLinkProtocolConfig": { "type": "object", "properties": { - "href": { + "encapsulationStrategy": { "type": "string", - "description": "The Canonical URL at which the resource resides." - }, - "version": { - "type": "string", - "description": "Indicator of a version" + "description": "was tagType - missing on wiki", + "enum": [ + "CTAGED", + "BOTH", + "NAMED" + ] }, - "release": { - "type": "string", - "description": "release details." + "namedTags": { + "maxItems": 64, + "type": "array", + "items": { + "type": "string" + } }, - "state": { + "vlanCTagLabel": { "type": "string", - "description": "status of a service" + "description": "was ctagLabel" }, - "apiServices": { - "$ref": "#/components/schemas/ApiServices" + "reuseVlanSTag": { + "type": "boolean", + "example": true, + "default": false + }, + "encapsulation": { + "type": "string", + "description": "Port encapsulation - Derived response attribute. Ignored on request payloads.", + "enum": [ + "QINQ", + "DOT1Q", + "UNTAGGED" + ] } }, - "description": "GET Services Health" + "description": "Configuration for dot1q to qinq translation support" }, - "ValidateConnectionRequest": { + "ApiConfig": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter" + "apiAvailable": { + "type": "boolean", + "description": "Setting indicating whether the API is available (true) or not (false).", + "example": true, + "default": false + }, + "integrationId": { + "type": "string" + }, + "equinixManagedPort": { + "type": "boolean", + "description": "Setting indicating that the port is managed by Equinix (true) or not (false).", + "example": true, + "default": false + }, + "equinixManagedVlan": { + "type": "boolean", + "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false).", + "example": true, + "default": false + }, + "allowOverSubscription": { + "type": "boolean", + "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false.\nOversubscription is the sale of more than the available network bandwidth. This practice is common\nand legitimate. After all, many customers use less bandwidth than they've purchased.\nAnd network users don't consume bandwidth all at the same time. The leftover bandwidth can be sold to\nother customers. When demand surges, operational and engineering resources can be shifted to\naccommodate the load.\n", + "example": false, + "default": false + }, + "overSubscriptionLimit": { + "maximum": 20, + "minimum": 1, + "type": "integer", + "description": "A cap on oversubscription.", + "example": 1, + "default": 1 + }, + "bandwidthFromApi": { + "type": "boolean", + "default": false } }, - "description": "Validate connection auth api key or vlan" + "description": "Configuration for API based Integration for Service Profile" }, - "ConnectionResponse": { + "AuthenticationKey": { "type": "object", "properties": { - "additionalInfo": { - "type": "array", - "description": "Additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" - } + "required": { + "type": "boolean", + "example": true, + "default": false }, - "data": { - "type": "array", - "description": "Connection response data", - "items": { - "$ref": "#/components/schemas/Connection" - } + "label": { + "type": "string", + "example": "Service Key" + }, + "description": { + "type": "string", + "example": "description for the authentication key" } }, - "description": "ValidateResponse" + "description": "Authentication Key Support and Customization" }, - "Pagination": { - "required": [ - "limit", - "total" - ], + "ServiceProfileMetadata": { "type": "object", "properties": { - "offset": { - "minimum": 0, - "type": "integer", - "description": "Index of the first item returned in the response. The default is 0.", - "default": 0 + "props": { + "type": "string" }, - "limit": { - "minimum": 0, - "type": "integer", - "description": "Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.", - "default": 20 + "regEx": { + "type": "string" }, - "total": { - "minimum": 0, - "type": "integer", - "description": "Total number of elements returned." + "regExMsg": { + "type": "string" }, - "next": { - "type": "string", - "description": "URL relative to the next item in the response." + "vlanRangeMaxValue": { + "type": "integer" }, - "previous": { - "type": "string", - "description": "URL relative to the previous item in the response." + "vlanRangeMinValue": { + "type": "integer" + }, + "maxQinq": { + "type": "string" + }, + "maxDot1q": { + "type": "integer" + }, + "variableBilling": { + "type": "boolean" + }, + "globalOrganization": { + "type": "string" + }, + "limitAuthKeyConn": { + "type": "boolean" + }, + "allowSecondaryLocation": { + "type": "boolean" + }, + "redundantProfileId": { + "type": "string" + }, + "allowVcMigration": { + "type": "boolean" + }, + "connectionEditable": { + "type": "boolean" + }, + "releaseVlan": { + "type": "boolean" + }, + "maxConnectionsOnPort": { + "type": "integer" + }, + "portAssignmentStrategy": { + "type": "string" + }, + "eqxManagedPort": { + "type": "boolean" + }, + "connectionNameEditable": { + "type": "boolean" } }, - "description": "Pagination response information" + "description": "Metadata. Response attribute. Ignored on request payload." }, - "NetworkPostRequest": { + "ServiceProfileAccessPointTypeVD": { "required": [ - "name", - "notifications", - "scope", "type" ], "type": "object", "properties": { + "uuid": { + "type": "string" + }, "type": { - "$ref": "#/components/schemas/NetworkType" + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" }, - "name": { + "supportedBandwidths": { + "$ref": "#/components/schemas/Bandwidths" + }, + "allowRemoteConnections": { + "type": "boolean", + "description": "Allow remote connections to Service Profile", + "example": true + }, + "allowCustomBandwidth": { + "type": "boolean", + "example": true + } + }, + "description": "VirtualDevice Access Point Type" + }, + "CustomField": { + "required": [ + "dataType", + "description", + "isRequired", + "label" + ], + "properties": { + "label": { "type": "string", - "description": "Customer-provided network name" + "example": "Account Number" }, - "scope": { - "$ref": "#/components/schemas/NetworkScope" + "description": { + "type": "string", + "example": "Provide a valid account number" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "required": { + "type": "boolean", + "example": true }, - "project": { - "$ref": "#/components/schemas/Project" + "dataType": { + "type": "string", + "enum": [ + "STRING", + "LIST", + "NUMBER" + ] }, - "notifications": { + "options": { "type": "array", - "description": "Preferences for notifications on network configuration or status changes", "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + "type": "string" } + }, + "captureInEmail": { + "type": "boolean", + "description": "capture this field as a part of email notification" } }, - "description": "Create Network" + "description": "Define Custom Attributes" }, - "Network": { + "MarketingInfo": { "type": "object", - "description": "Network specification", - "allOf": [ - { - "required": [ - "changeLog", - "href", - "state", - "uuid" - ], + "properties": { + "logo": { + "type": "string", + "description": "Logo file name" + }, + "promotion": { + "type": "boolean", + "description": "Profile promotion on marketplace" + }, + "processSteps": { + "maxItems": 3, + "type": "array", + "items": { + "$ref": "#/components/schemas/ProcessStep" + } + } + } + }, + "ProcessStep": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Service profile custom step title" + }, + "subTitle": { + "type": "string", + "description": "Service profile custom step sub title" + }, + "description": { + "type": "string", + "description": "Service profile custom step description" + } + }, + "description": "Definition of customized step while making connection" + }, + "ServiceProfileAccessPointCOLO": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "XF_PORT" + ] + }, + "uuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "sellerRegion": { + "type": "string" + }, + "sellerRegionDescription": { + "type": "string" + }, + "crossConnectId": { + "type": "string" + } + }, + "description": "Colo Access Point" + }, + "ServiceProfileAccessPointVD": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "VD" + ] + }, + "uuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "interfaceUuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + } + }, + "description": "Virtual Device Point" + }, + "ServiceMetro": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "metro code" + }, + "name": { + "type": "string", + "description": "metro name" + }, + "vcBandwidthMax": { + "type": "integer", + "description": "max VC speed supported in Mbps" + }, + "ibxs": { + "type": "array", + "items": { + "type": "string", + "description": "ibx codes" + } + }, + "inTrail": { + "type": "boolean" + }, + "displayName": { + "type": "string", + "description": "service metro display name" + }, + "sellerRegions": { "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "state": { - "$ref": "#/components/schemas/NetworkState" - }, - "connectionsCount": { - "type": "number", - "description": "number of connections created on the network" - }, - "account": { + "additionalProperties": { + "type": "string" + } + } + } + }, + "ServiceProfile": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/ServiceProfileStateEnum" + }, + "account": { + "description": "Seller Account for Service Profile.", + "allOf": [ + { "$ref": "#/components/schemas/SimplifiedAccount" }, - "change": { - "$ref": "#/components/schemas/SimplifiedNetworkChange" - }, - "operation": { - "$ref": "#/components/schemas/NetworkOperation" - }, - "changeLog": { + { + "type": "object" + } + ] + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "changeLog": { + "description": "Seller Account for Service Profile.", + "allOf": [ + { "$ref": "#/components/schemas/Changelog" }, - "links": { - "type": "array", - "description": "Network sub-resources links", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/Link" - } + { + "type": "object" } - } - }, + ] + } + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", + "allOf": [ { - "$ref": "#/components/schemas/NetworkPostRequest" + "$ref": "#/components/schemas/SimplifiedServiceProfile" } ] }, - "NetworkId": { - "type": "string", - "description": "Network UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "NetworkUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Fabric Network Update Request", - "items": { - "$ref": "#/components/schemas/NetworkChangeOperation" - } - }, - "NetworkSearchRequest": { + "ServiceProfileSearchRequest": { "type": "object", "properties": { "filter": { - "$ref": "#/components/schemas/NetworkFilter" + "$ref": "#/components/schemas/ServiceProfileFilter" }, "pagination": { "$ref": "#/components/schemas/PaginationRequest" @@ -12147,89 +13108,68 @@ "sort": { "type": "array", "items": { - "$ref": "#/components/schemas/NetworkSortCriteria" + "$ref": "#/components/schemas/ServiceProfileSortCriteria" } } }, "description": "Search requests containing criteria" }, - "NetworkFilter": { + "ServiceProfileFilter": { "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/NetworkSimpleExpression" - }, - "or": { - "$ref": "#/components/schemas/NetworkSimpleExpression" + "anyOf": [ + { + "$ref": "#/components/schemas/ServiceProfileSimpleExpression" }, + { + "$ref": "#/components/schemas/ServiceProfileAndFilter" + } + ] + }, + "ServiceProfileSimpleExpression": { + "type": "object", + "properties": { "property": { - "$ref": "#/components/schemas/NetworkSearchFieldName" + "type": "string", + "description": "Possible field names to use on filters:\n * `/name` - Service Profile name\n * `/uuid` - Service Profile uuid\n * `/state` - Service Profile status\n * `/metros/code` - Service Profile metro code\n * `/visibility` - Service Profile package\n * `/type` - Service Profile package\n * `/project/projectId` - Service Profile project id\n", + "example": "/name" }, "operator": { "type": "string", - "example": "=", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "ILIKE", - "NOT ILIKE", - "IN", - "NOT IN" - ] + "description": "Possible operators to use on filters:\n * `=` - equal\n", + "example": "=" }, "values": { "type": "array", "items": { "type": "string", - "example": "Network-1" + "example": "ServiceProfile-1" } } } }, - "NetworkSimpleExpression": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkFilter" + "ServiceProfileAndFilter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileSimpleExpression" + } + } } }, - "NetworkSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "example": "/name", - "enum": [ - "/name", - "/uuid", - "/scope", - "/type", - "/operation/equinixStatus", - "/location/region", - "/project/projectId", - "/account/globalCustId", - "/account/orgId", - "/deletedDate", - "/*" - ] - }, - "NetworkSortCriteria": { + "ServiceProfileSortCriteria": { "type": "object", "properties": { "direction": { - "$ref": "#/components/schemas/NetworkSortDirection" + "$ref": "#/components/schemas/ServiceProfileSortDirection" }, "property": { - "$ref": "#/components/schemas/NetworkSortBy" + "$ref": "#/components/schemas/ServiceProfileSortBy" } } }, - "NetworkSortDirection": { + "ServiceProfileSortDirection": { "type": "string", "description": "Sorting direction", "default": "DESC", @@ -12238,305 +13178,288 @@ "ASC" ] }, - "NetworkSortBy": { + "ServiceProfileSortBy": { "type": "string", "description": "Possible field names to use on sorting", "default": "/changeLog/updatedDateTime", "enum": [ "/name", - "/uuid", - "/scope", - "/operation/equinixStatus", - "/location/region", + "/state", "/changeLog/createdDateTime", "/changeLog/updatedDateTime" ] }, - "NetworkSearchResponse": { + "ServiceProfileId": { + "type": "string", + "description": "Service Profile UUID", + "format": "uuid" + }, + "JsonPatch": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JsonPatchOperation" + } + }, + "JsonPatchOperation": { "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "description": "Service Profile Access Points", + "oneOf": [ + { + "$ref": "#/components/schemas/AddOperation" }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkSortCriteriaResponse" - } + { + "$ref": "#/components/schemas/RemoveOperation" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Network" - } + { + "$ref": "#/components/schemas/ReplaceOperation" } - }, - "description": "List of networks" + ] }, - "NetworkConnections": { + "AddOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection" - } + "path": { + "$ref": "#/components/schemas/Path" + }, + "value": { + "type": "object", + "description": "value to add" } }, - "description": "List of network changes" + "description": "Add Sub-Resource to the existing model" }, - "NetworkChangeResponse": { + "OpEnum": { + "type": "string", + "description": "the operation to be performed", + "enum": [ + "add", + "remove", + "replace" + ] + }, + "Path": { + "type": "string", + "description": "A JSON Pointer path." + }, + "RemoveOperation": { + "required": [ + "op", + "path" + ], "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkChange" - } + "path": { + "$ref": "#/components/schemas/Path" } }, - "description": "List of network changes" - }, - "ChangeId_1": { - "type": "string", - "description": "Network Change UUID", - "format": "uuid", - "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + "description": "Remove sub-resource from an existing model" }, - "NetworkChange": { + "ReplaceOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" - }, - "uuid": { - "type": "string", - "description": "Uniquely identifies a change", - "format": "uuid", - "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" - }, - "type": { - "$ref": "#/components/schemas/NetworkChangeType" - }, - "status": { - "$ref": "#/components/schemas/NetworkChangeStatus" - }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "path": { + "$ref": "#/components/schemas/Path" }, + "value": { + "type": "object", + "description": "value to replace with" + } + }, + "description": "Replace attribute value or sub-resource in the existing model" + }, + "ServiceMetros": { + "type": "object", + "properties": { "data": { "type": "array", "items": { - "$ref": "#/components/schemas/NetworkChangeOperation" + "$ref": "#/components/schemas/ServiceMetro" } + }, + "pagination": { + "$ref": "#/components/schemas/Pagination" } }, - "description": "Current state of latest network change" + "description": "Service Profile Metros" }, - "ServiceId": { + "ServiceTokenUUID": { "type": "string", - "description": "Precision Time Service UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Service Token UUID", + "format": "uuid" }, - "precisionTimeServiceCreateResponse": { - "title": "precisionTimeServiceResponse", + "ServiceToken": { "required": [ - "href", - "ipv4", - "package", - "state", - "type", "uuid" ], "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "NTP", - "PTP" - ] + "$ref": "#/components/schemas/ServiceTokenType" }, "href": { "type": "string", - "format": "uri" + "description": "An absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, "uuid": { "type": "string", - "description": "uuid of the ept service", + "description": "Equinix-assigned service token identifier", "format": "uuid" }, "name": { "type": "string", - "description": "name of the ept service" + "description": "Customer-provided service token name" }, "description": { - "type": "string" + "type": "string", + "description": "Customer-provided service token description" }, - "state": { + "expirationDateTime": { "type": "string", - "description": "indicate service state", - "enum": [ - "PROVISIONED", - "PROVISIONING", - "PROVISIONING_FAILED", - "CONFIGURING", - "CANCELLED", - "DEPROVISIONING_FAILED", - "PENDING_CONFIGURATION", - "DEPROVISIONED", - "CONFIGURING_FAILED", - "DEPROVISIONING" - ] + "description": "Expiration date and time of the service token.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "package": { - "$ref": "#/components/schemas/PackageResponse" + "connection": { + "$ref": "#/components/schemas/ServiceTokenConnection" }, - "connections": { - "maxItems": 2, - "minItems": 1, - "uniqueItems": true, + "state": { + "$ref": "#/components/schemas/ServiceTokenState" + }, + "notifications": { "type": "array", - "description": "fabric l2 connections used for the ept service", + "description": "Service token related notifications", "items": { - "$ref": "#/components/schemas/fabricConnectionUuid" + "$ref": "#/components/schemas/SimplifiedNotification" } }, - "ipv4": { - "$ref": "#/components/schemas/ipv4" - }, "account": { - "$ref": "#/components/schemas/account" + "$ref": "#/components/schemas/SimplifiedAccount" }, - "advanceConfiguration": { - "$ref": "#/components/schemas/advanceConfiguration" + "changelog": { + "$ref": "#/components/schemas/Changelog" }, "project": { "$ref": "#/components/schemas/Project" } }, - "description": "EPT service instance" + "description": "Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens authorize users to access protected resources and services. The tokens remove sensitive content from the environment, rather than just masking it, making the protected data impossible to unencrypt or decrypt. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets." }, - "precisionTimeChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "ServiceTokenUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Service Token Update Request", + "items": { + "$ref": "#/components/schemas/ServiceTokenChangeOperation" + } + }, + "ServiceTokens": { "type": "object", "properties": { - "op": { - "type": "string", - "description": "Handy shortcut for operation name", - "enum": [ - "replace", - "add", - "remove" - ] - }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter", - "enum": [ - "/ipv4", - "/name", - "/advanceConfiguration/ntp", - "/advanceConfiguration/ptp", - "/package" - ] + "data": { + "type": "array", + "description": "List of Service Tokens", + "items": { + "$ref": "#/components/schemas/ServiceToken" + } }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "pagination": { + "$ref": "#/components/schemas/Pagination" } }, - "description": "Fabric Precision Timing change operation data" + "description": "Service tokens authorize a user to access protected resources and services available on the Equinix Fabric network. The owner of the resources can distribute service tokens to third-party users (trusted partners and vendors), allowing them to directly access and work with the resources on the network without involving the resource owners." }, - "precisionTimeServiceRequest": { - "title": "precisionTimeServiceRequest", + "ServiceTokenActionRequest": { "required": [ - "connections", - "name", - "ipv4", - "package", "type" ], "type": "object", "properties": { "type": { - "type": "string", - "description": "Indicate the entity is EPT service", - "enum": [ - "NTP", - "PTP" - ] - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "package": { - "$ref": "#/components/schemas/packageRequest" - }, - "connections": { - "type": "array", - "items": { - "$ref": "#/components/schemas/fabricConnectionUuid" - } - }, - "ipv4": { - "$ref": "#/components/schemas/ipv4" - }, - "advanceConfiguration": { - "$ref": "#/components/schemas/advanceConfiguration" - }, - "project": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/ServiceTokenActions" } }, - "description": "EPT service instance" + "description": "Service Token action request" }, - "precisionTimeServiceConnectionsResponse": { - "title": "precisionTimeServiceConnectionResponse", + "ServiceTokenSearchRequest": { "type": "object", "properties": { + "filter": { + "$ref": "#/components/schemas/ServiceTokenSearchExpression" + }, "pagination": { - "$ref": "#/components/schemas/Pagination" + "$ref": "#/components/schemas/PaginationRequest" + } + }, + "description": "Search requests containing criteria" + }, + "ServiceTokenSearchExpression": { + "type": "object", + "properties": { + "and": { + "$ref": "#/components/schemas/ServiceTokenSearchExpressions" }, - "data": { + "property": { + "$ref": "#/components/schemas/ServiceTokenSearchFieldName" + }, + "operator": { + "type": "string", + "enum": [ + "=" + ] + }, + "values": { "type": "array", - "description": "Data returned from the API call", "items": { - "$ref": "#/components/schemas/connectionLink" + "type": "string" } } - }, - "description": "EPT service instance's L2 connections" + } + }, + "ServiceTokenSearchExpressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTokenSearchExpression" + } + }, + "ServiceTokenSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/uuid", + "/state", + "/name", + "/project/projectId" + ] + }, + "Presence": { + "type": "string", + "description": "Presence", + "enum": [ + "MY_PORTS" + ] }, - "precisionTimeServicePackagesResponse": { - "title": "precisionTimeServicePackagesResponse", + "MetroResponse": { "type": "object", "properties": { "pagination": { @@ -12544,1460 +13467,1440 @@ }, "data": { "type": "array", - "description": "Data returned from the API call", + "description": "List of Fabric Metros.", "items": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/Metro" } } }, - "description": "Precision Packages" - }, - "ConnectionType": { - "type": "string", - "description": "Connection type", - "enum": [ - "EVPL_VC", - "EPL_VC", - "EC_VC", - "IP_VC", - "ACCESS_EPL_VC", - "EIA_VC", - "EVPLAN_VC", - "EPLAN_VC", - "IPWAN_VC" - ] + "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." }, - "Order": { + "Metro": { "type": "object", "properties": { - "purchaseOrderNumber": { + "href": { "type": "string", - "description": "Purchase order number" + "description": "The Canonical URL at which the resource resides." }, - "billingTier": { + "type": { "type": "string", - "description": "Billing tier for connection bandwidth" + "description": "Indicator of a Fabric Metro" }, - "orderId": { + "code": { "type": "string", - "description": "Order Identification" + "description": "Code Assigned to an Equinix IBX data center in a specified metropolitan area." }, - "orderNumber": { + "region": { "type": "string", - "description": "Order Reference Number" - } - } - }, - "SimplifiedNotification": { - "required": [ - "emails", - "type" - ], - "type": "object", - "properties": { - "type": { + "description": "Board geographic area in which the data center is located" + }, + "name": { "type": "string", - "description": "Notification Type", - "example": "BANDWIDTH_ALERT", - "enum": [ - "NOTIFICATION", - "BANDWIDTH_ALERT", - "CONNECTION_APPROVAL", - "PROFILE_LIFECYCLE", - "ALL", - "SALES_REP_NOTIFICATIONS" - ] + "description": "Name of the region in which the data center is located." }, - "sendInterval": { - "type": "string" + "equinixAsn": { + "type": "integer", + "description": "Autonomous system number (ASN) for a specified Fabric metro. The ASN is a unique identifier that carries the network routing protocol and exchanges that data with other internal systems via border gateway protocol.", + "format": "int64" }, - "emails": { + "localVCBandwidthMax": { + "type": "integer", + "description": "This field holds Max Connection speed with in the metro", + "format": "int64" + }, + "geoCoordinates": { + "$ref": "#/components/schemas/GeoCoordinates" + }, + "connectedMetros": { "type": "array", - "description": "Array of contact emails", "items": { - "type": "string", - "format": "email" + "$ref": "#/components/schemas/ConnectedMetro" } }, - "registeredUsers": { + "geoScopes": { "type": "array", - "description": "Array of registered users", + "description": "List of supported geographic boundaries of a Fabric Metro.", "items": { - "type": "string" + "$ref": "#/components/schemas/GeoScopeType" } } - } - }, - "ConnectionRedundancy": { - "type": "object", - "properties": { - "group": { - "type": "string", - "description": "Redundancy group identifier (UUID of primary connection)" - }, - "priority": { - "$ref": "#/components/schemas/ConnectionPriority" - } }, - "description": "Connection redundancy configuration" + "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." }, - "ConnectionSide": { + "GeoCoordinates": { "type": "object", "properties": { - "serviceToken": { - "$ref": "#/components/schemas/ServiceToken" - }, - "accessPoint": { - "$ref": "#/components/schemas/AccessPoint" - }, - "companyProfile": { - "$ref": "#/components/schemas/ConnectionCompanyProfile" - }, - "invitation": { - "$ref": "#/components/schemas/ConnectionInvitation" + "latitude": { + "type": "number", + "description": "Latitude of a Fabric Metro", + "format": "double" }, - "additionalInfo": { - "type": "array", - "description": "Any additional information, which is not part of connection metadata or configuration", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" - } + "longitude": { + "type": "number", + "description": "Longitude of a Fabric Metro", + "format": "double" } }, - "description": "Connection configuration object for each side of multi-segment connection" - }, - "Project": { - "required": [ - "projectId" - ], - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Subscriber-assigned project ID", - "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" - } - } + "description": "Geographic location data of Fabric Metro" }, - "ConnectionSideAdditionalInfo": { + "ConnectedMetro": { "type": "object", "properties": { - "key": { + "href": { "type": "string", - "description": "Key" + "description": "The Canonical URL at which the resource resides." }, - "value": { + "code": { "type": "string", - "description": "Value" + "description": "Code assigned to an Equinix International Business Exchange (IBX) data center in a specified metropolitan area." + }, + "avgLatency": { + "type": "number", + "description": "Average latency (in milliseconds[ms]) between two specified metros." + }, + "remoteVCBandwidthMax": { + "type": "integer", + "description": "This field holds the Max Connection speed with connected metros", + "format": "int64" } }, - "description": "Additional information" + "description": "Arrays of objects containing latency data for the specified metros" }, - "ConnectionState": { + "GeoScopeType": { "type": "string", - "description": "Connection status", + "description": "Geographic boundary types", "enum": [ - "ACTIVE", - "CANCELLED", - "DEPROVISIONED", - "DEPROVISIONING", - "DRAFT", - "FAILED", - "PENDING", - "PROVISIONED", - "PROVISIONING", - "REPROVISIONING", - "" + "CANADA", + "CONUS" ] }, - "Change": { + "MetroErrorList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetroError" + } + }, + "MetroError": { "required": [ - "createdDateTime", - "type" + "errorCode", + "errorMessage" ], "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Uniquely identifies a change" - }, - "type": { + "errorCode": { "type": "string", - "description": "Type of change", "enum": [ - "CONNECTION_CREATION", - "CONNECTION_UPDATE", - "CONNECTION_DELETION", - "CONNECTION_PROVIDER_STATUS_REQUEST" + "EQ-3036001", + "EQ-3036013", + "EQ-3036030", + "EQ-3036100" ] }, - "status": { + "errorMessage": { "type": "string", - "description": "Current outcome of the change flow", "enum": [ - "APPROVED", - "COMPLETED", - "FAILED", - "REJECTED", - "REQUESTED", - "SUBMITTED_FOR_APPROVAL" + "Unauthorized", + "Invalid Query Parameter", + "Invalid Path Parameter", + "Invalid Query or Path Parameter", + "Internal Server Error", + "Metro Not Found" ] }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "correlationId": { + "type": "string" }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "details": { + "type": "string" }, - "information": { - "type": "string", - "description": "Additional information" + "help": { + "type": "string" }, - "data": { - "$ref": "#/components/schemas/ConnectionChangeOperation" + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Current state of latest connection change" + "description": "Error with details", + "discriminator": { + "propertyName": "errorCode" + } }, - "ConnectionOperation": { + "MetroCode": { + "type": "string", + "description": "Metro Code" + }, + "AllPortsResponse": { "type": "object", "properties": { - "providerStatus": { - "$ref": "#/components/schemas/ProviderStatus" - }, - "equinixStatus": { - "$ref": "#/components/schemas/EquinixStatus" - }, - "operationalStatus": { - "type": "string", - "description": "Connection operational status", - "enum": [ - "UP", - "DOWN" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "errors": { + "data": { "type": "array", + "description": "GET All User Port Across Fabric Metros", "items": { - "$ref": "#/components/schemas/Error" + "$ref": "#/components/schemas/Port" } - }, - "opStatusChangedAt": { - "type": "string", - "description": "When connection transitioned into current operational status", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" } }, - "description": "Connection type-specific operational data" + "description": "GET All User Port Across Fabric Metros" }, - "SimplifiedAccount": { + "Port": { + "required": [ + "account", + "connectivitySourceType", + "encapsulation", + "location", + "physicalPortsSpeed", + "physicalPortsType", + "settings", + "type" + ], "type": "object", "properties": { - "accountNumber": { - "type": "integer", - "description": "Account number", - "format": "int64" - }, - "accountName": { - "type": "string", - "description": "Account name" + "type": { + "$ref": "#/components/schemas/PortType" }, - "orgId": { + "id": { "type": "integer", - "description": "Customer organization identifier", - "format": "int64" + "description": "Equinix assigned response attribute for Port Id" }, - "organizationName": { + "href": { "type": "string", - "description": "Customer organization name" + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "globalOrgId": { + "uuid": { "type": "string", - "description": "Global organization identifier" + "description": "Equinix assigned response attribute for port identifier", + "format": "uuid" }, - "globalOrganizationName": { + "name": { "type": "string", - "description": "Global organization name" + "description": "Equinix assigned response attribute for Port name" }, - "ucmId": { + "description": { "type": "string", - "description": "Account ucmId" + "description": "Equinix assigned response attribute for Port description" }, - "globalCustId": { - "type": "string", - "description": "Account name" + "physicalPortsSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Ports Speed in Mbps" }, - "resellerAccountNumber": { + "connectionsCount": { + "minimum": 0, "type": "integer", - "description": "Reseller account number", - "format": "int64" + "description": "Equinix assigned response attribute for Connection count" }, - "resellerAccountName": { + "physicalPortsType": { "type": "string", - "description": "Reseller account name" + "description": "Physical Ports Type", + "enum": [ + "1000BASE_LX", + "10GBASE_LR", + "100GBASE_LR4", + "10GBASE_ER", + "1000BASE_SX" + ] }, - "resellerUcmId": { - "type": "string", - "description": "Reseller account ucmId" + "physicalPortsCount": { + "type": "integer" }, - "resellerOrgId": { - "type": "integer", - "description": "Reseller customer organization identifier", - "format": "int64" - } - } - }, - "Changelog": { - "type": "object", - "properties": { - "createdBy": { + "connectivitySourceType": { "type": "string", - "description": "Created by User Key", - "example": "johnsmith" + "description": "Port connectivity type", + "enum": [ + "COLO", + "BMMR", + "REMOTE" + ] }, - "createdByFullName": { + "bmmrType": { "type": "string", - "description": "Created by User Full Name", - "example": "John Smith" + "enum": [ + "SELF", + "EQUINIX" + ] }, - "createdByEmail": { - "type": "string", - "description": "Created by User Email Address", - "example": "john.smith@example.com" + "project": { + "$ref": "#/components/schemas/Project" }, - "createdDateTime": { - "type": "string", - "description": "Created by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "state": { + "$ref": "#/components/schemas/PortState" }, - "updatedBy": { - "type": "string", - "description": "Updated by User Key", - "example": "johnsmith" + "order": { + "$ref": "#/components/schemas/PortOrder" }, - "updatedByFullName": { + "cvpId": { "type": "string", - "description": "Updated by User Full Name", - "example": "John Smith" + "description": "Equinix assigned response attribute for Unique ID for a virtual port." }, - "updatedByEmail": { - "type": "string", - "description": "Updated by User Email Address", - "example": "john.smith@example.com" + "operation": { + "$ref": "#/components/schemas/PortOperation" }, - "updatedDateTime": { - "type": "string", - "description": "Updated by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "deletedBy": { - "type": "string", - "description": "Deleted by User Key", - "example": "johnsmith" + "changelog": { + "$ref": "#/components/schemas/Changelog" }, - "deletedByFullName": { + "serviceType": { "type": "string", - "description": "Deleted by User Full Name", - "example": "John Smith" + "description": "Port service Type", + "enum": [ + "EPL", + "MSP" + ] }, - "deletedByEmail": { + "bandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port bandwidth in Mbps" + }, + "availableBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" + }, + "usedBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "device": { + "$ref": "#/components/schemas/PortDevice" + }, + "interface": { + "$ref": "#/components/schemas/PortInterface" + }, + "demarcationPointIbx": { "type": "string", - "description": "Deleted by User Email Address", - "example": "john.smith@example.com" + "description": "A-side/Equinix ibx" }, - "deletedDateTime": { + "tetherIbx": { "type": "string", - "description": "Deleted by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - } - }, - "description": "Change log" - }, - "Error": { - "required": [ - "errorCode", - "errorMessage" - ], - "type": "object", - "properties": { - "errorCode": { - "pattern": "^EQ-\\d{7}$", - "type": "string" + "description": "z-side/Equinix ibx" }, - "errorMessage": { - "type": "string" + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" }, - "correlationId": { - "type": "string" + "redundancy": { + "$ref": "#/components/schemas/PortRedundancy" }, - "details": { - "type": "string" + "encapsulation": { + "$ref": "#/components/schemas/PortEncapsulation" }, - "help": { - "type": "string" + "lagEnabled": { + "type": "boolean", + "description": "If LAG enabled" + }, + "lag": { + "$ref": "#/components/schemas/PortLag" + }, + "asn": { + "type": "integer", + "description": "Port ASN" + }, + "settings": { + "$ref": "#/components/schemas/PortSettings" + }, + "physicalPortQuantity": { + "type": "integer", + "description": "Number of physical ports" + }, + "notifications": { + "type": "array", + "description": "Notification preferences", + "items": { + "$ref": "#/components/schemas/PortNotification" + } }, "additionalInfo": { "type": "array", + "description": "Port additional information", "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "$ref": "#/components/schemas/PortAdditionalInfo" + } + }, + "physicalPorts": { + "type": "array", + "description": "Physical ports that implement this port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } + }, + "loas": { + "type": "array", + "description": "Port Loas", + "items": { + "$ref": "#/components/schemas/PortLoa" } } }, - "description": "Error Response with details" + "description": "Port specification" }, - "ConnectionChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "PhysicalPort": { "type": "object", "properties": { - "op": { + "type": { + "$ref": "#/components/schemas/PhysicalPortType" + }, + "id": { + "type": "integer", + "description": "Equinix assigned response attribute for Physical Port Id" + }, + "href": { "type": "string", - "description": "Handy shortcut for operation name", - "example": "add" + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "path": { + "state": { + "$ref": "#/components/schemas/PortState" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "interfaceSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Port Speed in Mbps" + }, + "interfaceType": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/ipv6" + "description": "Physical Port Interface Type" }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "tether": { + "$ref": "#/components/schemas/PortTether" + }, + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" + }, + "additionalInfo": { + "type": "array", + "description": "Physical Port additional information", + "items": { + "$ref": "#/components/schemas/PortAdditionalInfo" + } + }, + "order": { + "$ref": "#/components/schemas/PortOrder" + }, + "operation": { + "$ref": "#/components/schemas/PortOperation" + }, + "loas": { + "type": "array", + "description": "Port Loas", + "items": { + "$ref": "#/components/schemas/PortLoa" + } } }, - "description": "Connection change operation data" + "description": "Physical Port specification" }, - "Actions": { - "type": "string", - "description": "Connection action type", - "enum": [ - "CONNECTION_CREATION_ACCEPTANCE", - "CONNECTION_CREATION_REJECTION", - "CONNECTION_UPDATE_ACCEPTANCE", - "CONNECTION_UPDATE_REJECTION", - "CONNECTION_DELETION_ACCEPTANCE", - "CONNECTION_REJECTION_ACCEPTANCE", - "CONNECTION_UPDATE_REQUEST", - "MIGRATION_EVPL_VC", - "CONNECTION_PROVIDER_STATUS_REQUEST", - "ACCEPT_HOSTED_CONNECTION", - "CANCEL_EVPL_VC_DRAFT_ORDERS" - ] + "BulkPort": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Port" + } + } + }, + "description": "Create bulk port request" }, - "ConnectionAcceptanceData": { + "BulkPhysicalPort": { "type": "object", "properties": { - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "data": { + "type": "array", + "description": "add physical ports to virtual port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } } }, - "description": "Connection acceptance data" + "description": "Add to Lag request" }, - "BGPConnectionIpv4": { - "required": [ - "customerPeerIp", - "enabled" - ], + "AllPhysicalPortsResponse": { "type": "object", "properties": { - "customerPeerIp": { - "type": "string", - "description": "Customer side peering ip", - "example": "10.1.1.2" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "equinixPeerIp": { - "type": "string", - "description": "Equinix side peering ip", - "example": "10.1.1.3" + "data": { + "type": "array", + "description": "GET All Physical Ports", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } + } + }, + "description": "GET All Physical Ports" + }, + "LinkProtocolGetResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkProtocolResponse" + } } - } + }, + "description": "List of Vlans" }, - "BGPConnectionIpv6": { - "required": [ - "customerPeerIp", - "enabled" - ], + "PortV4SearchRequest": { "type": "object", "properties": { - "customerPeerIp": { - "type": "string", - "description": "Customer side peering ip", - "example": "2001:db8:c59b::1" + "filter": { + "$ref": "#/components/schemas/PortExpression" }, - "equinixPeerIp": { + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortSortCriteria" + } + } + }, + "description": "Search requests containing criteria" + }, + "PortExpression": { + "type": "object", + "properties": { + "and": { + "$ref": "#/components/schemas/PortExpressions" + }, + "or": { + "$ref": "#/components/schemas/PortExpressions" + }, + "property": { + "$ref": "#/components/schemas/PortSearchFieldName" + }, + "operator": { "type": "string", - "description": "Equinix side peering ip", - "example": "2001:db8:c59b::1" + "enum": [ + "=" + ] }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session" + "values": { + "type": "array", + "items": { + "type": "string" + } } } }, - "RoutingProtocolBFD": { - "required": [ - "enabled" - ], + "PortExpressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortExpression" + } + }, + "PortSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/project/projectId", + "/settings/productCode", + "/state" + ] + }, + "PortSortCriteria": { "type": "object", "properties": { - "enabled": { - "type": "boolean" + "direction": { + "$ref": "#/components/schemas/PortSortDirection" }, - "interval": { - "type": "string", - "example": "100" + "property": { + "$ref": "#/components/schemas/PortSortBy" } } }, - "DirectConnectionIpv4": { + "GetAllConnectionRouteFiltersResponse": { "type": "object", "properties": { - "equinixIfaceIp": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Filters attached to a Connection", + "items": { + "$ref": "#/components/schemas/ConnectionRouteFilterData" + } + } + } + }, + "RouteFilterId": { + "type": "string", + "description": "Route Filters UUID", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "ConnectionRouteFilterData": { + "type": "object", + "properties": { + "href": { "type": "string", - "description": "Equinix side Interface IP address", - "example": "192.168.100.0/30" + "description": "Route Filter URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Filter type", + "enum": [ + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" + ] + }, + "uuid": { + "type": "string", + "description": "Route Filter identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "attachmentStatus": { + "type": "string", + "enum": [ + "ATTACHING", + "ATTACHED", + "DETACHED", + "DETACHING", + "FAILED" + ] + }, + "direction": { + "type": "string", + "enum": [ + "INBOUND", + "OUTBOUND" + ] } } }, - "DirectConnectionIpv6": { - "required": [ - "equinixIfaceIp" - ], + "ConnectionRouteFiltersBase": { "type": "object", "properties": { - "equinixIfaceIp": { + "direction": { "type": "string", - "description": "Equinix side Interface IP address", - "example": "2001:db8:c59b::/1" + "description": "Route Filter direction to attach to a connection", + "enum": [ + "INBOUND", + "OUTBOUND" + ] } } }, - "RoutingProtocolBGPData": { + "RouteFiltersBase": { "type": "object", "properties": { "type": { "type": "string", - "description": "Routing protocol type", + "description": "Route Filter type", "enum": [ - "BGP" + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" ] }, "name": { "type": "string", - "example": "My-BGP-route-1" + "example": "My-direct-route-1" }, - "bgpIpv4": { - "$ref": "#/components/schemas/BGPConnectionIpv4" + "description": { + "type": "string", + "description": "Customer-provided connection description" }, - "bgpIpv6": { - "$ref": "#/components/schemas/BGPConnectionIpv6" - }, - "customerAsn": { - "type": "integer", - "description": "Customer asn", - "format": "int64", - "example": 65002 - }, - "equinixAsn": { - "type": "integer", - "description": "Equinix asn", - "format": "int64", - "example": 65002 - }, - "bgpAuthKey": { - "type": "string", - "description": "BGP authorization key", - "example": "testAuthKey" - }, - "bfd": { - "$ref": "#/components/schemas/RoutingProtocolBFD" + "project": { + "$ref": "#/components/schemas/Project" }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on route filter configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } + } + } + }, + "RouteFiltersData": { + "type": "object", + "properties": { "href": { "type": "string", - "description": "Routing Protocol URI", + "description": "Route Filter URI", "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Filter type", + "enum": [ + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" + ] }, "uuid": { "type": "string", - "description": "Routing protocol identifier", + "description": "Route Filter identifier", "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "name": { + "type": "string", + "example": "My-direct-route-1" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" }, "state": { + "$ref": "#/components/schemas/RouteFilterState" + }, + "change": { + "$ref": "#/components/schemas/RouteFiltersChange" + }, + "notMatchedRuleAction": { "type": "string", "enum": [ - "PROVISIONED", - "DEPROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "REPROVISIONING", - "FAILED" + "ALLOW", + "DENY" ] }, - "operation": { - "$ref": "#/components/schemas/RoutingProtocolOperation" + "connectionsCount": { + "type": "integer", + "example": 0 }, - "change": { - "$ref": "#/components/schemas/RoutingProtocolChange" + "project": { + "allOf": [ + { + "$ref": "#/components/schemas/Project" + }, + { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Project URI", + "format": "uri", + "example": "https://api.equinix.com/resourceManager/v1/projects/567" + } + } + } + ] + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on route filter configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } }, "changelog": { "$ref": "#/components/schemas/Changelog" } } }, - "RoutingProtocolDirectData": { + "RouteFiltersPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Filters request", + "items": { + "$ref": "#/components/schemas/ConnectionChangeOperation" + } + }, + "RouteFilterChangeDataResponse": { "type": "object", "properties": { - "type": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteFilterChangeData" + } + } + }, + "description": "List of Route Filter changes" + }, + "ChangeId_1": { + "type": "string", + "description": "Route Filters Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteFilterChangeData": { + "type": "object", + "properties": { + "status": { "type": "string", - "description": "Routing protocol type", + "description": "Current outcome of the change flow", "enum": [ - "DIRECT" + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - "name": { + "createdBy": { "type": "string", - "example": "My-direct-route-1" - }, - "directIpv4": { - "$ref": "#/components/schemas/DirectConnectionIpv4" - }, - "directIpv6": { - "$ref": "#/components/schemas/DirectConnectionIpv6" + "description": "Created by User Key" }, - "href": { + "createdDateTime": { "type": "string", - "description": "Routing Protocol URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + "description": "Set when change flow starts", + "format": "date-time" }, - "uuid": { + "updatedBy": { "type": "string", - "description": "Routing protocol identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "description": "Updated by User Key" }, - "state": { + "updatedDateTime": { "type": "string", - "enum": [ - "PROVISIONED", - "DEPROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "REPROVISIONING", - "FAILED" - ] + "description": "Set when change object is updated", + "format": "date-time" }, - "operation": { - "$ref": "#/components/schemas/RoutingProtocolOperation" + "information": { + "type": "string", + "description": "Additional information" }, - "change": { - "$ref": "#/components/schemas/RoutingProtocolChange" + "data": { + "$ref": "#/components/schemas/RouteFiltersChangeOperation" + } + }, + "description": "Current state of latest Route Filter change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteFiltersChange" + } + ] + }, + "GetRouteFilterGetConnectionsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "changelog": { - "$ref": "#/components/schemas/Changelog" + "data": { + "type": "array", + "description": "List of Connections using a Route Filter", + "items": { + "$ref": "#/components/schemas/RouteFilterConnectionsData" + } } } }, - "BGPActions": { - "type": "string", - "description": "BGP action type", - "enum": [ - "CLEAR_BGPIPV4", - "CLEAR_BGPIPV6", - "CLEAR_BGPIPV4_INBOUND", - "CLEAR_BGPIPV6_INBOUND", - "RESET_BGPIPV4", - "RESET_BGPIPV6" - ] - }, - "BGPActionStates": { - "type": "string", - "description": "BGP action state", - "enum": [ - "PENDING", - "FAILED", - "SUCCEEDED" - ] + "GetRouteFilterRulesResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Filter Rules", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesData" + } + } + } }, - "RoutingProtocolChange": { - "required": [ - "type", - "uuid" - ], + "RouteFilterRulesBase": { "type": "object", "properties": { - "uuid": { + "name": { "type": "string", - "description": "Uniquely identifies a change" + "example": "Private-subnet-filter" }, - "type": { + "description": { "type": "string", - "description": "Type of change", - "enum": [ - "ROUTING_PROTOCOL_UPDATE", - "ROUTING_PROTOCOL_CREATION", - "ROUTING_PROTOCOL_DELETION" - ] + "description": "Customer-provided Route Filter Rule description" }, - "href": { + "prefix": { "type": "string", - "description": "Routing Protocol Change URI", - "format": "uri" + "example": "192.168.0.0/24" + }, + "prefixMatch": { + "type": "string", + "example": "orlonger", + "default": "orlonger" } - }, - "description": "Current state of latest Routing Protocol change" + } }, - "RoutingProtocolChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "RouteFilterRulesData": { "type": "object", "properties": { - "op": { + "href": { "type": "string", - "description": "Handy shortcut for operation name", + "description": "Route Filter Rules URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "type": { + "type": "string", + "description": "Route Filter type", "enum": [ - "add", - "replace", - "remove" + "BGP_IPv4_PREFIX_FILTER_RULE", + "BGP_IPv6_PREFIX_FILTER_RULE" ] }, - "path": { + "uuid": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/" - }, - "value": { - "$ref": "#/components/schemas/RoutingProtocolBase" - } - }, - "description": "Routing Protocol change operation data" - }, - "PaginationRequest": { - "type": "object", - "properties": { - "offset": { - "minimum": 0, - "type": "integer", - "description": "Index of the first element.", - "default": 0 - }, - "limit": { - "minimum": 1, - "type": "integer", - "description": "Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.", - "default": 20 - } - }, - "description": "Pagination request information" - }, - "SortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "SortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/direction", - "/aSide/accessPoint/name", - "/aSide/accessPoint/type", - "/aSide/accessPoint/account/accountName", - "/aSide/accessPoint/location/metroName", - "/aSide/accessPoint/location/metroCode", - "/aSide/accessPoint/linkProtocol/vlanCTag", - "/aSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/name", - "/zSide/accessPoint/type", - "/zSide/accessPoint/account/accountName", - "/zSide/accessPoint/location/metroName", - "/zSide/accessPoint/location/metroCode", - "/zSide/accessPoint/linkProtocol/vlanCTag", - "/zSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/authenticationKey", - "/bandwidth", - "/geoScope", - "/uuid", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime", - "/operation/equinixStatus", - "/operation/providerStatus", - "/redundancy/priority" - ] - }, - "SortCriteriaResponse": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/SortDirection" - }, - "property": { - "$ref": "#/components/schemas/SortBy" - } - } - }, - "Price": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "An absolute URL that returns specified pricing data", - "format": "url" - }, - "type": { - "$ref": "#/components/schemas/ProductType" - }, - "code": { - "type": "string", - "description": "Equinix-assigned product code" + "description": "Route Filter Rule identifier", + "format": "uuid", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" }, "name": { "type": "string", - "description": "Full product name" + "example": "Private-subnet-filter-2" }, "description": { "type": "string", - "description": "Product description" + "description": "Customer-provided Route Filter Rule description" }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "prefixMatch": { + "type": "string", + "description": "prefix matching operator", + "example": "exact", + "default": "orlonger" }, - "charges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceCharge" - } + "change": { + "$ref": "#/components/schemas/RouteFilterRulesChange" }, - "currency": { + "action": { "type": "string", - "description": "Product offering price currency" - }, - "termLength": { - "type": "integer", - "description": "In months. No value means unlimited", "enum": [ - 12, - 24, - 36 + "PERMIT", + "DENY" ] }, - "catgory": { - "$ref": "#/components/schemas/PriceCategory" - }, - "connection": { - "$ref": "#/components/schemas/VirtualConnectionPrice" - }, - "ipBlock": { - "$ref": "#/components/schemas/IpBlockPrice" - }, - "router": { - "$ref": "#/components/schemas/FabricCloudRouterPrice" + "prefix": { + "type": "string", + "example": "192.168.0.0/24" }, - "port": { - "$ref": "#/components/schemas/VirtualPortPrice" + "changelog": { + "$ref": "#/components/schemas/Changelog" } } }, - "ServiceProfileTypeEnum": { + "RouteFilterRuleId": { "type": "string", - "description": "Service profile type", - "example": "L2_PROFILE", - "enum": [ - "L2_PROFILE", - "L3_PROFILE" - ] + "description": "Route Filter Rule UUID", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" }, - "ServiceProfileVisibilityEnum": { + "RouteFilterRulesPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Filters Rule request", + "items": { + "$ref": "#/components/schemas/RouteFilterChangePrefixMatch" + } + }, + "RouteFilterRulesChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesChangeData" + } + } + }, + "description": "List of Route Filter Rule changes" + }, + "ChangeId_2": { "type": "string", - "enum": [ - "PRIVATE", - "PUBLIC" - ] + "description": "Route Filter Rule Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" }, - "SimplifiedLocation": { + "RouteFilterRulesChangeData": { "type": "object", "properties": { - "region": { + "status": { "type": "string", - "example": "AMER, APAC, EMEA" + "description": "Current outcome of the change flow", + "enum": [ + "COMPLETED", + "FAILED", + "REQUESTED" + ] }, - "metroName": { + "createdBy": { "type": "string", - "example": "Amsterdam" + "description": "Created by User Key" }, - "metroCode": { + "createdDateTime": { "type": "string", - "example": "AM" + "description": "Set when change flow starts", + "format": "date-time" }, - "metroHref": { + "updatedBy": { "type": "string", - "example": "https://api.equinix.com/fabric/v4/metros/AM" + "description": "Updated by User Key" }, - "ibx": { + "updatedDateTime": { "type": "string", - "example": "AM1" + "description": "Set when change object is updated", + "format": "date-time" + }, + "data": { + "$ref": "#/components/schemas/RouteFilterRulesChangeOperation" + } + }, + "description": "Current state of latest Route Filter Rules change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteFilterRulesChange" } - } - }, - "ServiceProfileStateEnum": { - "type": "string", - "description": "Equinix assigned state.", - "example": "ACTIVE", - "enum": [ - "ACTIVE", - "PENDING_APPROVAL", - "DELETED", - "REJECTED" ] }, - "ServiceTokenType": { - "type": "string", - "description": "Type of Service Token", - "enum": [ - "VC_TOKEN" - ] + "RouteFilterRulesPostRequest": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Route Filter Rule configuration", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + } + } + }, + "description": "Create Route Filter Rule POST request" }, - "ServiceTokenConnection": { - "required": [ - "type" - ], + "CloudRouterPostRequest": { "type": "object", "properties": { "type": { "type": "string", - "description": "Type of Connection", "enum": [ - "EVPL_VC" + "XF_ROUTER" ] }, - "href": { + "name": { "type": "string", - "description": "An absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true + "description": "Customer-provided Cloud Router name" }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier", - "format": "uuid" + "location": { + "$ref": "#/components/schemas/SimplifiedLocationWithoutIBX" }, - "allowRemoteConnection": { - "type": "boolean", - "description": "Authorization to connect remotely", - "default": false + "package": { + "$ref": "#/components/schemas/CloudRouterPackageType" }, - "bandwidthLimit": { - "maximum": 100000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth limit in Mbps" + "order": { + "$ref": "#/components/schemas/Order" }, - "supportedBandwidths": { + "project": { + "$ref": "#/components/schemas/Project" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "notifications": { "type": "array", - "description": "List of permitted bandwidths.", + "description": "Preferences for notifications on connection configuration or status changes", "items": { - "type": "integer" + "$ref": "#/components/schemas/SimplifiedNotification" } - }, - "aSide": { - "$ref": "#/components/schemas/ServiceTokenSide" - }, - "zSide": { - "$ref": "#/components/schemas/ServiceTokenSide" } }, - "description": "Service Token Connection Type Information" - }, - "ServiceTokenState": { - "type": "string", - "description": "Service token state", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "DELETED" - ] + "description": "Create Cloud Router" }, - "ServiceTokenChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "CloudRouter": { "type": "object", "properties": { - "op": { + "href": { "type": "string", - "description": "Handy shortcut for operation name", - "enum": [ - "replace", - "add", - "remove" - ] + "description": "Cloud Routers URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "path": { + "uuid": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/expirationDateTime" + "description": "Equinix-assigned access point identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "name": { + "type": "string", + "description": "Customer-provided Cloud Router name", + "format": "string", + "example": "test-fg-1" + }, + "state": { + "$ref": "#/components/schemas/CloudRouterAccessPointState" + }, + "equinixAsn": { + "type": "integer", + "description": "Equinix ASN", + "format": "int64", + "example": 30000 + }, + "bgpIpv4RoutesCount": { + "minimum": 0, + "type": "integer", + "description": "Access point used and maximum number of IPv4 BGP routes" + }, + "bgpIpv6RoutesCount": { + "minimum": 0, + "type": "integer", + "description": "Access point used and maximum number of IPv6 BGP routes" + }, + "connectionsCount": { + "minimum": 0, + "type": "integer", + "description": "Number of connections associated with this Access point" + }, + "distinctIpv4PrefixesCount": { + "minimum": 0, + "type": "integer", + "description": "Number of distinct ipv4 routes" + }, + "distinctIpv6PrefixesCount": { + "minimum": 0, + "type": "integer", + "description": "Number of distinct ipv6 routes" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + }, + "change": { + "$ref": "#/components/schemas/CloudRouterChange" } }, - "description": "Service Token change operation data" + "description": "Fabric Cloud Router object", + "allOf": [ + { + "$ref": "#/components/schemas/CloudRouterPostRequest" + } + ] }, - "ServiceTokenActions": { + "RouterId": { "type": "string", - "description": "Service Token action type", - "enum": [ - "RESEND_EMAIL_NOTIFICATION" - ] + "description": "Cloud Router UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "PortType": { + "CloudRouterUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Fabric Cloud Router Update Request", + "items": { + "$ref": "#/components/schemas/CloudRouterChangeOperation" + } + }, + "RouterId_1": { "type": "string", - "description": "Type of Port", - "enum": [ - "XF_PORT", - "IX_PORT" - ] + "description": "Router UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "PortState": { + "ActionState": { + "$ref": "#/components/schemas/CloudRouterActionState" + }, + "CloudRouterActionState": { "type": "string", - "description": "Port lifecycle state", + "description": "Cloud Router action state", "enum": [ - "PENDING", - "PROVISIONING", - "PROVISIONED", - "ACTIVE", - "DEPROVISIONING", - "DEPROVISIONED", - "INACTIVE", - "FAILED" + "DONE", + "FAILED", + "PENDING" ] }, - "PortOrder": { + "CloudRouterActionResponse": { + "required": [ + "changeLog", + "state", + "type", + "uuid" + ], "type": "object", "properties": { - "purchaseOrder": { - "$ref": "#/components/schemas/PortOrder_purchaseOrder" + "type": { + "$ref": "#/components/schemas/CloudRouterActionType" }, - "orderId": { + "uuid": { "type": "string", - "description": "Order Identification" + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "orderNumber": { + "description": { "type": "string", - "description": "Order Reference Number" + "example": "description" }, - "uuid": { - "type": "string", - "description": "Equinix-assigned order identifier", - "format": "uuid" + "state": { + "$ref": "#/components/schemas/CloudRouterActionState" }, - "signature": { - "$ref": "#/components/schemas/PortOrder_signature" + "changeLog": { + "$ref": "#/components/schemas/Changelog" } - } + }, + "description": "Cloud Router actions response object" }, - "PortOperation": { + "CloudRouterActionRequest": { + "required": [ + "type" + ], "type": "object", "properties": { - "operationalStatus": { - "type": "string", - "description": "Availability of a given physical port.", - "enum": [ - "UP", - "DOWN" - ] - }, - "connectionCount": { - "type": "integer", - "description": "Total number of connections." - }, - "opStatusChangedAt": { - "type": "string", - "description": "Date and time at which port availability changed.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "type": { + "$ref": "#/components/schemas/CloudRouterActionType" } }, - "description": "Operational specifications for ports." + "description": "Cloud Router action request" }, - "PortDevice": { + "RouteTableEntrySearchRequest": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Device name" + "filter": { + "$ref": "#/components/schemas/RouteTableEntryFilters" }, - "redundancy": { - "$ref": "#/components/schemas/PortDeviceRedundancy" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntrySortCriteria" + } } }, - "description": "Port device" + "description": "Search requests containing criteria" }, - "PortInterface": { + "RouteTableEntryFilters": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Port interface type" - }, - "ifIndex": { - "type": "string", - "description": "Port interface index" + "and": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntryFilter" + } + } + } + }, + "RouteTableEntryFilter": { + "type": "object", + "anyOf": [ + { + "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" }, - "name": { - "type": "string", - "description": "Port interface name" + { + "$ref": "#/components/schemas/RouteTableEntryOrFilter" } - }, - "description": "Port interface" + ] }, - "PortDemarcationPoint": { + "RouteTableEntrySimpleExpression": { "type": "object", "properties": { - "cabinetUniqueSpaceId": { + "property": { "type": "string", - "description": "Port cabinet unique space id" + "description": "Possible field names to use on filters:\n * `/type` - Route table entry type\n * `/prefix` - Route table entry prefix\n * `/nextHop` - Route table entry nextHop\n * `/state` - Route table entry state\n * `/*` - all-category search\n", + "example": "/type" }, - "cageUniqueSpaceId": { + "operator": { "type": "string", - "description": "Port cage unique space id" - }, - "patchPanel": { - "type": "string", - "description": "Port patch panel" - }, - "patchPanelName": { - "type": "string", - "description": "Port patch panel", - "deprecated": true - }, - "patchPanelPortA": { - "type": "string", - "description": "Port patch panel port A" - }, - "patchPanelPortB": { - "type": "string", - "description": "Port patch panel port B" - }, - "connectorType": { - "type": "string", - "description": "Port connector type" + "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `~*` - case-insensitive like\n", + "example": "=" }, - "ibx": { - "type": "string", - "description": "Port ibx identifier" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "IPv4_BGP_ROUTE" + } } - }, - "description": "Customer physical Port" + } }, - "PortRedundancy": { + "RouteTableEntryOrFilter": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Access point redundancy" - }, - "group": { - "type": "string", - "description": "Port UUID of respective primary port" + "or": { + "maxItems": 3, + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" + } + } + } + }, + "RouteTableEntrySortCriteria": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/RouteTableEntrySortDirection" }, - "priority": { - "$ref": "#/components/schemas/PortPriority" + "property": { + "$ref": "#/components/schemas/RouteTableEntrySortBy" } - }, - "description": "Port redundancy configuration" + } }, - "PortEncapsulation": { + "RouteTableEntrySortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "RouteTableEntrySortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime", + "/prefix", + "/nextHop", + "/connection/name", + "/type" + ] + }, + "RouteTableEntrySearchResponse": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Port encapsulation protocol type", - "enum": [ - "NULL", - "DOT1Q", - "QINQ", - "UNTAGGED" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "tagProtocolId": { - "type": "string", - "description": "Port encapsulation tag protocol identifier" + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/RouteTableEntry" + } + } + } + }, + "ValidateRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/ValidateRequest_filter" } }, - "description": "Port encapsulation configuration" + "description": "Validate connection auth api key or vlan" }, - "PortLag": { + "ValidateSubnetResponse": { "type": "object", "properties": { - "id": { - "type": "string", - "description": "id" - }, - "enabled": { - "type": "boolean", - "description": "enabled" - }, - "name": { - "type": "string", - "description": "name" - }, - "memberStatus": { - "type": "string", - "description": "member status" + "additionalInfo": { + "type": "array", + "description": "Additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } } }, - "description": "Port Lag" + "description": "ValidateResponse" }, - "PortSettings": { + "CloudRouterSearchRequest": { "type": "object", "properties": { - "product": { - "type": "string", - "description": "Product name" - }, - "buyout": { - "type": "boolean" - }, - "viewPortPermission": { - "type": "boolean" - }, - "placeVcOrderPermission": { - "type": "boolean" - }, - "layer3Enabled": { - "type": "boolean" - }, - "productCode": { - "type": "string" - }, - "sharedPortType": { - "type": "boolean" + "filter": { + "$ref": "#/components/schemas/CloudRouterFilters" }, - "sharedPortProduct": { - "type": "string", - "enum": [ - "NETWORK_EDGE", - "VIRTUAL_GATEWAY", - "SMARTKEY", - "EDGE_METAL" - ] + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "packageType": { - "type": "string", - "description": "Type of Port Package", - "enum": [ - "STANDARD", - "UNTAGGED", - "UNLIMITED", - "FREE" - ] + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CloudRouterSortCriteria" + } } }, - "description": "Port configuration settings" + "description": "Search requests containing criteria" }, - "PortNotification": { - "required": [ - "registeredUsers", - "type" - ], + "CloudRouterFilters": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Notification Type", - "enum": [ - "NOTIFICATION", - "TECHNICAL", - "PEERING", - "ESCALATION" - ] - }, - "registeredUsers": { + "and": { + "maxItems": 8, "type": "array", - "description": "Array of registered users", "items": { - "type": "string" + "$ref": "#/components/schemas/CloudRouterFilter" } } } }, - "PortAdditionalInfo": { + "CloudRouterFilter": { "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key" + "anyOf": [ + { + "$ref": "#/components/schemas/CloudRouterSimpleExpression" }, - "value": { - "type": "string", - "description": "Value" + { + "$ref": "#/components/schemas/CloudRouterOrFilter" } - }, - "description": "Additional information" + ] }, - "PortLoa": { + "CloudRouterSimpleExpression": { "type": "object", "properties": { - "uuid": { + "property": { "type": "string", - "description": "uuid" + "description": "Possible field names to use on filters:\n * `/project/projectId` - project id (mandatory)\n * `/name` - Fabric Cloud Router name\n * `/uuid` - Fabric Cloud Router uuid\n * `/state` - Fabric Cloud Router status\n * `/location/metroCode` - Fabric Cloud Router metro code\n * `/location/metroName` - Fabric Cloud Router metro name\n * `/package/code` - Fabric Cloud Router package\n * `/*` - all-category search\n", + "example": "/name" }, - "href": { + "operator": { "type": "string", - "description": "Loa uri.", - "format": "uri", - "readOnly": true + "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `ILIKE` - case-insensitive like\n", + "example": "=" }, - "type": { - "type": "string", - "description": "Loa type", - "enum": [ - "CTR_LOA" - ] - } - }, - "description": "Port Loas" - }, - "PhysicalPortType": { - "type": "string", - "description": "Type of Port", - "enum": [ - "XF_PHYSICAL_PORT" - ] - }, - "PortTether": { - "type": "object", - "properties": { - "crossConnectId": { - "type": "string", - "description": "Port cross connect identifier" - }, - "cabinetNumber": { - "type": "string", - "description": "Port cabinet number" - }, - "systemName": { - "type": "string", - "description": "Port system name" - }, - "patchPanel": { - "type": "string", - "description": "Port patch panel" - }, - "patchPanelPortA": { - "type": "string", - "description": "Port patch panel port A" - }, - "patchPanelPortB": { - "type": "string", - "description": "Port patch panel port B" - }, - "ibx": { - "type": "string", - "description": "z-side/Equinix IBX" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "FabricCloudRouter-1" + } } - }, - "description": "Port physical connection" + } }, - "LinkProtocolResponse": { + "CloudRouterOrFilter": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "state": { - "$ref": "#/components/schemas/LinkProtocolState" - }, - "type": { - "$ref": "#/components/schemas/LinkProtocolRequestType" - }, - "vlanTag": { - "type": "integer", - "example": 20 - }, - "vlanTagMin": { - "type": "integer", - "example": 20 - }, - "vlanTagMax": { - "type": "integer", - "example": 200 - }, - "vlanSTag": { - "type": "integer", - "example": 20 - }, - "vlanCTag": { - "type": "integer", - "example": 20 - }, - "vlanCTagMin": { - "type": "integer", - "example": 20 - }, - "vlanCTagMax": { - "type": "integer", - "example": 200 - }, - "subInterface": { - "$ref": "#/components/schemas/SubInterface" - }, - "additionalInfo": { + "or": { + "maxItems": 3, "type": "array", "items": { - "$ref": "#/components/schemas/AdditionalInfo" + "$ref": "#/components/schemas/CloudRouterSimpleExpression" } + } + } + }, + "CloudRouterSortCriteria": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/CloudRouterSortDirection" }, - "connection": { - "$ref": "#/components/schemas/LinkProtocolConnection" - }, - "serviceToken": { - "$ref": "#/components/schemas/LinkProtocolServiceToken" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "property": { + "$ref": "#/components/schemas/CloudRouterSortBy" } - }, - "description": "Link Protocol response" + } }, - "PortSortDirection": { + "CloudRouterSortDirection": { "type": "string", "description": "Sorting direction", "default": "DESC", @@ -14006,5124 +14909,7578 @@ "ASC" ] }, - "PortSortBy": { + "CloudRouterSortBy": { "type": "string", "description": "Possible field names to use on sorting", - "default": "/device/name", + "default": "/changeLog/updatedDateTime", "enum": [ - "/device/name" + "/name", + "/uuid", + "/state", + "/location/metroCode", + "/location/metroName", + "/package/code", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" ] }, - "SimplifiedLocationWithoutIBX": { - "required": [ - "metroCode" - ], + "SearchResponse": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "The Canonical URL at which the resource resides." - }, - "region": { - "type": "string", - "example": "AMER, APAC, EMEA" - }, - "metroName": { - "type": "string", - "example": "Amsterdam" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "metroCode": { - "type": "string", - "example": "AM" + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/CloudRouter" + } } } }, - "CloudRouterPackageType": { - "required": [ - "code" - ], + "PackageResponse": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Fabric Cloud Router URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" - }, - "type": { - "type": "string", - "description": "Cloud Router package type", - "example": "ROUTER_PACKAGE", - "enum": [ - "ROUTER_PACKAGE" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "code": { - "type": "string", - "description": "Cloud Router package code", - "example": "LAB", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/CloudRouterPackage" + } } - }, - "description": "Fabric Cloud Router Package Type" + } }, - "CloudRouterAccessPointState": { + "RouterPackageCode": { "type": "string", - "description": "Access point lifecycle state", + "description": "Router package code", "enum": [ - "PROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "DEPROVISIONED", - "LOCKED", - "NOT_PROVISIONED", - "NOT_DEPROVISIONED" + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] }, - "CloudRouterChange": { - "required": [ - "type", - "updatedDateTime" - ], + "CloudRouterPackage": { "type": "object", "properties": { - "uuid": { + "href": { "type": "string", - "description": "Uniquely identifies a change" + "description": "Cloud Router package URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" }, "type": { "type": "string", - "description": "Type of change", - "enum": [ - "ROUTER_UPDATE", - "ROUTER_PACKAGE_UPDATE" - ] - }, - "status": { - "type": "string", - "description": "Current outcome of the change flow", + "description": "Type of Router package", + "example": "ROUTER_PACKAGE", "enum": [ - "COMPLETED", - "FAILED", - "REQUESTED" + "ROUTER_PACKAGE" ] }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "code": { + "$ref": "#/components/schemas/code" }, - "updatedDateTime": { + "description": { "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "Fabric Cloud Router Package description" }, - "information": { - "type": "string", - "description": "Additional information" + "totalIPv4RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "Cloud Router package BGP IPv4 routes limit", + "example": 50 }, - "data": { - "$ref": "#/components/schemas/CloudRouterChangeOperation" - } - }, - "description": "Current state of latest CloudRouter change" - }, - "CloudRouterChangeOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { + "totalIPv6RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "Cloud Router package BGP IPv6 routes limit", + "example": 50 + }, + "staticIPv4RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package static IPv4 routes limit", + "example": 3 + }, + "staticIPv6RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package static IPv6 routes limit" + }, + "naclsMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package NACLs limit", + "example": 2 + }, + "naclRulesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package NACLs rules limit", + "example": 5 + }, + "haSupported": { + "type": "boolean", + "description": "CloudRouter package high-available configuration support", + "example": true + }, + "routeFilterSupported": { + "type": "boolean", + "description": "CloudRouter package route filter support" + }, + "natType": { "type": "string", - "description": "Handy shortcut for operation name", + "description": "CloudRouter package NAT supported type", + "example": "STATIC_NAT", "enum": [ - "replace", - "add", - "remove" + "STATIC_NAT" ] }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter" + "vcCountMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max Connection limit", + "example": 10 }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "crCountMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max CloudRouter limit", + "example": 3 + }, + "vcBandwidthMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max Bandwidth limit", + "example": 50 + }, + "changeLog": { + "$ref": "#/components/schemas/PackageChangeLog" } }, - "description": "Fabric Cloud Router change operation data" - }, - "CloudRouterActionType": { - "type": "string", - "description": "Cloud Router action type", - "enum": [ - "BGP_SESSION_STATUS_UPDATE", - "ROUTE_TABLE_ENTRY_UPDATE" - ] + "description": "Fabric Cloud Router Package" }, - "RouteTableEntry": { - "required": [ - "changeLog", - "state", - "type" - ], + "HealthResponse": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/RouteTableEntryType" - }, - "protocolType": { - "$ref": "#/components/schemas/RouteTableEntryProtocolType" - }, - "state": { - "$ref": "#/components/schemas/RouteTableEntryState" - }, - "age": { + "href": { "type": "string", - "example": "PT5M30S" + "description": "The Canonical URL at which the resource resides." }, - "prefix": { + "version": { "type": "string", - "example": "192.168.10.0/24" + "description": "Indicator of a version" }, - "nextHop": { + "release": { "type": "string", - "example": "10.10.10.5" - }, - "metric": { - "type": "integer", - "example": 5 + "description": "release details." }, - "localPreference": { - "type": "integer", - "example": 200 + "state": { + "type": "string", + "description": "status of a service" }, - "asPath": { + "apiServices": { + "$ref": "#/components/schemas/ApiServices" + } + }, + "description": "GET Services Health" + }, + "ConnectionResponse": { + "type": "object", + "properties": { + "additionalInfo": { "type": "array", + "description": "Additional information", "items": { - "type": "integer" + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" } }, - "connection": { - "$ref": "#/components/schemas/RouteTableEntry_connection" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "data": { + "type": "array", + "description": "Connection response data", + "items": { + "$ref": "#/components/schemas/Connection" + } } }, - "description": "Route table entry object" - }, - "code": { - "type": "string", - "description": "Cloud Router package code", - "example": "LAB", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] + "description": "ValidateResponse" }, - "PackageChangeLog": { + "Pagination": { + "required": [ + "limit", + "total" + ], "type": "object", "properties": { - "createdDateTime": { + "offset": { + "minimum": 0, + "type": "integer", + "description": "Index of the first item returned in the response. The default is 0.", + "default": 0 + }, + "limit": { + "minimum": 0, + "type": "integer", + "description": "Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.", + "default": 20 + }, + "total": { + "minimum": 0, + "type": "integer", + "description": "Total number of elements returned." + }, + "next": { "type": "string", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "URL relative to the next item in the response." }, - "updatedDateTime": { + "previous": { "type": "string", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "URL relative to the previous item in the response." } }, - "description": "Cloud Router package change log" + "description": "Pagination response information" }, - "ApiServices": { + "NetworkPostRequest": { + "required": [ + "name", + "notifications", + "scope", + "type" + ], "type": "object", "properties": { - "route": { - "type": "string", - "description": "service routes" + "type": { + "$ref": "#/components/schemas/NetworkType" }, - "status": { + "name": { "type": "string", - "description": "service status" + "description": "Customer-provided network name" }, - "changedDateTime": { - "type": "string", - "description": "service status change date" + "scope": { + "$ref": "#/components/schemas/NetworkScope" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on network configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } } }, - "description": "Available services details" + "description": "Create Network" }, - "NetworkType": { - "type": "string", - "description": "Network type", - "enum": [ - "EVPLAN", - "EPLAN", - "IPWAN" - ] - }, - "NetworkScope": { - "type": "string", - "description": "Network scope", - "enum": [ - "REGIONAL", - "GLOBAL" + "Network": { + "type": "object", + "description": "Network specification", + "allOf": [ + { + "required": [ + "changeLog", + "href", + "state", + "uuid" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "state": { + "$ref": "#/components/schemas/NetworkState" + }, + "connectionsCount": { + "type": "number", + "description": "number of connections created on the network" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "change": { + "$ref": "#/components/schemas/SimplifiedNetworkChange" + }, + "operation": { + "$ref": "#/components/schemas/NetworkOperation" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + }, + "links": { + "type": "array", + "description": "Network sub-resources links", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/Link" + } + } + } + }, + { + "$ref": "#/components/schemas/NetworkPostRequest" + } ] }, - "NetworkState": { + "NetworkId": { "type": "string", - "description": "Network status", - "example": "ACTIVE", - "enum": [ - "ACTIVE", - "INACTIVE", - "DELETED" - ] + "description": "Network UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "SimplifiedNetworkChange": { + "NetworkUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Fabric Network Update Request", + "items": { + "$ref": "#/components/schemas/NetworkChangeOperation" + } + }, + "NetworkSearchRequest": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" + "filter": { + "$ref": "#/components/schemas/NetworkFilter" }, - "uuid": { - "type": "string", - "description": "Uniquely identifies a change", - "format": "uuid", - "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "type": { - "$ref": "#/components/schemas/NetworkChangeType" - } - }, - "description": "Current state of latest network change" - }, - "NetworkOperation": { - "type": "object", - "properties": { - "equinixStatus": { - "$ref": "#/components/schemas/NetworkEquinixStatus" + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkSortCriteria" + } } }, - "description": "Network operational data" + "description": "Search requests containing criteria" }, - "Link": { + "NetworkFilter": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Resource URI", - "format": "uri", - "readOnly": true - }, - "rel": { - "type": "string", - "description": "OperationId from Swagger hub spec" + "and": { + "$ref": "#/components/schemas/NetworkSimpleExpression" }, - "method": { - "type": "string", - "description": "Http method type" + "or": { + "$ref": "#/components/schemas/NetworkSimpleExpression" }, - "contentType": { - "type": "string", - "description": "Content type for the response" + "property": { + "$ref": "#/components/schemas/NetworkSearchFieldName" }, - "authenticate": { - "type": "boolean", - "description": "Authentication required or not" - } - } - }, - "NetworkChangeOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { + "operator": { "type": "string", - "description": "Handy shortcut for operation name", + "example": "=", "enum": [ - "replace", - "add", - "remove" + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "ILIKE", + "NOT ILIKE", + "IN", + "NOT IN" ] }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/name" - }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "Network-1" + } } - }, - "description": "Network change operation data" + } }, - "NetworkSortCriteriaResponse": { + "NetworkSimpleExpression": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkFilter" + } + }, + "NetworkSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "example": "/name", + "enum": [ + "/name", + "/uuid", + "/scope", + "/type", + "/operation/equinixStatus", + "/location/region", + "/project/projectId", + "/account/globalCustId", + "/account/orgId", + "/deletedDate", + "/*" + ] + }, + "NetworkSortCriteria": { "type": "object", "properties": { "direction": { - "$ref": "#/components/schemas/NetworkSortDirectionResponse" + "$ref": "#/components/schemas/NetworkSortDirection" }, "property": { - "$ref": "#/components/schemas/NetworkSortByResponse" + "$ref": "#/components/schemas/NetworkSortBy" } } }, - "NetworkChangeType": { + "NetworkSortDirection": { "type": "string", - "description": "Type of change", + "description": "Sorting direction", + "default": "DESC", "enum": [ - "NETWORK_CREATION", - "NETWORK_UPDATE", - "NETWORK_DELETION" + "DESC", + "ASC" ] }, - "NetworkChangeStatus": { + "NetworkSortBy": { "type": "string", - "description": "Current outcome of the change flow", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", "enum": [ - "APPROVED", - "COMPLETED", - "FAILED", - "REJECTED", - "REQUESTED", - "SUBMITTED_FOR_APPROVAL" + "/name", + "/uuid", + "/scope", + "/operation/equinixStatus", + "/location/region", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" ] }, - "fabricConnectionUuid": { - "title": "fabricConnectionUuid", - "required": [ - "uuid" - ], + "NetworkSearchResponse": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "uuid of the Fabric L2 connection", - "format": "uuid" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "href": { - "type": "string", - "description": "the href for the L2 connection", - "format": "uri" + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkSortCriteriaResponse" + } }, - "type": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Network" + } } }, - "description": "UUID of the Fabric Connection Instance", - "example": { - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" - } + "description": "List of networks" }, - "ipv4": { - "title": "ipv4", + "NetworkConnections": { "type": "object", "properties": { - "primary": { - "type": "string", - "format": "ipv4" - }, - "secondary": { - "type": "string", - "format": "ipv4" - }, - "networkMask": { - "type": "string", - "format": "ipv4" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "defaultGateway": { - "type": "string", - "format": "ipv4" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Connection" + } } }, - "description": "EPT service network information", - "example": { - "primary": "10.0.0.1", - "secondary": "10.0.0.2", - "networkMask": "255.255.255.240", - "defaultGateway": "10.0.0.3" - } + "description": "List of network changes" }, - "account": { - "required": [ - "accountNumber" - ], + "NetworkChangeResponse": { "type": "object", "properties": { - "accountNumber": { - "type": "integer" - }, - "isResellerAccount": { - "type": "boolean" - }, - "orgId": { - "type": "string" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "globalOrgId": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkChange" + } } }, - "description": "Account model, includes account number and flag to indicate if this account is reseller", - "example": { - "accountNumber": 123456 - } + "description": "List of network changes" }, - "advanceConfiguration": { + "ChangeId_3": { + "type": "string", + "description": "Network Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "NetworkChange": { "type": "object", "properties": { - "ntp": { - "$ref": "#/components/schemas/ntpAdvanceConfiguration" + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" }, - "ptp": { - "$ref": "#/components/schemas/ptpAdvanceConfiguration" + "uuid": { + "type": "string", + "description": "Uniquely identifies a change", + "format": "uuid", + "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "type": { + "$ref": "#/components/schemas/NetworkChangeType" + }, + "status": { + "$ref": "#/components/schemas/NetworkChangeStatus" + }, + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkChangeOperation" + } } }, - "description": "Advance Configuration for NTP/PTP" + "description": "Current state of latest network change" }, - "packageRequest": { - "title": "package", + "ServiceId": { + "type": "string", + "description": "Precision Time Service UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "precisionTimeServiceCreateResponse": { + "title": "precisionTimeServiceResponse", "required": [ - "code" + "href", + "ipv4", + "package", + "state", + "type", + "uuid" ], "type": "object", "properties": { + "type": { + "type": "string", + "enum": [ + "NTP", + "PTP" + ] + }, "href": { "type": "string", "format": "uri" }, - "code": { + "uuid": { + "type": "string", + "description": "uuid of the ept service", + "format": "uuid" + }, + "name": { "type": "string", + "description": "name of the ept service" + }, + "description": { + "type": "string" + }, + "state": { + "type": "string", + "description": "indicate service state", "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" + "PROVISIONED", + "PROVISIONING", + "PROVISIONING_FAILED", + "CONFIGURING", + "CANCELLED", + "DEPROVISIONING_FAILED", + "PENDING_CONFIGURATION", + "DEPROVISIONED", + "CONFIGURING_FAILED", + "DEPROVISIONING" ] + }, + "package": { + "$ref": "#/components/schemas/PackageResponse" + }, + "connections": { + "maxItems": 2, + "minItems": 1, + "uniqueItems": true, + "type": "array", + "description": "fabric l2 connections used for the ept service", + "items": { + "$ref": "#/components/schemas/fabricConnectionUuid" + } + }, + "ipv4": { + "$ref": "#/components/schemas/ipv4" + }, + "account": { + "$ref": "#/components/schemas/account" + }, + "advanceConfiguration": { + "$ref": "#/components/schemas/advanceConfiguration" + }, + "project": { + "$ref": "#/components/schemas/Project" } }, - "description": "EPT Package Request", - "example": { - "code": "NTP_STANDARD" - } + "description": "EPT service instance" }, - "connectionLink": { + "precisionTimeChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "href": { + "op": { "type": "string", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections" + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] }, - "type": { + "path": { "type": "string", + "description": "path inside document leading to updated parameter", "enum": [ - "EVPL_VC" + "/ipv4", + "/name", + "/advanceConfiguration/ntp", + "/advanceConfiguration/ptp", + "/package" ] }, - "uuid": { - "type": "string", - "format": "uuid" + "value": { + "type": "object", + "description": "new value for updated parameter" } - } + }, + "description": "Fabric Precision Timing change operation data" }, - "ConnectionPriority": { - "type": "string", - "description": "Connection priority in redundancy group", - "enum": [ - "PRIMARY", - "SECONDARY" - ] - }, - "AccessPoint": { + "precisionTimeServiceRequest": { + "title": "precisionTimeServiceRequest", + "required": [ + "connections", + "ipv4", + "name", + "package", + "type" + ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/AccessPointType" + "type": "string", + "description": "Indicate the entity is EPT service", + "enum": [ + "NTP", + "PTP" + ] }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "name": { + "type": "string" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "description": { + "type": "string" }, - "port": { - "$ref": "#/components/schemas/SimplifiedPort" + "package": { + "$ref": "#/components/schemas/packageRequest" }, - "profile": { - "$ref": "#/components/schemas/SimplifiedServiceProfile" + "connections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/fabricConnectionUuid" + } }, - "router": { - "$ref": "#/components/schemas/CloudRouter" + "ipv4": { + "$ref": "#/components/schemas/ipv4" }, - "linkProtocol": { - "$ref": "#/components/schemas/SimplifiedLinkProtocol" + "advanceConfiguration": { + "$ref": "#/components/schemas/advanceConfiguration" }, - "virtualDevice": { - "$ref": "#/components/schemas/VirtualDevice" + "project": { + "$ref": "#/components/schemas/Project" + } + }, + "description": "EPT service instance" + }, + "ConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "EVPL_VC", + "EPL_VC", + "EC_VC", + "IP_VC", + "ACCESS_EPL_VC", + "EIA_VC", + "EVPLAN_VC", + "EPLAN_VC", + "IPWAN_VC" + ] + }, + "Order": { + "type": "object", + "properties": { + "purchaseOrderNumber": { + "type": "string", + "description": "Purchase order number" }, - "interface": { - "$ref": "#/components/schemas/Interface" + "billingTier": { + "type": "string", + "description": "Billing tier for connection bandwidth" }, - "network": { - "$ref": "#/components/schemas/SimplifiedNetwork" + "orderId": { + "type": "string", + "description": "Order Identification" }, - "sellerRegion": { + "orderNumber": { "type": "string", - "description": "Access point seller region" + "description": "Order Reference Number" + } + } + }, + "SimplifiedNotification": { + "required": [ + "emails", + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Notification Type", + "example": "BANDWIDTH_ALERT", + "enum": [ + "NOTIFICATION", + "BANDWIDTH_ALERT", + "CONNECTION_APPROVAL", + "PROFILE_LIFECYCLE", + "ALL", + "SALES_REP_NOTIFICATIONS" + ] }, - "peeringType": { - "$ref": "#/components/schemas/PeeringType" + "sendInterval": { + "type": "string" }, - "authenticationKey": { - "type": "string", - "description": "Access point authentication key" + "emails": { + "type": "array", + "description": "Array of contact emails", + "items": { + "type": "string", + "format": "email" + } }, - "providerConnectionId": { + "registeredUsers": { + "type": "array", + "description": "Array of registered users", + "items": { + "type": "string" + } + } + } + }, + "ConnectionRedundancy": { + "type": "object", + "properties": { + "group": { "type": "string", - "description": "Provider assigned Connection Id" + "description": "Redundancy group identifier (UUID of primary connection)" + }, + "priority": { + "$ref": "#/components/schemas/ConnectionPriority" } }, - "description": "Access point object" + "description": "Connection redundancy configuration" }, - "ConnectionCompanyProfile": { + "ConnectionSide": { "type": "object", "properties": { - "id": { - "type": "number", - "description": "company profile identifier", - "example": 1 + "serviceToken": { + "$ref": "#/components/schemas/ServiceToken" }, - "name": { - "type": "string", - "description": "company profile name", - "example": "Company-1" + "accessPoint": { + "$ref": "#/components/schemas/AccessPoint" }, - "globalOrgId": { - "type": "string", - "description": "global customer organization value" + "companyProfile": { + "$ref": "#/components/schemas/ConnectionCompanyProfile" + }, + "invitation": { + "$ref": "#/components/schemas/ConnectionInvitation" + }, + "additionalInfo": { + "type": "array", + "description": "Any additional information, which is not part of connection metadata or configuration", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } } }, - "description": "Connection Company Profile Details" + "description": "Connection configuration object for each side of multi-segment connection" }, - "ConnectionInvitation": { + "Project": { + "required": [ + "projectId" + ], "type": "object", "properties": { - "email": { + "projectId": { "type": "string", - "description": "invitee email", - "example": "test@equinix.com" - }, - "message": { + "description": "Subscriber-assigned project ID", + "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" + } + } + }, + "ConnectionSideAdditionalInfo": { + "type": "object", + "properties": { + "key": { "type": "string", - "description": "invitation message", - "example": "Hello, Please accept my invitation" + "description": "Key" }, - "ctrDraftOrderId": { + "value": { "type": "string", - "description": "draft order id for invitation" + "description": "Value" } }, - "description": "Connection Invitation Details" + "description": "Additional information" }, - "ProviderStatus": { + "ConnectionState": { "type": "string", - "description": "Connection provider readiness status", + "description": "Connection status", "enum": [ - "AVAILABLE", + "ACTIVE", + "CANCELLED", "DEPROVISIONED", "DEPROVISIONING", + "DRAFT", "FAILED", - "NOT_AVAILABLE", - "PENDING_APPROVAL", + "PENDING", "PROVISIONED", "PROVISIONING", - "REJECTED", - "PENDING_BGP", - "OUT_OF_BANDWIDTH", - "DELETED", - "ERROR", - "ERRORED", - "NOTPROVISIONED", - "NOT_PROVISIONED", - "ORDERING", - "DELETING", - "PENDING DELETE", - "N/A" + "REPROVISIONING", + "" ] }, - "EquinixStatus": { - "type": "string", - "description": "Connection status", - "enum": [ - "REJECTED_ACK", - "REJECTED", - "PENDING_DELETE", - "PROVISIONED", - "BEING_REPROVISIONED", - "BEING_DEPROVISIONED", - "BEING_PROVISIONED", - "CREATED", - "ERRORED", - "PENDING_DEPROVISIONING", - "APPROVED", - "ORDERING", - "PENDING_APPROVAL", - "NOT_PROVISIONED", - "DEPROVISIONING", - "NOT_DEPROVISIONED", - "PENDING_AUTO_APPROVAL", - "PROVISIONING", - "PENDING_BGP_PEERING", - "PENDING_PROVIDER_VLAN", - "DEPROVISIONED", - "DELETED", - "PENDING_BANDWIDTH_APPROVAL", - "AUTO_APPROVAL_FAILED", - "UPDATE_PENDING", - "DELETED_API", - "MODIFIED", - "PENDING_PROVIDER_VLAN_ERROR", - "DRAFT", - "CANCELLED", - "PENDING_INTERFACE_CONFIGURATION" - ] - }, - "RoutingProtocolOperation": { - "type": "object", - "properties": { - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "ProductType": { - "type": "string", - "description": "Product type", - "enum": [ - "VIRTUAL_CONNECTION_PRODUCT", - "IP_BLOCK_PRODUCT", - "VIRTUAL_PORT_PRODUCT", - "CLOUD_ROUTER_PRODUCT" - ] - }, - "PriceCharge": { + "Change": { + "required": [ + "createdDateTime", + "type" + ], "type": "object", "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, "type": { "type": "string", - "description": "Price charge type", + "description": "Type of change", "enum": [ - "MONTHLY_RECURRING", - "NON_RECURRING" + "CONNECTION_CREATION", + "CONNECTION_UPDATE", + "CONNECTION_DELETION", + "CONNECTION_PROVIDER_STATUS_REQUEST" ] }, - "price": { - "minimum": 0, - "type": "number", - "description": "Offering price", - "format": "double" - } - }, - "description": "Price Charge" - }, - "PriceCategory": { - "type": "string", - "description": "Price category", - "enum": [ - "COUNTRY", - "CUSTOMER" - ] - }, - "VirtualConnectionPrice": { - "type": "object", - "properties": { - "uuid": { + "status": { "type": "string", - "description": "Either uuid or rest of attributes are required", - "format": "uuid" + "description": "Current outcome of the change flow", + "enum": [ + "APPROVED", + "COMPLETED", + "FAILED", + "REJECTED", + "REQUESTED", + "SUBMITTED_FOR_APPROVAL" + ] }, - "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceConnectionType" + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "bandwidth": { - "minimum": 0, - "type": "integer" + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "aSide": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide" + "information": { + "type": "string", + "description": "Additional information" }, - "zSide": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide" + "data": { + "$ref": "#/components/schemas/ConnectionChangeOperation" } }, - "description": "Virtual Connection Product configuration" + "description": "Current state of latest connection change" }, - "IpBlockPrice": { + "ConnectionOperation": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Either uuid or rest of attributes are required", - "format": "uuid" + "providerStatus": { + "$ref": "#/components/schemas/ProviderStatus" }, - "type": { - "$ref": "#/components/schemas/IpBlockType" + "equinixStatus": { + "$ref": "#/components/schemas/EquinixStatus" }, - "prefixLength": { - "type": "integer" + "operationalStatus": { + "type": "string", + "description": "Connection operational status", + "enum": [ + "UP", + "DOWN" + ] }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Error" + } + }, + "opStatusChangedAt": { + "type": "string", + "description": "When connection transitioned into current operational status", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "IP Block Product configuration" + "description": "Connection type-specific operational data" }, - "FabricCloudRouterPrice": { + "SimplifiedAccount": { "type": "object", "properties": { - "uuid": { + "accountNumber": { + "type": "integer", + "description": "Account number", + "format": "int64" + }, + "accountName": { "type": "string", - "description": "Unique identifier assigned to the Cloud Router", - "format": "uuid" + "description": "Account name" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "orgId": { + "type": "integer", + "description": "Customer organization identifier", + "format": "int64" }, - "package": { - "$ref": "#/components/schemas/FabricCloudRouterPackages" - } - }, - "description": "Cloud Router Product configuration" - }, - "VirtualPortPrice": { - "type": "object", - "properties": { - "uuid": { + "organizationName": { "type": "string", - "description": "Unique identifier assigned to the virtual port. Either the uuid or the remaining attributes must be supplied.", - "format": "uuid" + "description": "Customer organization name" }, - "type": { - "$ref": "#/components/schemas/VirtualPortType" + "globalOrgId": { + "type": "string", + "description": "Global organization identifier" }, - "location": { - "$ref": "#/components/schemas/VirtualPortLocation" + "globalOrganizationName": { + "type": "string", + "description": "Global organization name" }, - "lag": { - "$ref": "#/components/schemas/LinkAggregationGroup" + "ucmId": { + "type": "string", + "description": "Account ucmId" }, - "physicalPortsQuantity": { - "type": "integer", - "description": "Number of physical ports requested. The defaults is 1.", - "default": 1 + "globalCustId": { + "type": "string", + "description": "Account name" }, - "bandwidth": { + "resellerAccountNumber": { "type": "integer", - "description": "Aggregated data transfer capacity, expressed as follows
-> Mbps, megabits (1 million bits) per second
-> Gbps, gigabits (1 billion bits) per second
Bandwidth must be divisible by physicalPortsQuantity." - }, - "redundancy": { - "$ref": "#/components/schemas/VirtualPortRedundancy" + "description": "Reseller account number", + "format": "int64" }, - "connectivitySource": { - "$ref": "#/components/schemas/ConnectivitySource" + "resellerAccountName": { + "type": "string", + "description": "Reseller account name" }, - "serviceType": { - "$ref": "#/components/schemas/VirtualPortServiceType" + "resellerUcmId": { + "type": "string", + "description": "Reseller account ucmId" }, - "settings": { - "$ref": "#/components/schemas/VirtualPortConfiguration" - } - }, - "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." - }, - "ServiceTokenSide": { - "type": "object", - "properties": { - "accessPointSelectors": { - "type": "array", - "description": "List of AccessPointSelectors", - "items": { - "$ref": "#/components/schemas/AccessPointSelector" - } + "resellerOrgId": { + "type": "integer", + "description": "Reseller customer organization identifier", + "format": "int64" } - }, - "description": "Connection link protocol configuration" + } }, - "PortDeviceRedundancy": { + "Changelog": { "type": "object", "properties": { - "group": { + "createdBy": { "type": "string", - "description": "Device redundancy group" + "description": "Created by User Key", + "example": "johnsmith" }, - "priority": { + "createdByFullName": { "type": "string", - "description": "Device redundancy priority", - "enum": [ - "PRIMARY", - "SECONDARY" - ] + "description": "Created by User Full Name", + "example": "John Smith" + }, + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address", + "example": "john.smith@example.com" + }, + "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" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name", + "example": "John Smith" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address", + "example": "john.smith@example.com" + }, + "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" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name", + "example": "John Smith" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address", + "example": "john.smith@example.com" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "Device redundancy" - }, - "PortPriority": { - "type": "string", - "description": "Port priority in redundancy group", - "enum": [ - "PRIMARY", - "SECONDARY" - ] - }, - "LinkProtocolState": { - "type": "string", - "description": "Network status", - "enum": [ - "RESERVED", - "RELEASED" - ] - }, - "LinkProtocolRequestType": { - "type": "string", - "description": "Type of Link Protocol", - "enum": [ - "UNTAGGED", - "DOT1Q", - "QINQ", - "EVPN_VXLAN", - "UNTAGGEDEPL" - ] + "description": "Change log" }, - "SubInterface": { + "Error": { + "required": [ + "errorCode", + "errorMessage" + ], "type": "object", "properties": { - "type": { - "type": "string", - "description": "type of connection vlan", - "enum": [ - "VNI", - "VXLAN", - "VLAN" - ] + "errorCode": { + "pattern": "^EQ-\\d{7}$", + "type": "string" }, - "name": { - "type": "string", - "description": "name of subinterafce of a port" + "errorMessage": { + "type": "string" }, - "unit": { - "type": "integer", - "example": 200 + "correlationId": { + "type": "string" + }, + "details": { + "type": "string" + }, + "help": { + "type": "string" + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Sub Interface information" + "description": "Error Response with details" }, - "AdditionalInfo": { + "ConnectionChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "key": { + "op": { "type": "string", - "description": "Key" + "description": "Handy shortcut for operation name", + "example": "add" }, - "value": { + "path": { "type": "string", - "description": "Value" + "description": "path inside document leading to updated parameter", + "example": "/ipv6" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } }, - "description": "Additional information" + "description": "Connection change operation data" }, - "LinkProtocolConnection": { + "Actions": { + "type": "string", + "description": "Connection action type", + "enum": [ + "CONNECTION_CREATION_ACCEPTANCE", + "CONNECTION_CREATION_REJECTION", + "CONNECTION_UPDATE_ACCEPTANCE", + "CONNECTION_UPDATE_REJECTION", + "CONNECTION_DELETION_ACCEPTANCE", + "CONNECTION_REJECTION_ACCEPTANCE", + "CONNECTION_UPDATE_REQUEST", + "MIGRATION_EVPL_VC", + "CONNECTION_PROVIDER_STATUS_REQUEST", + "ACCEPT_HOSTED_CONNECTION", + "CANCEL_EVPL_VC_DRAFT_ORDERS" + ] + }, + "ConnectionAcceptanceData": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Connection URI", - "format": "uri", - "readOnly": true - }, - "uuid": { + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + } + }, + "description": "Connection acceptance data" + }, + "BGPConnectionIpv4": { + "required": [ + "customerPeerIp", + "enabled" + ], + "type": "object", + "properties": { + "customerPeerIp": { "type": "string", - "format": "string", - "example": "cd67f685-41b0-1b07-6de0-320a5c00abe" + "description": "Customer side peering ip", + "example": "10.1.1.2" }, - "type": { + "equinixPeerIp": { "type": "string", - "example": "EVPL_VC" + "description": "Equinix side peering ip", + "example": "10.1.1.3" }, - "bandwidth": { - "type": "integer", - "format": "int64", - "example": 100 + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session" } - }, - "description": "Connection details of Link Protocol" + } }, - "LinkProtocolServiceToken": { + "BGPConnectionIpv6": { + "required": [ + "customerPeerIp", + "enabled" + ], "type": "object", "properties": { - "href": { + "customerPeerIp": { "type": "string", - "description": "Service Token URI", - "format": "uri", - "readOnly": true + "description": "Customer side peering ip", + "example": "2001:db8:c59b::1" }, - "uuid": { + "equinixPeerIp": { "type": "string", - "format": "uuid", - "example": "cd67f685-41b0-1b07-6de0-0320a5c00abe" + "description": "Equinix side peering ip", + "example": "2001:db8:c59b::1" }, - "type": { - "type": "string", - "example": "TOKEN" + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session" + } + } + }, + "RoutingProtocolBFD": { + "required": [ + "enabled" + ], + "type": "object", + "properties": { + "enabled": { + "type": "boolean" }, - "bandwidth": { - "type": "integer", - "format": "int64", - "example": 1000 + "interval": { + "type": "string", + "example": "100" } - }, - "description": "Service Token details of Link Protocol" + } }, - "RouteTableEntryType": { - "type": "string", - "description": "Route table entry type", - "enum": [ - "IPv4_BGP_ROUTE", - "IPv4_STATIC_ROUTE", - "IPv4_DIRECT_ROUTE", - "IPv6_BGP_ROUTE", - "IPv6_STATIC_ROUTE", - "IPv6_DIRECT_ROUTE" - ] - }, - "RouteTableEntryProtocolType": { - "type": "string", - "description": "Route table entry protocol type", - "enum": [ - "BGP", - "STATIC", - "DIRECT" - ] - }, - "RouteTableEntryState": { - "type": "string", - "description": "Route table entry state", - "enum": [ - "ACTIVE" - ] - }, - "NetworkEquinixStatus": { - "type": "string", - "description": "Network status", - "enum": [ - "PROVISIONING", - "PROVISIONED", - "NOT_PROVISIONED", - "DEPROVISIONING", - "DEPROVISIONED", - "NOT_DEPROVISIONED" - ] - }, - "NetworkSortDirectionResponse": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "NetworkSortByResponse": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/type", - "/uuid", - "/state", - "/scope", - "/location/region", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] + "DirectConnectionIpv4": { + "type": "object", + "properties": { + "equinixIfaceIp": { + "type": "string", + "description": "Equinix side Interface IP address", + "example": "192.168.100.0/30" + } + } }, - "ntpAdvanceConfiguration": { - "type": "array", - "items": { - "$ref": "#/components/schemas/md5" + "DirectConnectionIpv6": { + "required": [ + "equinixIfaceIp" + ], + "type": "object", + "properties": { + "equinixIfaceIp": { + "type": "string", + "description": "Equinix side Interface IP address", + "example": "2001:db8:c59b::/1" + } } }, - "ptpAdvanceConfiguration": { + "RoutingProtocolBGPData": { "type": "object", "properties": { - "timeScale": { + "type": { "type": "string", - "description": "Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol.", - "example": "ARB", + "description": "Routing protocol type", "enum": [ - "ARB", - "PTP" + "BGP" ] }, - "domain": { - "maximum": 127, - "minimum": 0, - "type": "integer", - "example": 0 + "name": { + "type": "string", + "example": "My-BGP-route-1" }, - "priority1": { - "maximum": 248, - "minimum": 0, - "type": "integer", - "example": 0 + "bgpIpv4": { + "$ref": "#/components/schemas/BGPConnectionIpv4" }, - "priority2": { - "maximum": 248, - "minimum": 0, - "type": "integer", - "example": 0 + "bgpIpv6": { + "$ref": "#/components/schemas/BGPConnectionIpv6" }, - "logAnnounceInterval": { + "customerAsn": { "type": "integer", - "description": "The mean time interval between Announce messages. A shorter interval makes ptp4l react faster to the changes in the master-slave hierarchy. The interval should be the same in the whole domain. It's specified as a power of two in seconds. The default is 1 (2 seconds).", - "example": 0 + "description": "Customer asn", + "format": "int64", + "example": 65002 }, - "logSyncInterval": { + "equinixAsn": { "type": "integer", - "description": "The mean time interval between Sync messages. A shorter interval may improve accuracy of the local clock. It's specified as a power of two in seconds. The default is 0 (1 second).", - "example": 0 + "description": "Equinix asn", + "format": "int64", + "example": 65002 }, - "logDelayReqInterval": { - "type": "integer", - "example": 0 + "bgpAuthKey": { + "type": "string", + "description": "BGP authorization key", + "example": "testAuthKey" }, - "transportMode": { + "bfd": { + "$ref": "#/components/schemas/RoutingProtocolBFD" + }, + "href": { + "type": "string", + "description": "Routing Protocol URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + }, + "uuid": { + "type": "string", + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + }, + "state": { "type": "string", "enum": [ - "Multicast", - "Unicast", - "Hybrid" + "PROVISIONED", + "DEPROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "REPROVISIONING", + "FAILED" ] }, - "grantTime": { - "maximum": 7200, - "minimum": 30, - "type": "integer", - "description": "Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200.", - "example": 300 + "operation": { + "$ref": "#/components/schemas/RoutingProtocolOperation" + }, + "change": { + "$ref": "#/components/schemas/RoutingProtocolChange" + }, + "changelog": { + "$ref": "#/components/schemas/Changelog" } } }, - "AccessPointType": { - "type": "string", - "description": "Access point type", - "enum": [ - "VD", - "VG", - "SP", - "IGW", - "COLO", - "SUBNET", - "CLOUD_ROUTER", - "NETWORK" - ] - }, - "SimplifiedPort": { + "RoutingProtocolDirectData": { "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/PortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Port Id" - }, - "href": { - "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true - }, - "uuid": { "type": "string", - "description": "Equinix assigned response attribute for port identifier", - "format": "uuid" + "description": "Routing protocol type", + "enum": [ + "DIRECT" + ] }, "name": { "type": "string", - "description": "Equinix assigned response attribute for Port name" + "example": "My-direct-route-1" }, - "description": { - "type": "string", - "description": "Equinix assigned response attribute for Port description" + "directIpv4": { + "$ref": "#/components/schemas/DirectConnectionIpv4" }, - "physicalPortsSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Ports Speed in Mbps" + "directIpv6": { + "$ref": "#/components/schemas/DirectConnectionIpv6" }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Connection count" + "href": { + "type": "string", + "description": "Routing Protocol URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" }, - "project": { - "$ref": "#/components/schemas/Project" + "uuid": { + "type": "string", + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, "state": { - "$ref": "#/components/schemas/PortState" - }, - "cvpId": { "type": "string", - "description": "Equinix assigned response attribute for Unique ID for a virtual port." + "enum": [ + "PROVISIONED", + "DEPROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "REPROVISIONING", + "FAILED" + ] }, "operation": { - "$ref": "#/components/schemas/PortOperation" + "$ref": "#/components/schemas/RoutingProtocolOperation" }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "change": { + "$ref": "#/components/schemas/RoutingProtocolChange" }, - "serviceType": { + "changelog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "BGPActions": { + "type": "string", + "description": "BGP action type", + "enum": [ + "CLEAR_BGPIPV4", + "CLEAR_BGPIPV6", + "CLEAR_BGPIPV4_INBOUND", + "CLEAR_BGPIPV6_INBOUND", + "RESET_BGPIPV4", + "RESET_BGPIPV6" + ] + }, + "BGPActionStates": { + "type": "string", + "description": "BGP action state", + "enum": [ + "PENDING", + "FAILED", + "SUCCEEDED" + ] + }, + "RoutingProtocolChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { "type": "string", - "description": "Port service Type", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", "enum": [ - "EPL", - "MSP" + "ROUTING_PROTOCOL_UPDATE", + "ROUTING_PROTOCOL_CREATION", + "ROUTING_PROTOCOL_DELETION" ] }, - "bandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port bandwidth in Mbps" + "href": { + "type": "string", + "description": "Routing Protocol Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Routing Protocol change" + }, + "RoutingProtocolChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "add", + "replace", + "remove" + ] }, - "availableBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/" }, - "usedBandwidth": { + "value": { + "$ref": "#/components/schemas/RoutingProtocolBase" + } + }, + "description": "Routing Protocol change operation data" + }, + "PaginationRequest": { + "type": "object", + "properties": { + "offset": { "minimum": 0, "type": "integer", - "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "device": { - "$ref": "#/components/schemas/PortDevice" - }, - "interface": { - "$ref": "#/components/schemas/PortInterface" - }, - "tether": { - "$ref": "#/components/schemas/PortTether" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "redundancy": { - "$ref": "#/components/schemas/PortRedundancy" - }, - "encapsulation": { - "$ref": "#/components/schemas/PortEncapsulation" - }, - "lagEnabled": { - "type": "boolean", - "description": "If LAG enabled" - }, - "settings": { - "$ref": "#/components/schemas/PortSettings" + "description": "Index of the first element.", + "default": 0 }, - "physicalPortQuantity": { + "limit": { + "minimum": 1, "type": "integer", - "description": "Number of physical ports" - }, - "additionalInfo": { - "type": "array", - "description": "Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } - }, - "physicalPorts": { - "type": "array", - "description": "Physical ports that implement this port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "description": "Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.", + "default": 20 } }, - "description": "Port specification" + "description": "Pagination request information" }, - "SimplifiedLinkProtocol": { + "SortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "SortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/name", + "/direction", + "/aSide/accessPoint/name", + "/aSide/accessPoint/type", + "/aSide/accessPoint/account/accountName", + "/aSide/accessPoint/location/metroName", + "/aSide/accessPoint/location/metroCode", + "/aSide/accessPoint/linkProtocol/vlanCTag", + "/aSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/name", + "/zSide/accessPoint/type", + "/zSide/accessPoint/account/accountName", + "/zSide/accessPoint/location/metroName", + "/zSide/accessPoint/location/metroCode", + "/zSide/accessPoint/linkProtocol/vlanCTag", + "/zSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/authenticationKey", + "/bandwidth", + "/geoScope", + "/uuid", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime", + "/operation/equinixStatus", + "/operation/providerStatus", + "/redundancy/priority" + ] + }, + "SortCriteriaResponse": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "vlanTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanTag value specified for DOT1Q connections" - }, - "vlanSTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanSTag value specified for QINQ connections" + "direction": { + "$ref": "#/components/schemas/SortDirection" }, - "vlanCTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanCTag value specified for QINQ connections" + "property": { + "$ref": "#/components/schemas/SortBy" } - }, - "description": "Connection link protocol Configuration" + } }, - "VirtualDevice": { + "Price": { "type": "object", "properties": { "href": { "type": "string", - "description": "Virtual Device URI", - "format": "uri", - "readOnly": true + "description": "An absolute URL that returns specified pricing data", + "format": "url" }, - "uuid": { + "type": { + "$ref": "#/components/schemas/ProductType" + }, + "code": { "type": "string", - "description": "Equinix-assigned Virtual Device identifier", - "format": "uuid" + "description": "Equinix-assigned product code" }, "name": { "type": "string", - "description": "Customer-assigned Virtual Device name" + "description": "Full product name" }, - "type": { + "description": { "type": "string", - "description": "Virtual Device type", - "enum": [ - "EDGE" - ] + "description": "Product description" }, "account": { "$ref": "#/components/schemas/SimplifiedAccount" - } - }, - "description": "Virtual Device AccessPoint Information" - }, - "Interface": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Virtual Interface URI", - "format": "uri", - "readOnly": true }, - "uuid": { - "type": "string", - "description": "Equinix-assigned Virtual Device Interface identifier", - "format": "uuid" - }, - "id": { - "type": "integer", - "description": "Interface id" + "charges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceCharge" + } }, - "type": { + "currency": { "type": "string", - "description": "Virtual Device Interface type", + "description": "Product offering price currency" + }, + "termLength": { + "type": "integer", + "description": "In months. No value means unlimited", "enum": [ - "CLOUD", - "NETWORK" + 12, + 24, + 36 ] - } - }, - "description": "Virtual Device Interface Information" - }, - "SimplifiedNetwork": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "name": { - "type": "string", - "description": "Customer-assigned network name", - "example": "My EVPLAN Network" }, - "state": { - "$ref": "#/components/schemas/NetworkState" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "change": { - "$ref": "#/components/schemas/SimplifiedNetworkChange" - }, - "operation": { - "$ref": "#/components/schemas/NetworkOperation" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "catgory": { + "$ref": "#/components/schemas/PriceCategory" }, - "links": { - "type": "array", - "description": "Network sub-resources links", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/Link" - } + "connection": { + "$ref": "#/components/schemas/VirtualConnectionPrice" }, - "type": { - "$ref": "#/components/schemas/NetworkType" + "ipBlock": { + "$ref": "#/components/schemas/IpBlockPrice" }, - "scope": { - "$ref": "#/components/schemas/NetworkScope" + "router": { + "$ref": "#/components/schemas/FabricCloudRouterPrice" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "port": { + "$ref": "#/components/schemas/VirtualPortPrice" } - }, - "description": "Network specification" + } }, - "PeeringType": { + "ServiceProfileTypeEnum": { "type": "string", - "description": "Access point peering type", + "description": "Service profile type", + "example": "L2_PROFILE", "enum": [ - "PRIVATE", - "MICROSOFT", - "PUBLIC", - "MANUAL" + "L2_PROFILE", + "L3_PROFILE" ] }, - "VirtualConnectionPriceConnectionType": { + "ServiceProfileVisibilityEnum": { "type": "string", - "description": "Virtual Connection type", "enum": [ - "EVPL_VC", - "EPL_VC", - "EC_VC", - "IP_VC", - "VD_CHAIN_VC", - "ACCESS_EPL_VC", - "EVPLAN_VC", - "EPLAN_VC", - "IPWAN_VC" + "PRIVATE", + "PUBLIC" ] }, - "VirtualConnectionPriceASide": { - "type": "object", - "properties": { - "accessPoint": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint" - } - } - }, - "VirtualConnectionPriceZSide": { + "SimplifiedLocation": { "type": "object", "properties": { - "accessPoint": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint" + "region": { + "type": "string", + "example": "AMER, APAC, EMEA" + }, + "metroName": { + "type": "string", + "example": "Amsterdam" + }, + "metroCode": { + "type": "string", + "example": "AM" + }, + "metroHref": { + "type": "string", + "example": "https://api.equinix.com/fabric/v4/metros/AM" + }, + "ibx": { + "type": "string", + "example": "AM1" } } }, - "IpBlockType": { + "ServiceProfileStateEnum": { "type": "string", - "description": "IP Block type", + "description": "Equinix assigned state.", + "example": "ACTIVE", "enum": [ - "IPv4", - "IPv6" + "ACTIVE", + "PENDING_APPROVAL", + "DELETED", + "REJECTED" ] }, - "PriceLocation": { - "type": "object", - "properties": { - "metroCode": { - "type": "string" - } - } + "ServiceTokenType": { + "type": "string", + "description": "Type of Service Token", + "enum": [ + "VC_TOKEN" + ] }, - "FabricCloudRouterPackages": { + "ServiceTokenConnection": { + "required": [ + "type" + ], "type": "object", "properties": { - "code": { - "$ref": "#/components/schemas/FabricCloudRouterCode" + "type": { + "type": "string", + "description": "Type of Connection", + "enum": [ + "EVPL_VC" + ] + }, + "href": { + "type": "string", + "description": "An absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier", + "format": "uuid" + }, + "allowRemoteConnection": { + "type": "boolean", + "description": "Authorization to connect remotely", + "default": false + }, + "bandwidthLimit": { + "maximum": 100000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth limit in Mbps" + }, + "supportedBandwidths": { + "type": "array", + "description": "List of permitted bandwidths.", + "items": { + "type": "integer" + } + }, + "aSide": { + "$ref": "#/components/schemas/ServiceTokenSide" + }, + "zSide": { + "$ref": "#/components/schemas/ServiceTokenSide" } }, - "description": "Cloud Router package" + "description": "Service Token Connection Type Information" }, - "VirtualPortType": { + "ServiceTokenState": { "type": "string", - "description": "Port type.", + "description": "Service token state", "enum": [ - "XF_PORT" + "ACTIVE", + "INACTIVE", + "EXPIRED", + "DELETED" ] }, - "VirtualPortLocation": { + "ServiceTokenChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "ibx": { + "op": { "type": "string", - "description": "Code assigned to the Equinix International Business Exchange (IBX) data center from which the port is ordered.
The port might be in a different location." + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] + }, + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/expirationDateTime" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } }, - "description": "Geographic data for the port." + "description": "Service Token change operation data" }, - "LinkAggregationGroup": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Parameter showing whether LAG configuration is mandatory. The default is false.", - "default": false - } - }, - "description": "Link aggregation group (LAG) preferences and settings." - }, - "VirtualPortRedundancy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Parameter showing whether redundancy is mandatory. The default is false.", - "default": false - } - }, - "description": "Specifications for redundant connections, which improve service continuity by routing traffic to secondary ports when primary ports are unavailable.
Redundancy increases resilience and boosts site reliability scores." + "ServiceTokenActions": { + "type": "string", + "description": "Service Token action type", + "enum": [ + "RESEND_EMAIL_NOTIFICATION" + ] }, - "ConnectivitySource": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectivitySourceType" - } - }, - "description": "Physical or virtual port that houses the connection." + "PortType": { + "type": "string", + "description": "Type of Port", + "enum": [ + "XF_PORT", + "IX_PORT" + ] }, - "VirtualPortServiceType": { + "PortState": { "type": "string", - "description": "Port service type. The default is managed-service provider (MSP).", - "default": "MSP", + "description": "Port lifecycle state", "enum": [ - "MSP", - "EPL" + "PENDING", + "PROVISIONING", + "PROVISIONED", + "ACTIVE", + "DEPROVISIONING", + "DEPROVISIONED", + "INACTIVE", + "FAILED" ] }, - "VirtualPortConfiguration": { + "PortOrder": { "type": "object", "properties": { - "buyout": { - "type": "boolean", - "description": "Buyout (true) or standard (false) configuration of the port at this access point.
Buyout ports offer free, unlimited connections. Standard ports do not. The default is false.", - "default": false + "purchaseOrder": { + "$ref": "#/components/schemas/PortOrder_purchaseOrder" + }, + "orderId": { + "type": "string", + "description": "Order Identification" + }, + "orderNumber": { + "type": "string", + "description": "Order Reference Number" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned order identifier", + "format": "uuid" + }, + "signature": { + "$ref": "#/components/schemas/PortOrder_signature" } - }, - "description": "Port configuration." + } }, - "AccessPointSelector": { + "PortOperation": { "type": "object", "properties": { - "type": { + "operationalStatus": { "type": "string", - "description": "Type of Access point", + "description": "Availability of a given physical port.", "enum": [ - "COLO" + "UP", + "DOWN" ] }, - "port": { - "$ref": "#/components/schemas/SimplifiedMetadataEntity" + "connectionCount": { + "type": "integer", + "description": "Total number of connections." }, - "linkProtocol": { - "$ref": "#/components/schemas/LinkProtocol" + "opStatusChangedAt": { + "type": "string", + "description": "Date and time at which port availability changed.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability." + "description": "Operational specifications for ports." }, - "md5": { + "PortDevice": { "type": "object", "properties": { - "type": { + "name": { "type": "string", - "enum": [ - "ASCII", - "HEX" - ] - }, - "id": { - "type": "string" + "description": "Device name" }, - "password": { - "type": "string" + "redundancy": { + "$ref": "#/components/schemas/PortDeviceRedundancy" } - } - }, - "LinkProtocolType": { - "type": "string", - "description": "Type of Link Protocol", - "enum": [ - "UNTAGGED", - "DOT1Q", - "QINQ", - "EVPN_VXLAN" - ] - }, - "VirtualConnectionPriceAccessPointType": { - "type": "string", - "description": "Virtual Connection access point type", - "enum": [ - "VD", - "SP", - "COLO", - "CLOUD_ROUTER", - "CHAINGROUP", - "NETWORK" - ] - }, - "VirtualConnectionBridgePackageCode": { - "type": "string", - "description": "Virtual Connection bridge package code", - "enum": [ - "REGIONAL", - "GLOBAL" - ] - }, - "FabricCloudRouterCode": { - "type": "string", - "description": "Cloud Router code", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] - }, - "ConnectivitySourceType": { - "type": "string", - "description": "Type of connectivity. COLO, colocation; BMMR, building meet-me room. The default is COLO.
A building meet-me room (BMMR) is a room within the same building where an Equinix IBX customer can connect with a non-Equinix IBX customer.", - "default": "COLO", - "enum": [ - "COLO", - "BMMR", - "REMOTE" - ] + }, + "description": "Port device" }, - "SimplifiedMetadataEntity": { + "PortInterface": { "type": "object", "properties": { - "href": { + "type": { "type": "string", - "description": "url to entity", - "format": "uri" + "description": "Port interface type" }, - "uuid": { + "ifIndex": { "type": "string", - "description": "Equinix assigned Identifier", - "format": "uuid" + "description": "Port interface index" }, - "type": { + "name": { "type": "string", - "description": "Type of Port" + "description": "Port interface name" } }, - "description": "Configuration details for port used at the access point." + "description": "Port interface" }, - "LinkProtocol": { - "required": [ - "type" - ], + "PortDemarcationPoint": { "type": "object", - "description": "Connection link protocol Configuration", - "discriminator": { - "propertyName": "type", - "mapping": { - "UNTAGGED": "#/components/schemas/LinkProtocolUntagged", - "DOT1Q": "#/components/schemas/LinkProtocolDot1q", - "QINQ": "#/components/schemas/LinkProtocolQinq", - "EVPN_VXLAN": "#/components/schemas/LinkProtocolEvpnVxlan" - } - }, - "oneOf": [ - { - "$ref": "#/components/schemas/LinkProtocolUntagged" + "properties": { + "cabinetUniqueSpaceId": { + "type": "string", + "description": "Port cabinet unique space id" }, - { - "$ref": "#/components/schemas/LinkProtocolDot1q" + "cageUniqueSpaceId": { + "type": "string", + "description": "Port cage unique space id" }, - { - "$ref": "#/components/schemas/LinkProtocolQinq" + "patchPanel": { + "type": "string", + "description": "Port patch panel" }, - { - "$ref": "#/components/schemas/LinkProtocolEvpnVxlan" - } - ] - }, - "LinkProtocolUntagged": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" + "patchPanelName": { + "type": "string", + "description": "Port patch panel", + "deprecated": true }, - "ipv4": { - "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + "patchPanelPortA": { + "type": "string", + "description": "Port patch panel port A" }, - "ipv6": { - "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + "patchPanelPortB": { + "type": "string", + "description": "Port patch panel port B" + }, + "connectorType": { + "type": "string", + "description": "Port connector type" + }, + "ibx": { + "type": "string", + "description": "Port ibx identifier" } }, - "description": "Connection link protocol configuration - UNTAGGED" + "description": "Customer physical Port" }, - "LinkProtocolDot1q": { - "required": [ - "vlanTag" - ], + "PortRedundancy": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "tagProtocolId": { - "type": "string", - "description": "Tag protocol identifier" + "enabled": { + "type": "boolean", + "description": "Access point redundancy" }, - "vlanTag": { + "group": { "type": "string", - "description": "VLAN tag" - }, - "vlanTagMin": { - "type": "integer", - "description": "VLAN tag Min value specified for DOT1Q connections" + "description": "Port UUID of respective primary port" }, - "vlanTagMax": { - "type": "integer", - "description": "VLAN tag Max value specified for DOT1Q connections" + "priority": { + "$ref": "#/components/schemas/PortPriority" } }, - "description": "Connection link protocol configuration - DOT1Q" + "description": "Port redundancy configuration" }, - "LinkProtocolQinq": { - "required": [ - "innerTagProtocolId", - "outerTagProtocolId", - "vlanCTag", - "vlanSTag" - ], + "PortEncapsulation": { "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "innerTagProtocolId": { - "type": "integer", - "description": "Inner tag protocol identifier" - }, - "outerTagProtocolId": { - "type": "integer", - "description": "Outer tag protocol identifier" - }, - "vlanCTag": { - "type": "integer", - "description": "Inner tag, i.e., C-VLAN tag" - }, - "vlanSTag": { - "type": "integer", - "description": "Outer tag, i.e., S-VLAN tag" - }, - "vlanCTagMin": { - "type": "integer", - "description": "Outer tag Min value specified for QINQ connections" - }, - "vlanCTagMax": { - "type": "integer", - "description": "Outer tag Max value specified for QINQ connections" + "type": "string", + "description": "Port encapsulation protocol type", + "enum": [ + "NULL", + "DOT1Q", + "QINQ", + "UNTAGGED" + ] }, - "subInterface": { - "type": "integer", - "description": "Subinterface identifier" + "tagProtocolId": { + "type": "string", + "description": "Port encapsulation tag protocol identifier" } }, - "description": "Connection link protocol configuration - QINQ" + "description": "Port encapsulation configuration" }, - "LinkProtocolEvpnVxlan": { - "required": [ - "type5vni", - "vnid" - ], + "PortLag": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" + "id": { + "type": "string", + "description": "id" }, - "vnid": { - "maximum": 40000, - "minimum": 20001, - "type": "integer", - "description": "Virtual Network Identifier" + "enabled": { + "type": "boolean", + "description": "enabled" }, - "type5vni": { - "type": "integer", - "description": "Type 5 VNI identifier" + "name": { + "type": "string", + "description": "name" + }, + "memberStatus": { + "type": "string", + "description": "member status" } }, - "description": "Connection link protocol configuration - EVPN_VXLAN" + "description": "Port Lag" }, - "LinkProtocolIpv4Ipv6Config": { + "PortSettings": { "type": "object", "properties": { - "linkPrefix": { + "product": { "type": "string", - "description": "Link subnet prefix" + "description": "Product name" }, - "localIfaceIp": { + "buyout": { + "type": "boolean" + }, + "viewPortPermission": { + "type": "boolean" + }, + "placeVcOrderPermission": { + "type": "boolean" + }, + "layer3Enabled": { + "type": "boolean" + }, + "productCode": { + "type": "string" + }, + "sharedPortType": { + "type": "boolean" + }, + "sharedPortProduct": { "type": "string", - "description": "Prefix datatype when linkPrefix not specified" + "enum": [ + "NETWORK_EDGE", + "VIRTUAL_GATEWAY", + "SMARTKEY", + "EDGE_METAL" + ] }, - "remoteIfaceIp": { + "packageType": { "type": "string", - "description": "Equinix-side link interface address" + "description": "Type of Port Package", + "enum": [ + "STANDARD", + "UNTAGGED", + "UNLIMITED", + "FREE" + ] } }, - "description": "IPv4 or IPv6 specific configuration" + "description": "Port configuration settings" }, - "PriceError_additionalInfo": { + "PortNotification": { + "required": [ + "registeredUsers", + "type" + ], "type": "object", "properties": { - "property": { - "type": "string" - }, - "reason": { - "type": "string" - } - } - }, - "ValidateSubnetRequest_filter_and": { - "properties": { - "property": { - "type": "string", - "description": "Path to property" - }, - "operator": { + "type": { "type": "string", - "description": "Type of operation" + "description": "Notification Type", + "enum": [ + "NOTIFICATION", + "TECHNICAL", + "PEERING", + "ESCALATION" + ] }, - "values": { + "registeredUsers": { "type": "array", - "description": "Values for the given property", + "description": "Array of registered users", "items": { "type": "string" } } } }, - "ValidateSubnetRequest_filter": { + "PortAdditionalInfo": { "type": "object", "properties": { - "and": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter_and" - } + "key": { + "type": "string", + "description": "Key" + }, + "value": { + "type": "string", + "description": "Value" } }, - "description": "Filters" + "description": "Additional information" }, - "PortOrder_purchaseOrder": { + "PortLoa": { "type": "object", "properties": { - "number": { - "type": "string", - "description": "purchase order number" - }, - "amount": { - "type": "string", - "description": "purchase order amount" - }, - "startDate": { - "type": "string", - "format": "datetime" - }, - "endDate": { + "uuid": { "type": "string", - "format": "datetime" + "description": "uuid" }, - "attachmentId": { + "href": { "type": "string", - "format": "uuid" + "description": "Loa uri.", + "format": "uri", + "readOnly": true }, - "selectionType": { + "type": { "type": "string", + "description": "Loa type", "enum": [ - "EXEMPTION", - "EXISTING", - "NEW", - "BLANKET" + "CTR_LOA" ] } }, - "description": "purchase order" + "description": "Port Loas" }, - "PortOrder_signature_delegate": { + "PhysicalPortType": { + "type": "string", + "description": "Type of Port", + "enum": [ + "XF_PHYSICAL_PORT" + ] + }, + "PortTether": { "type": "object", "properties": { - "firstName": { + "crossConnectId": { "type": "string", - "description": "name of delegate" + "description": "Port cross connect identifier" }, - "lastName": { + "cabinetNumber": { "type": "string", - "description": "last Name of delegate" + "description": "Port cabinet number" }, - "email": { + "systemName": { "type": "string", - "description": "email of delegate" - } + "description": "Port system name" + }, + "patchPanel": { + "type": "string", + "description": "Port patch panel" + }, + "patchPanelPortA": { + "type": "string", + "description": "Port patch panel port A" + }, + "patchPanelPortB": { + "type": "string", + "description": "Port patch panel port B" + }, + "ibx": { + "type": "string", + "description": "z-side/Equinix IBX" + } }, - "description": "delegate oder details" + "description": "Port physical connection" }, - "PortOrder_signature": { + "LinkProtocolResponse": { "type": "object", "properties": { - "signatory": { + "uuid": { "type": "string", - "description": "Port signature Type", - "enum": [ - "DELEGATE", - "SELF", - "ACCOUNT_SUPPORT" - ] + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "delegate": { - "$ref": "#/components/schemas/PortOrder_signature_delegate" + "state": { + "$ref": "#/components/schemas/LinkProtocolState" + }, + "type": { + "$ref": "#/components/schemas/LinkProtocolRequestType" + }, + "vlanTag": { + "type": "integer", + "example": 20 + }, + "vlanTagMin": { + "type": "integer", + "example": 20 + }, + "vlanTagMax": { + "type": "integer", + "example": 200 + }, + "vlanSTag": { + "type": "integer", + "example": 20 + }, + "vlanCTag": { + "type": "integer", + "example": 20 + }, + "vlanCTagMin": { + "type": "integer", + "example": 20 + }, + "vlanCTagMax": { + "type": "integer", + "example": 200 + }, + "subInterface": { + "$ref": "#/components/schemas/SubInterface" + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdditionalInfo" + } + }, + "connection": { + "$ref": "#/components/schemas/LinkProtocolConnection" + }, + "serviceToken": { + "$ref": "#/components/schemas/LinkProtocolServiceToken" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" } }, - "description": "Port signature Type" + "description": "Link Protocol response" }, - "RouteTableEntry_connection": { + "PortSortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "PortSortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/device/name", + "enum": [ + "/device/name" + ] + }, + "RouteFilterState": { + "type": "string", + "description": "Route Filter status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteFiltersChange": { + "required": [ + "type", + "uuid" + ], "type": "object", "properties": { "uuid": { "type": "string", - "example": "81331c52-04c0-4656-a4a7-18c52669348f" + "description": "Uniquely identifies a change" }, - "name": { + "type": { "type": "string", - "example": "connection_1" - } - } - }, - "VirtualConnectionPriceASide_accessPoint_port_settings": { - "type": "object", - "properties": { - "buyout": { - "type": "boolean", - "default": false + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_UPDATE", + "BGP_IPv4_PREFIX_FILTER_CREATION", + "BGP_IPv4_PREFIX_FILTER_DELETION", + "BGP_IPv6_PREFIX_FILTER_UPDATE", + "BGP_IPv6_PREFIX_FILTER_CREATION", + "BGP_IPv6_PREFIX_FILTER_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Filter Change URI", + "format": "uri" } - } + }, + "description": "Current state of latest Route Filter change" }, - "VirtualConnectionPriceASide_accessPoint_port": { + "RouteFiltersChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "settings": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port_settings" + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "add", + "replace", + "remove" + ] + }, + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/" + }, + "value": { + "$ref": "#/components/schemas/RouteFiltersBase" } - } + }, + "description": "Route Filter change operation data" }, - "VirtualConnectionPriceASide_accessPoint": { + "RouteFilterConnectionsData": { "type": "object", "properties": { - "uuid": { + "href": { "type": "string", - "format": "uuid" + "description": "Connection URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f" }, "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" + "$ref": "#/components/schemas/ConnectionType" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "uuid": { + "type": "string", + "description": "Route Filter identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, - "port": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" + "name": { + "type": "string", + "example": "connection-1" } } }, - "VirtualConnectionPriceZSide_accessPoint_profile": { + "RouteFilterRulesChange": { + "required": [ + "type", + "uuid" + ], "type": "object", "properties": { "uuid": { "type": "string", - "format": "uuid" - } - } - }, - "VirtualConnectionPriceZSide_accessPoint_bridge_package": { - "type": "object", - "properties": { - "code": { - "$ref": "#/components/schemas/VirtualConnectionBridgePackageCode" + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv6_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Filter Change URI", + "format": "uri" } - } + }, + "description": "Current state of latest Route Filter Rule change" }, - "VirtualConnectionPriceZSide_accessPoint_bridge": { + "RouteFilterChangePrefixMatch": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "package": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge_package" + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/prefixMatch" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } - } + }, + "description": "Route Filter Rule change operation data" }, - "VirtualConnectionPriceZSide_accessPoint": { + "RouteFilterRulesChangeOperation": { + "required": [ + "action", + "name", + "prefix", + "type" + ], "type": "object", "properties": { - "uuid": { + "name": { "type": "string", - "format": "uuid" + "description": "name of route filter rule", + "example": "Private-subnet-filter" }, - "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" + "description": { + "type": "string", + "description": "cust provided description" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "type": { + "type": "string", + "description": "type of filter rule", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv6_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" + ] }, - "port": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" + "prefix": { + "type": "string", + "description": "given prefix (does not change)" }, - "profile": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_profile" - }, - "bridge": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge" - } - } - } - }, - "examples": { - "400": { - "value": [ - { - "errorCode": "EQ-3142102", - "errorMessage": "Connection has duplicate buyer-side VLAN ID for port or the same VLAN ID is in the process of being deleted and should be freed up soon", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/linkProtocol" - } + "action": { + "type": "string", + "description": "change to be made", + "enum": [ + "PERMIT", + "DENY" ] + } + }, + "description": "Route Filter change operation data" + }, + "SimplifiedLocationWithoutIBX": { + "required": [ + "metroCode" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The Canonical URL at which the resource resides." }, - { - "errorCode": "EQ-3142535", - "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", - "details": "Please enter bandwidth less than the Speed limit on ServiceToken", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/serviceToken/uuid" - } - ] + "region": { + "type": "string", + "example": "AMER, APAC, EMEA" }, - { - "errorCode": "EQ-3142536", - "errorMessage": "Remote connection cannot be created with the provided ServiceToken", - "details": "Only local Connection can be created using this ServiceToken", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/port/uuid" - } - ] + "metroName": { + "type": "string", + "example": "Amsterdam" }, - { - "errorCode": "EQ-3142701", - "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", - "details": "not an authorized user", - "correlationId": "test" + "metroCode": { + "type": "string", + "example": "AM" + } + } + }, + "CloudRouterPackageType": { + "required": [ + "code" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Fabric Cloud Router URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" }, - { - "errorCode": "EQ-3142501", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "aSide/accessPoint/port/uuid" - } + "type": { + "type": "string", + "description": "Cloud Router package type", + "example": "ROUTER_PACKAGE", + "enum": [ + "ROUTER_PACKAGE" ] }, - { - "errorCode": "EQ-3142509", - "errorMessage": "Connection already deleted", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "uuid" - } + "code": { + "type": "string", + "description": "Cloud Router package code", + "example": "LAB", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] + } + }, + "description": "Fabric Cloud Router Package Type" + }, + "CloudRouterAccessPointState": { + "type": "string", + "description": "Access point lifecycle state", + "enum": [ + "PROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "DEPROVISIONED", + "LOCKED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "CloudRouterChange": { + "required": [ + "type", + "updatedDateTime" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" }, - { - "errorCode": "EQ-3142510", - "errorMessage": "Connection is in transient state", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "uuid" - } + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "ROUTER_UPDATE", + "ROUTER_PACKAGE_UPDATE" ] }, - { - "errorCode": "EQ-3142221", - "errorMessage": "The primary and secondary token provided have different bandwidth tiers. Please use two tokens that support the same bandwidth tiers", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } + "status": { + "type": "string", + "description": "Current outcome of the change flow", + "enum": [ + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - { - "errorCode": "EQ-3142222", - "errorMessage": "The primary and secondary tokens have different encapsulation types (Dot1Q or QinQ). Please use two tokens that support the same encapsulation type", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - { - "errorCode": "EQ-3142223", - "errorMessage": "The primary and secondary tokens belong to different projects. Please use two tokens that belong to the same project", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - { - "errorCode": "EQ-3142224", - "errorMessage": "The primary and secondary ports have different port speeds (bandwidth). Please use two tokens that support the same port speed", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "information": { + "type": "string", + "description": "Additional information" }, - { - "errorCode": "EQ-3142225", - "errorMessage": "The primary and secondary tokens provided are the same. Please provide a different token", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } + "data": { + "$ref": "#/components/schemas/CloudRouterChangeOperation" + } + }, + "description": "Current state of latest CloudRouter change" + }, + "CloudRouterChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" ] }, - { - "errorCode": "EQ-3142514", - "errorMessage": "Redundancy group is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/group" - } - ] + "path": { + "type": "string", + "description": "path inside document leading to updated parameter" }, - { - "errorCode": "EQ-3142515", - "errorMessage": "Redundancy priority is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] - }, - { - "errorCode": "EQ-3142516", - "errorMessage": "Invalid redundancy group", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/group" - } - ] - }, - { - "errorCode": "EQ-3142517", - "errorMessage": "Invalid redundancy priority", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Fabric Cloud Router change operation data" + }, + "CloudRouterActionType": { + "type": "string", + "description": "Cloud Router action type", + "enum": [ + "BGP_SESSION_STATUS_UPDATE", + "ROUTE_TABLE_ENTRY_UPDATE" + ] + }, + "RouteTableEntry": { + "required": [ + "changeLog", + "state", + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/RouteTableEntryType" }, - { - "errorCode": "EQ-3142303", - "errorMessage": "Only Primary connection allowed for this CSP", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] + "protocolType": { + "$ref": "#/components/schemas/RouteTableEntryProtocolType" }, - { - "errorCode": "EQ-3142320", - "errorMessage": "For redundant connection, Service Profile should be the same", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/profile/uuid" - } - ] + "state": { + "$ref": "#/components/schemas/RouteTableEntryState" }, - { - "errorCode": "EQ-3142021", - "errorMessage": "For redundant connection, Fabric Cloud Router should be the same", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "age": { + "type": "string", + "example": "PT5M30S" }, - { - "errorCode": "EQ-3142012", - "errorMessage": "Fabric Cloud Router is not in PROVISIONED state", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "prefix": { + "type": "string", + "example": "192.168.10.0/24" }, - { - "errorCode": "EQ-3142301", - "errorMessage": "Given profile does not exist", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/profile/uuid" - } - ] + "nextHop": { + "type": "string", + "example": "10.10.10.5" }, - { - "errorCode": "EQ-3142302", - "errorMessage": "Service provider does not exist in required zSide metro", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/location/metroCode" - } - ] + "metric": { + "type": "integer", + "example": 5 }, - { - "errorCode": "EQ-3142013", - "errorMessage": "Invalid metro for Cloud Router connection", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "localPreference": { + "type": "integer", + "example": 200 }, - { - "errorCode": "EQ-3142304", - "errorMessage": "Private connections are not allowed on public profiles", - "correlationId": "test", - "additionalInfo": [ - { - "property": "visibility" - } - ] + "asPath": { + "type": "array", + "items": { + "type": "integer" + } }, - { - "errorCode": "EQ-3142306", - "errorMessage": "Requested bandwidth is not supported by service profile", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/bandwidth" - } - ] + "connection": { + "$ref": "#/components/schemas/RouteTableEntry_connection" }, - { - "errorCode": "EQ-3142308", - "errorMessage": "Authentication key is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/authenticationKey" - } - ] + "changeLog": { + "$ref": "#/components/schemas/Changelog" } + }, + "description": "Route table entry object" + }, + "code": { + "type": "string", + "description": "Cloud Router package code", + "example": "LAB", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] }, - "401": { - "value": [ - { - "errorCode": "EQ-3000039", - "errorMessage": "User not found in request or invalid.", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515" + "PackageChangeLog": { + "type": "object", + "properties": { + "createdDateTime": { + "type": "string", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "updatedDateTime": { + "type": "string", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } - ] + }, + "description": "Cloud Router package change log" }, - "403": { - "value": [ - { - "errorCode": "EQ-3142402", - "errorMessage": "Do not have create connection permission on this port", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + "ApiServices": { + "type": "object", + "properties": { + "route": { + "type": "string", + "description": "service routes" + }, + "status": { + "type": "string", + "description": "service status" + }, + "changedDateTime": { + "type": "string", + "description": "service status change date" } + }, + "description": "Available services details" + }, + "NetworkType": { + "type": "string", + "description": "Network type", + "enum": [ + "EVPLAN", + "EPLAN", + "IPWAN" ] }, - "404": { - "value": [ - { - "errorCode": "EQ-3000036", - "errorMessage": "Requested path doesn't exists", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" - } + "NetworkScope": { + "type": "string", + "description": "Network scope", + "enum": [ + "REGIONAL", + "GLOBAL" ] }, - "405": { - "value": [ - { - "errorCode": "EQ-3142569", - "errorMessage": "Method not supported, Please check the URL passed", - "details": "Method:PATCH", - "correlationId": "f48687b0-d088-46d1-b06c-00c0688fbca9" - } + "NetworkState": { + "type": "string", + "description": "Network status", + "example": "ACTIVE", + "enum": [ + "ACTIVE", + "INACTIVE", + "DELETED" ] }, - "415": { - "value": [ - { - "errorCode": "EQ-3040016", - "errorMessage": "Unsupported media type, please check the request's Content-Type or Content-Encoding", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "contentType", - "reason": "The payload format is in an unsupported format" - } - ] + "SimplifiedNetworkChange": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "uuid": { + "type": "string", + "description": "Uniquely identifies a change", + "format": "uuid", + "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "type": { + "$ref": "#/components/schemas/NetworkChangeType" } - ] + }, + "description": "Current state of latest network change" }, - "500": { - "value": [ - { - "errorCode": "EQ-3034003", - "errorMessage": "Method not supported,Please check the URL passed", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "additionalInfo": [ - { - "reason": "method:PATCH" - } - ] + "NetworkOperation": { + "type": "object", + "properties": { + "equinixStatus": { + "$ref": "#/components/schemas/NetworkEquinixStatus" } - ] + }, + "description": "Network operational data" }, - "COLO2COLOwithDot1q-Dot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "Link": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Resource URI", + "format": "uri", + "readOnly": true }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a8ba52de-faae-43b5-b0b1-6904d37ee063" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "rel": { + "type": "string", + "description": "OperationId from Swagger hub spec" }, - "order": { - "purchaseOrderNumber": "po1234" + "method": { + "type": "string", + "description": "Http method type" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "contentType": { + "type": "string", + "description": "Content type for the response" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "authenticate": { + "type": "boolean", + "description": "Authentication required or not" + } } }, - "COLO2COLOwithDot1q-Dot1q-CRH": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "NetworkChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a867f685-41b0-1b07-6de0-320a5c00abdd" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/name" }, - "order": { - "purchaseOrderNumber": "po1234" + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Network change operation data" + }, + "NetworkSortCriteriaResponse": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/NetworkSortDirectionResponse" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "b067f685-49b0-1a09-6fe0-360a5d00afdg" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "property": { + "$ref": "#/components/schemas/NetworkSortByResponse" + } + } + }, + "NetworkChangeType": { + "type": "string", + "description": "Type of change", + "enum": [ + "NETWORK_CREATION", + "NETWORK_UPDATE", + "NETWORK_DELETION" + ] + }, + "NetworkChangeStatus": { + "type": "string", + "description": "Current outcome of the change flow", + "enum": [ + "APPROVED", + "COMPLETED", + "FAILED", + "REJECTED", + "REQUESTED", + "SUBMITTED_FOR_APPROVAL" + ] + }, + "fabricConnectionUuid": { + "title": "fabricConnectionUuid", + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "uuid of the Fabric L2 connection", + "format": "uuid" }, - "project": { - "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + "href": { + "type": "string", + "description": "the href for the L2 connection", + "format": "uri" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "type": { + "type": "string" + } + }, + "description": "UUID of the Fabric Connection Instance", + "example": { + "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } }, - "COLO2COLOwithDot1Q-QinQ": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "ipv4": { + "title": "ipv4", + "type": "object", + "properties": { + "primary": { + "type": "string", + "format": "ipv4" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "secondary": { + "type": "string", + "format": "ipv4" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1002 - } - } + "networkMask": { + "type": "string", + "format": "ipv4" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "defaultGateway": { + "type": "string", + "format": "ipv4" + } + }, + "description": "EPT service network information", + "example": { + "primary": "10.0.0.1", + "secondary": "10.0.0.2", + "networkMask": "255.255.255.240", + "defaultGateway": "10.0.0.3" } }, - "COLO2COLOwithQinq-Qinq": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001 - } - } + "account": { + "required": [ + "accountNumber" + ], + "type": "object", + "properties": { + "accountNumber": { + "type": "integer" }, - "order": { - "purchaseOrderNumber": "po1234" + "isResellerAccount": { + "type": "boolean" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001 - } - } + "orgId": { + "type": "string" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "globalOrgId": { + "type": "string" + } + }, + "description": "Account model, includes account number and flag to indicate if this account is reseller", + "example": { + "accountNumber": 123456 } }, - "COLO2COLOwithQinq-Dot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1125 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "advanceConfiguration": { + "type": "object", + "properties": { + "ntp": { + "$ref": "#/components/schemas/ntpAdvanceConfiguration" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ptp": { + "$ref": "#/components/schemas/ptpAdvanceConfiguration" + } + }, + "description": "Advance Configuration for NTP/PTP" + }, + "packageRequest": { + "title": "package", + "required": [ + "code" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "code": { + "type": "string", + "enum": [ + "NTP_STANDARD", + "NTP_ENTERPRISE", + "PTP_STANDARD", + "PTP_ENTERPRISE" + ] + } + }, + "description": "EPT Package Request", + "example": { + "code": "NTP_STANDARD" } }, - "COLO2COLO-AsReseller": { - "value": { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" + "ConnectionPriority": { + "type": "string", + "description": "Connection priority in redundancy group", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + }, + "AccessPoint": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AccessPointType" }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1002, - "vlanCTag": 1001 - } - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2COLO-EPL": { - "value": { - "type": "EPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" + "port": { + "$ref": "#/components/schemas/SimplifiedPort" }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - } + "profile": { + "$ref": "#/components/schemas/SimplifiedServiceProfile" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2COLO-AccessEpl": { - "value": { - "type": "ACCESS_EPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1234 - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - } - } + "router": { + "$ref": "#/components/schemas/CloudRouter" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2SPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "linkProtocol": { + "$ref": "#/components/schemas/SimplifiedLinkProtocol" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "virtualDevice": { + "$ref": "#/components/schemas/VirtualDevice" }, - "order": { - "purchaseOrderNumber": "po1234" + "interface": { + "$ref": "#/components/schemas/Interface" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - } - } + "network": { + "$ref": "#/components/schemas/SimplifiedNetwork" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } - }, - "COLO2AlibabaSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "sellerRegion": { + "type": "string", + "description": "Access point seller region" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "peeringType": { + "$ref": "#/components/schemas/PeeringType" }, - "order": { - "purchaseOrderNumber": "po1234" + "authenticationKey": { + "type": "string", + "description": "Access point authentication key" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "SV" - }, - "sellerRegion": "San Jose 2", - "authenticationKey": "xxx-xxx-xxx" - } + "providerConnectionId": { + "type": "string", + "description": "Provider assigned Connection Id" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "virtualNetwork": { + "$ref": "#/components/schemas/VirtualNetwork" + } + }, + "description": "Access point object" }, - "COLO2AWSSPwithDot1q-Primary": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Aws", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "ConnectionCompanyProfile": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "company profile identifier", + "example": 1 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-east-1", - "authenticationKey": "xxx-xxx-xxx" - } + "name": { + "type": "string", + "description": "company profile name", + "example": "Company-1" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "globalOrgId": { + "type": "string", + "description": "global customer organization value" + } + }, + "description": "Connection Company Profile Details" }, - "COLO2AWSSPwithDot1q-Secondary": { - "value": { - "type": "EVPL_VC", - "name": "Secondary-Aws", - "bandwidth": 1000, - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ConnectionInvitation": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "invitee email", + "example": "test@equinix.com" }, - "order": { - "purchaseOrderNumber": "po1234" + "message": { + "type": "string", + "description": "invitation message", + "example": "Hello, Please accept my invitation" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-east-1", - "authenticationKey": "xxx-xxx-xxx" - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] + "ctrDraftOrderId": { + "type": "string", + "description": "draft order id for invitation" + } + }, + "description": "Connection Invitation Details" + }, + "ProviderStatus": { + "type": "string", + "description": "Connection provider readiness status", + "enum": [ + "AVAILABLE", + "DEPROVISIONED", + "DEPROVISIONING", + "FAILED", + "NOT_AVAILABLE", + "PENDING_APPROVAL", + "PROVISIONED", + "PROVISIONING", + "REJECTED", + "PENDING_BGP", + "OUT_OF_BANDWIDTH", + "DELETED", + "ERROR", + "ERRORED", + "NOTPROVISIONED", + "NOT_PROVISIONED", + "ORDERING", + "DELETING", + "PENDING DELETE", + "N/A" + ] + }, + "EquinixStatus": { + "type": "string", + "description": "Connection status", + "enum": [ + "REJECTED_ACK", + "REJECTED", + "PENDING_DELETE", + "PROVISIONED", + "BEING_REPROVISIONED", + "BEING_DEPROVISIONED", + "BEING_PROVISIONED", + "CREATED", + "ERRORED", + "PENDING_DEPROVISIONING", + "APPROVED", + "ORDERING", + "PENDING_APPROVAL", + "NOT_PROVISIONED", + "DEPROVISIONING", + "NOT_DEPROVISIONED", + "PENDING_AUTO_APPROVAL", + "PROVISIONING", + "PENDING_BGP_PEERING", + "PENDING_PROVIDER_VLAN", + "DEPROVISIONED", + "DELETED", + "PENDING_BANDWIDTH_APPROVAL", + "AUTO_APPROVAL_FAILED", + "UPDATE_PENDING", + "DELETED_API", + "MODIFIED", + "PENDING_PROVIDER_VLAN_ERROR", + "DRAFT", + "CANCELLED", + "PENDING_INTERFACE_CONFIGURATION" + ] + }, + "RoutingProtocolOperation": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Error" } - ] + } } }, - "COLO2AzureSPwithDot1q-Primary": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Azure", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ProductType": { + "type": "string", + "description": "Product type", + "enum": [ + "VIRTUAL_CONNECTION_PRODUCT", + "IP_BLOCK_PRODUCT", + "VIRTUAL_PORT_PRODUCT", + "CLOUD_ROUTER_PRODUCT" + ] + }, + "PriceCharge": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Price charge type", + "enum": [ + "MONTHLY_RECURRING", + "NON_RECURRING" + ] }, - "order": { - "purchaseOrderNumber": "po1234" + "price": { + "minimum": 0, + "type": "number", + "description": "Offering price", + "format": "double" + } + }, + "description": "Price Charge" + }, + "PriceCategory": { + "type": "string", + "description": "Price category", + "enum": [ + "COUNTRY", + "CUSTOMER" + ] + }, + "VirtualConnectionPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Either uuid or rest of attributes are required", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "linkProtocol": { - "type": "QINQ", - "vlanCTag": 1234 - }, - "peeringType": "MICROSOFT", - "authenticationKey": "xxx-xxx-xxx" - } + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceConnectionType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } - }, - "COLO2AzureSPwithQinq-Secondary": { - "value": { - "type": "EVPL_VC", - "name": "Secondary-Azure", - "bandwidth": 1000, - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "SECONDARY" + "bandwidth": { + "minimum": 0, + "type": "integer" }, "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1002 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "$ref": "#/components/schemas/VirtualConnectionPriceASide" }, "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx" - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "$ref": "#/components/schemas/VirtualConnectionPriceZSide" + } + }, + "description": "Virtual Connection Product configuration" }, - "COLO2GoogleSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "IpBlockPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Either uuid or rest of attributes are required", + "format": "uuid" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "type": { + "$ref": "#/components/schemas/IpBlockType" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x" - } + "prefixLength": { + "type": "integer" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "location": { + "$ref": "#/components/schemas/PriceLocation" + } + }, + "description": "IP Block Product configuration" }, - "COLO2IBM_1": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "FabricCloudRouterPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique identifier assigned to the Cloud Router", + "format": "uuid" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "order": { - "purchaseOrderNumber": "po1234" + "package": { + "$ref": "#/components/schemas/FabricCloudRouterPackages" + } + }, + "description": "Cloud Router Product configuration" + }, + "VirtualPortPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique identifier assigned to the virtual port. Either the uuid or the remaining attributes must be supplied.", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx", - "sellerRegion": "San Jose 2" - } + "type": { + "$ref": "#/components/schemas/VirtualPortType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ], - "additionalInfo": [ - { - "key": "ASN", - "value": 1234 - }, - { - "key": "Global", - "value": false - } - ] - } - }, - "COLO2IBM_2": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "location": { + "$ref": "#/components/schemas/VirtualPortLocation" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "lag": { + "$ref": "#/components/schemas/LinkAggregationGroup" }, - "order": { - "purchaseOrderNumber": "po1234" + "physicalPortsQuantity": { + "type": "integer", + "description": "Number of physical ports requested. The defaults is 1.", + "default": 1 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx", - "sellerRegion": "San Jose 2" - } + "bandwidth": { + "type": "integer", + "description": "Aggregated data transfer capacity, expressed as follows
-> Mbps, megabits (1 million bits) per second
-> Gbps, gigabits (1 billion bits) per second
Bandwidth must be divisible by physicalPortsQuantity." }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ], - "additionalInfo": [ - { - "key": "ASN", - "value": 1234 - }, - { - "key": "Global", - "value": false - }, - { - "key": "BGP_IBM_CIDR", - "value": "172.16.0.18/30" - }, - { - "key": "BGP_CER_CIDR", - "value": "172.16.0.19/30" - } - ] - } - }, - "COLO2OracleSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "$ref": "#/components/schemas/VirtualPortRedundancy" }, - "order": { - "purchaseOrderNumber": "po1234" + "connectivitySource": { + "$ref": "#/components/schemas/ConnectivitySource" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-ashburn-1", - "authenticationKey": "xxx-xxx-xxx" - } + "serviceType": { + "$ref": "#/components/schemas/VirtualPortServiceType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] + "settings": { + "$ref": "#/components/schemas/VirtualPortConfiguration" + } + }, + "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." + }, + "ServiceTokenSide": { + "type": "object", + "properties": { + "accessPointSelectors": { + "type": "array", + "description": "List of AccessPointSelectors", + "items": { + "$ref": "#/components/schemas/AccessPointSelector" } - ] - } + } + }, + "description": "Connection link protocol configuration" }, - "COLO2ServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "m167f685-41b0-1b07-6de0-320a5c00abeu", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "serviceToken": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - } + "PortDeviceRedundancy": { + "type": "object", + "properties": { + "group": { + "type": "string", + "description": "Device redundancy group" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "priority": { + "type": "string", + "description": "Device redundancy priority", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + } + }, + "description": "Device redundancy" }, - "COLO2NETWORKwithDot1q": { - "value": { - "type": "EVPLAN_VC", - "name": "MY-EVPLAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } - }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "PortPriority": { + "type": "string", + "description": "Port priority in redundancy group", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + }, + "LinkProtocolState": { + "type": "string", + "description": "Network status", + "enum": [ + "RESERVED", + "RELEASED" + ] + }, + "LinkProtocolRequestType": { + "type": "string", + "description": "Type of Link Protocol", + "enum": [ + "UNTAGGED", + "DOT1Q", + "QINQ", + "EVPN_VXLAN", + "UNTAGGEDEPL" + ] + }, + "SubInterface": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "type of connection vlan", + "enum": [ + "VNI", + "VXLAN", + "VLAN" + ] }, - "project": { - "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + "name": { + "type": "string", + "description": "name of subinterafce of a port" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "unit": { + "type": "integer", + "example": 200 + } + }, + "description": "Sub Interface information" }, - "COLO2NETWORKwithEPL": { - "value": { - "type": "EPLAN_VC", - "name": "MY-EPLAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" - } - } + "AdditionalInfo": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key" }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } + "value": { + "type": "string", + "description": "Value" + } + }, + "description": "Additional information" + }, + "LinkProtocolConnection": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Connection URI", + "format": "uri", + "readOnly": true }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "uuid": { + "type": "string", + "format": "string", + "example": "cd67f685-41b0-1b07-6de0-320a5c00abe" }, - "project": { - "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + "type": { + "type": "string", + "example": "EVPL_VC" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "bandwidth": { + "type": "integer", + "format": "int64", + "example": 100 + } + }, + "description": "Connection details of Link Protocol" }, - "Vd2Sp-Primary": { - "value": { - "type": "EVPL_VC", - "bandwidth": 50, - "name": "Network Device to SP", - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "LinkProtocolServiceToken": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Service Token URI", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west-1" - } + "uuid": { + "type": "string", + "format": "uuid", + "example": "cd67f685-41b0-1b07-6de0-0320a5c00abe" }, - "order": { - "purchaseOrderNumber": "1-323292" + "type": { + "type": "string", + "example": "TOKEN" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] + "bandwidth": { + "type": "integer", + "format": "int64", + "example": 1000 + } + }, + "description": "Service Token details of Link Protocol" + }, + "RouteTableEntryType": { + "type": "string", + "description": "Route table entry type", + "enum": [ + "IPv4_BGP_ROUTE", + "IPv4_STATIC_ROUTE", + "IPv4_DIRECT_ROUTE", + "IPv6_BGP_ROUTE", + "IPv6_STATIC_ROUTE", + "IPv6_DIRECT_ROUTE" + ] + }, + "RouteTableEntryProtocolType": { + "type": "string", + "description": "Route table entry protocol type", + "enum": [ + "BGP", + "STATIC", + "DIRECT" + ] + }, + "RouteTableEntryState": { + "type": "string", + "description": "Route table entry state", + "enum": [ + "ACTIVE" + ] + }, + "NetworkEquinixStatus": { + "type": "string", + "description": "Network status", + "enum": [ + "PROVISIONING", + "PROVISIONED", + "NOT_PROVISIONED", + "DEPROVISIONING", + "DEPROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "NetworkSortDirectionResponse": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "NetworkSortByResponse": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/name", + "/type", + "/uuid", + "/state", + "/scope", + "/location/region", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" + ] + }, + "ntpAdvanceConfiguration": { + "type": "array", + "items": { + "$ref": "#/components/schemas/md5" } }, - "Vd2Sp-Secondary": { - "value": { - "type": "EVPL_VC", - "bandwidth": 50, - "name": "Network Device to SP", - "redundancy": { - "group": "777ca05d-4ae7-4ee9-9456-3ca49500428c", - "priority": "SECONDARY" + "ptpAdvanceConfiguration": { + "type": "object", + "properties": { + "timeScale": { + "type": "string", + "description": "Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol.", + "example": "ARB", + "enum": [ + "ARB", + "PTP" + ] }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "domain": { + "maximum": 127, + "minimum": 0, + "type": "integer", + "example": 0 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west-1" - } + "priority1": { + "maximum": 248, + "minimum": 0, + "type": "integer", + "example": 0 }, - "order": { - "purchaseOrderNumber": "1-323292" + "priority2": { + "maximum": 248, + "minimum": 0, + "type": "integer", + "example": 0 }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2Colo": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "logAnnounceInterval": { + "type": "integer", + "description": "The mean time interval between Announce messages. A shorter interval makes ptp4l react faster to the changes in the master-slave hierarchy. The interval should be the same in the whole domain. It's specified as a power of two in seconds. The default is 1 (2 seconds).", + "example": 0 }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } + "logSyncInterval": { + "type": "integer", + "description": "The mean time interval between Sync messages. A shorter interval may improve accuracy of the local clock. It's specified as a power of two in seconds. The default is 0 (1 second).", + "example": 0 }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "logDelayReqInterval": { + "type": "integer", + "example": 0 }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] + "transportMode": { + "type": "string", + "enum": [ + "Multicast", + "Unicast", + "Hybrid" + ] + }, + "grantTime": { + "maximum": 7200, + "minimum": 30, + "type": "integer", + "description": "Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200.", + "example": 300 + } } }, - "Vd2ColoVlanTag": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "AccessPointType": { + "type": "string", + "description": "Access point type", + "enum": [ + "VD", + "VG", + "SP", + "IGW", + "COLO", + "SUBNET", + "CLOUD_ROUTER", + "NETWORK", + "METAL_NETWORK" + ] + }, + "SimplifiedPort": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PortType" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTagMin": 300, - "vlanTagMax": 1099 - } - } + "id": { + "type": "integer", + "description": "Equinix assigned response attribute for Port Id" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "href": { + "type": "string", + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2Colo-VlanCTag": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "uuid": { + "type": "string", + "description": "Equinix assigned response attribute for port identifier", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 300, - "vlanCTagMin": 100, - "vlanCTagMax": 109 - } - } + "name": { + "type": "string", + "description": "Equinix assigned response attribute for Port name" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "description": { + "type": "string", + "description": "Equinix assigned response attribute for Port description" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2ColoUntagged": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to SP", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "physicalPortsSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Ports Speed in Mbps" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "UNTAGGED" - } - } + "connectionsCount": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Connection count" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "project": { + "$ref": "#/components/schemas/Project" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2ServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Token", - "order": { - "purchaseOrderNumber": "1-129105284100" + "state": { + "$ref": "#/components/schemas/PortState" }, - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "cvpId": { + "type": "string", + "description": "Equinix assigned response attribute for Unique ID for a virtual port." }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "operation": { + "$ref": "#/components/schemas/PortOperation" }, - "zSide": { - "serviceToken": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Colo": { - "value": { - "type": "IP_VC", - "name": "My-FCR-Connection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "serviceType": { + "type": "string", + "description": "Port service Type", + "enum": [ + "EPL", + "MSP" + ] }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "7b6481b8-1c4a-11ec-9621-0242ac130002" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "bandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port bandwidth in Mbps" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "availableBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" }, - "project": { - "projectId": "567" + "usedBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Google": { - "value": { - "type": "IP_VC", - "name": "My-FCR-GCPConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west1", - "location": { - "metroCode": "SV" - } - } + "device": { + "$ref": "#/components/schemas/PortDevice" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "interface": { + "$ref": "#/components/schemas/PortInterface" }, - "project": { - "projectId": "567" + "tether": { + "$ref": "#/components/schemas/PortTether" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Azure": { - "value": { - "type": "IP_VC", - "name": "My-FCR-AzureConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "authenticationKey": "xx-xx-xx", - "location": { - "metroCode": "SV" - }, - "peeringType": "PRIVATE" - } + "redundancy": { + "$ref": "#/components/schemas/PortRedundancy" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "encapsulation": { + "$ref": "#/components/schemas/PortEncapsulation" }, - "project": { - "projectId": "567" + "lagEnabled": { + "type": "boolean", + "description": "If LAG enabled" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Generic": { - "value": { - "type": "IP_VC", - "name": "My-FCR-GenericConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } + "settings": { + "$ref": "#/components/schemas/PortSettings" + }, + "physicalPortQuantity": { + "type": "integer", + "description": "Number of physical ports" + }, + "additionalInfo": { + "type": "array", + "description": "Port additional information", + "items": { + "$ref": "#/components/schemas/PortAdditionalInfo" } }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } + "physicalPorts": { + "type": "array", + "description": "Physical ports that implement this port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" } + } + }, + "description": "Port specification" + }, + "SimplifiedLinkProtocol": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "vlanTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanTag value specified for DOT1Q connections" }, - "project": { - "projectId": "567" + "vlanSTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanSTag value specified for QINQ connections" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "vlanCTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanCTag value specified for QINQ connections" + } + }, + "description": "Connection link protocol Configuration" }, - "Fcr2Sp-Generic-Redundant-Secondary": { - "value": { - "type": "IP_VC", - "name": "FCR_to_RedSP_Secondary", - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "VirtualDevice": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Virtual Device URI", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned Virtual Device identifier", + "format": "uuid" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "name": { + "type": "string", + "description": "Customer-assigned Virtual Device name" }, - "project": { - "projectId": "567" + "type": { + "type": "string", + "description": "Virtual Device type", + "enum": [ + "EDGE" + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + } + }, + "description": "Virtual Device AccessPoint Information" }, - "Fcr2Sp-Generic-Redundant-Primary": { - "value": { - "type": "IP_VC", - "name": "FCR_to_RedSP_Primary-Re-add", - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + "Interface": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Interface URI", + "format": "uri", + "readOnly": true }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned Interface identifier", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "id": { + "type": "integer", + "description": "Interface id" }, - "project": { - "projectId": "567" + "type": { + "type": "string", + "description": "Interface type", + "enum": [ + "CLOUD", + "NETWORK" + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "projectId": { + "type": "string", + "description": "Interface Project ID" + } + }, + "description": "Interface Information" }, - "Fcr2Sp-Aws": { - "value": { - "type": "IP_VC", - "name": "My-FCR-AWSConnection", - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "SimplifiedNetwork": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - }, - "sellerRegion": "us-west-1", - "authenticationKey": "xx-xx-xx" - } + "name": { + "type": "string", + "description": "Customer-assigned network name", + "example": "My EVPLAN Network" }, - "project": { - "projectId": "567" + "state": { + "$ref": "#/components/schemas/NetworkState" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Oracle": { - "value": { - "type": "IP_VC", - "name": "My-FCR-OracleConnection", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "change": { + "$ref": "#/components/schemas/SimplifiedNetworkChange" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-ashburn-1", - "authenticationKey": "xx-xx-xx" - } + "operation": { + "$ref": "#/components/schemas/NetworkOperation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "project": { - "projectId": "567" - } - } - }, - "Fcr2Vd": { - "value": { - "type": "IP_VC", - "name": "My-GW-VDConnection", - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "changeLog": { + "$ref": "#/components/schemas/Changelog" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } + "links": { + "type": "array", + "description": "Network sub-resources links", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/Link" } }, - "zSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "type": { + "$ref": "#/components/schemas/NetworkType" }, - "project": { - "projectId": "567" + "scope": { + "$ref": "#/components/schemas/NetworkScope" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + } + }, + "description": "Network specification" }, - "Fcr2IpWan": { - "value": { - "type": "IPWAN_VC", - "name": "MY-IPWAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } - }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "project": { - "projectId": 123 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "PeeringType": { + "type": "string", + "description": "Access point peering type", + "enum": [ + "PRIVATE", + "MICROSOFT", + "PUBLIC", + "MANUAL" + ] }, - "AsideServiceToken2PortWithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "Aside-token", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } + "VirtualNetwork": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The Canonical URL at which the resource resides.", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "location": { - "metroCode": "SV" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "uuid": { + "type": "string", + "description": "Equinix-assigned Virtual Network identifier", + "format": "uuid" + } + }, + "description": "Virtual Network Information" + }, + "VirtualConnectionPriceConnectionType": { + "type": "string", + "description": "Virtual Connection type", + "enum": [ + "EVPL_VC", + "EPL_VC", + "EC_VC", + "IP_VC", + "VD_CHAIN_VC", + "ACCESS_EPL_VC", + "EVPLAN_VC", + "EPLAN_VC", + "IPWAN_VC" + ] + }, + "VirtualConnectionPriceASide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint" + } } }, - "AsideServiceToken2PortWithQinq": { - "value": { - "type": "EVPL_VC", - "name": "Aside-Token", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "location": { - "metroCode": "SV" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "VirtualConnectionPriceZSide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint" + } } }, - "AsideServiceToken2PrivateSP-NE": { - "value": { - "type": "EVPL_VC", - "name": "Token2PrivateSP-NE", - "bandwidth": 50, - "redundancy": { - "priority": "PRIMARY" + "IpBlockType": { + "type": "string", + "description": "IP Block type", + "enum": [ + "IPv4", + "IPv6" + ] + }, + "PriceLocation": { + "type": "object", + "properties": { + "metroCode": { + "type": "string" + } + } + }, + "FabricCloudRouterPackages": { + "type": "object", + "properties": { + "code": { + "$ref": "#/components/schemas/FabricCloudRouterCode" + } + }, + "description": "Cloud Router package" + }, + "VirtualPortType": { + "type": "string", + "description": "Port type.", + "enum": [ + "XF_PORT" + ] + }, + "VirtualPortLocation": { + "type": "object", + "properties": { + "ibx": { + "type": "string", + "description": "Code assigned to the Equinix International Business Exchange (IBX) data center from which the port is ordered.
The port might be in a different location." + } + }, + "description": "Geographic data for the port." + }, + "LinkAggregationGroup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Parameter showing whether LAG configuration is mandatory. The default is false.", + "default": false + } + }, + "description": "Link aggregation group (LAG) preferences and settings." + }, + "VirtualPortRedundancy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Parameter showing whether redundancy is mandatory. The default is false.", + "default": false + } + }, + "description": "Specifications for redundant connections, which improve service continuity by routing traffic to secondary ports when primary ports are unavailable.
Redundancy increases resilience and boosts site reliability scores." + }, + "ConnectivitySource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectivitySourceType" + } + }, + "description": "Physical or virtual port that houses the connection." + }, + "VirtualPortServiceType": { + "type": "string", + "description": "Port service type. The default is managed-service provider (MSP).", + "default": "MSP", + "enum": [ + "MSP", + "EPL" + ] + }, + "VirtualPortConfiguration": { + "type": "object", + "properties": { + "buyout": { + "type": "boolean", + "description": "Buyout (true) or standard (false) configuration of the port at this access point.
Buyout ports offer free, unlimited connections. Standard ports do not. The default is false.", + "default": false + } + }, + "description": "Port configuration." + }, + "AccessPointSelector": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of Access point", + "enum": [ + "COLO" + ] }, - "order": { - "purchaseOrderNumber": "po1234" + "port": { + "$ref": "#/components/schemas/SimplifiedMetadataEntity" }, - "aSide": { - "serviceToken": { - "uuid": "41a9e1ef-18bb-485b-a9b3-99801ac03684" - } + "linkProtocol": { + "$ref": "#/components/schemas/LinkProtocol" + } + }, + "description": "List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability." + }, + "md5": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ASCII", + "HEX" + ] }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } + "id": { + "type": "string" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "password": { + "type": "string" + } } }, - "AsideServiceToken2ZsideServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Aside to zside token connection", - "bandwidth": 50, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - }, - "zSide": { - "serviceToken": { - "uuid": "4f9c5438-90eb-4295-b109-7754119a1e8d" - } + "LinkProtocolType": { + "type": "string", + "description": "Type of Link Protocol", + "enum": [ + "UNTAGGED", + "DOT1Q", + "QINQ", + "EVPN_VXLAN", + "VXLAN" + ] + }, + "VirtualConnectionPriceAccessPointType": { + "type": "string", + "description": "Virtual Connection access point type", + "enum": [ + "VD", + "SP", + "COLO", + "CLOUD_ROUTER", + "CHAINGROUP", + "NETWORK" + ] + }, + "VirtualConnectionBridgePackageCode": { + "type": "string", + "description": "Virtual Connection bridge package code", + "enum": [ + "REGIONAL", + "GLOBAL" + ] + }, + "FabricCloudRouterCode": { + "type": "string", + "description": "Cloud Router code", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" + ] + }, + "ConnectivitySourceType": { + "type": "string", + "description": "Type of connectivity. COLO, colocation; BMMR, building meet-me room. The default is COLO.
A building meet-me room (BMMR) is a room within the same building where an Equinix IBX customer can connect with a non-Equinix IBX customer.", + "default": "COLO", + "enum": [ + "COLO", + "BMMR", + "REMOTE" + ] + }, + "SimplifiedMetadataEntity": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "url to entity", + "format": "uri" }, - "order": { - "purchaseOrderNumber": "po1234" + "uuid": { + "type": "string", + "description": "Equinix assigned Identifier", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "type": { + "type": "string", + "description": "Type of Port" + } + }, + "description": "Configuration details for port used at the access point." }, - "ConnectionExample": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", - "type": "EVPL_VC", - "uuid": "3a58dd05-f46d-4b1d-a154-2e85c396ea62", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "direction": "OUTGOING", - "isRemote": true, - "state": "ACTIVE", - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "PRIMARY" + "LinkProtocol": { + "required": [ + "type" + ], + "type": "object", + "description": "Connection link protocol Configuration", + "discriminator": { + "propertyName": "type", + "mapping": { + "UNTAGGED": "#/components/schemas/LinkProtocolUntagged", + "DOT1Q": "#/components/schemas/LinkProtocolDot1q", + "QINQ": "#/components/schemas/LinkProtocolQinq", + "VXLAN": "#/components/schemas/LinkProtocolVxlan", + "EVPN_VXLAN": "#/components/schemas/LinkProtocolEvpnVxlan" + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/LinkProtocolUntagged" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + { + "$ref": "#/components/schemas/LinkProtocolDot1q" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/MX", - "metroCode": "MX" - } - } + { + "$ref": "#/components/schemas/LinkProtocolQinq" }, - "operation": { - "providerStatus": "AVAILABLE", - "equinixStatus": "PROVISIONED" + { + "$ref": "#/components/schemas/LinkProtocolVxlan" }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + { + "$ref": "#/components/schemas/LinkProtocolEvpnVxlan" } - } + ] }, - "Vd2Sp-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to SP", - "bandwidth": 50, - "state": "ACTIVE", - "account": { - "accountNumber": 201246, - "orgId": 92610 + "LinkProtocolUntagged": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" + "ipv4": { + "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "ipv6": { + "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + } + }, + "description": "Connection link protocol configuration - UNTAGGED" + }, + "LinkProtocolDot1q": { + "required": [ + "vlanTag" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "zSide": { - "accessPoint": { - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/95542b34-cf1c-41aa-89f7-590946f9df53", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53", - "type": "L2_PROFILE" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - } - } + "tagProtocolId": { + "type": "string", + "description": "Tag protocol identifier" }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" + "vlanTag": { + "type": "string", + "description": "VLAN tag" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PENDING_APPROVAL", - "providerStatus": "NOT_AVAILABLE" + "vlanTagMin": { + "type": "integer", + "description": "VLAN tag Min value specified for DOT1Q connections" }, - "changeLog": { - "createdDateTime": "2022-10-05T19:37:12.748Z" - } - } + "vlanTagMax": { + "type": "integer", + "description": "VLAN tag Max value specified for DOT1Q connections" + } + }, + "description": "Connection link protocol configuration - DOT1Q" }, - "Vd2ServiceToken_Response": { - "value": { - "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", - "type": "EVPL_VC", - "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", - "name": "Test ST", - "state": "ACTIVE", - "account": { - "accountNumber": 270235, - "orgId": 92794, - "globalOrgId": "0016u000003JZ55AAG" + "LinkProtocolQinq": { + "required": [ + "innerTagProtocolId", + "outerTagProtocolId", + "vlanCTag", + "vlanSTag" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "bandwidth": 50, - "redundancy": { - "group": "b64dad2a-2763-4084-bc50-b36ef4f67137", - "priority": "PRIMARY" + "innerTagProtocolId": { + "type": "integer", + "description": "Inner tag protocol identifier" }, - "isRemote": true, - "direction": "INTERNAL", - "aSide": { - "accessPoint": { - "interface": { - "uuid": "11fd6067-149f-4142-a5b4-54a8dd6f53fe", - "id": 6, - "type": "CLOUD" - }, - "type": "VD", - "account": { - "accountNumber": 270217, - "organizationName": "test" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", - "region": "AMER", - "metroName": "Ashburn", - "metroCode": "DC" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1720 - }, - "virtualDevice": { - "href": "https://api.equinix.com/ne/v1/devices/3539f96c-7f67-4696-90f3-7b6d2fdcde5f", - "uuid": "3539f96c-7f67-4696-90f3-7b6d2fdcde5f", - "name": "testing1234", - "type": "EDGE" - } - } + "outerTagProtocolId": { + "type": "integer", + "description": "Outer tag protocol identifier" }, - "zSide": { - "serviceToken": { - "uuid": "e05f4f23-d098-4d7c-a9ca-c2897b465107", - "account": { - "orgId": 22222 - } - }, - "accessPoint": { - "type": "COLO", - "account": { - "accountNumber": 22222, - "organizationName": "xxxxx" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", - "region": "AMER", - "metroName": "Ashburn", - "metroCode": "DC" - }, - "port": { - "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", - "uuid": "c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", - "name": "testNEuser2-DC6-NL-Dot1q-STD-SEC-10G-JN-216" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 553 - } - } + "vlanCTag": { + "type": "integer", + "description": "Inner tag, i.e., C-VLAN tag" }, - "changeLog": { - "createdBy": "test", - "createdDateTime": "2022-10-05T19:37:12.748Z", - "updatedBy": "test", - "updatedDateTime": "2022-10-05T19:37:12.748Z" + "vlanSTag": { + "type": "integer", + "description": "Outer tag, i.e., S-VLAN tag" }, - "operation": { - "providerStatus": "AVAILABLE", - "equinixStatus": "PROVISIONED" + "vlanCTagMin": { + "type": "integer", + "description": "Outer tag Min value specified for QINQ connections" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ] - } + "vlanCTagMax": { + "type": "integer", + "description": "Outer tag Max value specified for QINQ connections" + }, + "subInterface": { + "type": "integer", + "description": "Subinterface identifier" + } + }, + "description": "Connection link protocol configuration - QINQ" }, - "Vd2Colo-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to COLO", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" + "LinkProtocolVxlan": { + "required": [ + "vni" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" + "vni": { + "maximum": 16777215, + "minimum": 4097, + "type": "integer", + "description": "Virtual Network Identifier" + } + }, + "description": "Connection link protocol configuration - VXLAN" + }, + "LinkProtocolEvpnVxlan": { + "required": [ + "type5vni", + "vnid" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" + "vnid": { + "maximum": 40000, + "minimum": 20001, + "type": "integer", + "description": "Virtual Network Identifier" }, - "account": { - "accountNumber": 201246, - "orgId": 92610 + "type5vni": { + "type": "integer", + "description": "Type 5 VNI identifier" + } + }, + "description": "Connection link protocol configuration - EVPN_VXLAN" + }, + "LinkProtocolIpv4Ipv6Config": { + "type": "object", + "properties": { + "linkPrefix": { + "type": "string", + "description": "Link subnet prefix" }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229Z" + "localIfaceIp": { + "type": "string", + "description": "Prefix datatype when linkPrefix not specified" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "remoteIfaceIp": { + "type": "string", + "description": "Equinix-side link interface address" + } + }, + "description": "IPv4 or IPv6 specific configuration" + }, + "PriceError_additionalInfo": { + "type": "object", + "properties": { + "property": { + "type": "string" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } + "reason": { + "type": "string" } } }, - "Vd2Colo-VlanTagResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to COLO", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" - }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" - }, - "account": { - "accountNumber": 201246, - "orgId": 92610 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" - }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229" + "ValidateRequest_filter_and": { + "properties": { + "property": { + "type": "string", + "description": "Path to property" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f88", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTagMin": 300, - "vlanTagMax": 1099 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "operator": { + "type": "string", + "description": "Type of operation" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } + "values": { + "type": "array", + "description": "Values for the given property", + "items": { + "type": "string" } } } }, - "Vd2ColoUntagged-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to SP", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" - }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" - }, - "account": { - "accountNumber": 201246, - "orgId": 92610 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" - }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229Z" - }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "UNTAGGED" - } + "ValidateRequest_filter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidateRequest_filter_and" } } - } + }, + "description": "Filters" }, - "Fcr2Sp-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IP_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "GP_FG2GCP_001", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" + "PortOrder_purchaseOrder": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "purchase order number" }, - "order": { - "billingTier": "Up to 50 MB" + "amount": { + "type": "string", + "description": "purchase order amount" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "name": "My-FG-1" - } - } + "startDate": { + "type": "string", + "format": "datetime" }, - "zSide": { - "accessPoint": { - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/c7922adf-34b5-4d4e-a87c-cae8c899ef90", - "uuid": "c7922adf-34b5-4d4e-a87c-cae8c899ef90", - "name": "Google Cloud Partner Interconnect Zone 2", - "type": "L2_PROFILE" - }, - "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x", - "sellerRegion": "us-west1", - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - } - } + "endDate": { + "type": "string", + "format": "datetime" }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "PROVISIONING" + "attachmentId": { + "type": "string", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "selectionType": { + "type": "string", + "enum": [ + "EXEMPTION", + "EXISTING", + "NEW", + "BLANKET" + ] } - } + }, + "description": "purchase order" }, - "Fcr2Colo-ResponseExample": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IP_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "GP_FG2COLO_001", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" + "PortOrder_signature_delegate": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "name of delegate" }, - "order": { - "billingTier": "Up to 50 MB" + "lastName": { + "type": "string", + "description": "last Name of delegate" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0" - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "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" + ] }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "PROVISIONING" + "delegate": { + "$ref": "#/components/schemas/PortOrder_signature_delegate" + } + }, + "description": "Port signature Type" + }, + "RouteTableEntry_connection": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "example": "81331c52-04c0-4656-a4a7-18c52669348f" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "name": { + "type": "string", + "example": "connection_1" } } }, - "Fcr2IpWan-response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IPWAN_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "MY-IPWAN-CONNECTION-1", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" - }, - "order": { - "billingTier": "Up to 50 MB" - }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/66a21614-1c4a-11ec-9621-0242ac130002", - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002", - "name": "My-FG" - } - } + "VirtualConnectionPriceASide_accessPoint_port_settings": { + "type": "object", + "properties": { + "buyout": { + "type": "boolean", + "default": false + } + } + }, + "VirtualConnectionPriceASide_accessPoint_port": { + "type": "object", + "properties": { + "settings": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port_settings" + } + } + }, + "VirtualConnectionPriceASide_accessPoint": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "network": { - "href": "https://api.equinix.com/fabric/v4/networks/25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", - "name": "My-IPWAN", - "platformUuid": "be2c3921-602a-444e-86ef-92cf749c7647", - "state": "ACTIVE", - "type": "IPWAN", - "scope": "REGIONAL", - "location": { - "region": "AMER" - } - } - } + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "port": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" } } }, - "AsideServiceToken2PortResponseWithDot1q": { - "value": { - "href": "http://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "EVPL_VC", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "a-token qinq-dot1q", - "state": "ACTIVE", - "operation": { - "providerStatus": "NOT_AVAILABLE", - "equinixStatus": "PROVISIONING" + "VirtualConnectionPriceZSide_accessPoint_profile": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint_bridge_package": { + "type": "object", + "properties": { + "code": { + "$ref": "#/components/schemas/VirtualConnectionBridgePackageCode" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint_bridge": { + "type": "object", + "properties": { + "package": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge_package" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "account": { - "accountNumber": 201246, - "orgId": 92610, - "globalOrgId": "0017i000011X250AAC" + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" }, - "changeLog": { - "createdBy": "testuser", - "createdDateTime": "2022-05-16T07:50:49.749Z" + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + "port": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" }, - "isRemote": true, - "direction": "OUTGOING", - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "accessPoint": { - "location": { - "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - }, - "port": { - "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-2" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1231 - }, - "account": { - "accountNumber": 201246, - "organizationName": "testOrganization" - } - } + "profile": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_profile" }, - "zSide": { - "accessPoint": { - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", - "region": "EMEA", - "metroName": "London", - "metroCode": "LD" - }, - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-1" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1321 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" - } - } - }, - "order": { - "purchaseOrderNumber": "1122334", - "billingTier": "Up to 50 MB" + "bridge": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge" } } - }, - "AsideServiceToken2PortResponseWithQinq": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "EVPL_VC", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "a-token qinq-dot1q", - "state": "ACTIVE", - "operation": { - "providerStatus": "NOT_AVAILABLE", - "equinixStatus": "PROVISIONING" + } + }, + "examples": { + "400": { + "value": [ + { + "errorCode": "EQ-3142102", + "errorMessage": "Connection has duplicate buyer-side VLAN ID for port or the same VLAN ID is in the process of being deleted and should be freed up soon", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/linkProtocol" + } + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "account": { - "accountNumber": 201246, - "orgId": 92610, - "globalOrgId": "0017i000011X250AAC" + { + "errorCode": "EQ-3142535", + "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", + "details": "Please enter bandwidth less than the Speed limit on ServiceToken", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/serviceToken/uuid" + } + ] }, - "changeLog": { - "createdBy": "testuser", - "createdDateTime": "2022-05-16T07:50:49.749Z" + { + "errorCode": "EQ-3142536", + "errorMessage": "Remote connection cannot be created with the provided ServiceToken", + "details": "Only local Connection can be created using this ServiceToken", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/port/uuid" + } + ] }, - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + { + "errorCode": "EQ-3142701", + "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", + "details": "not an authorized user", + "correlationId": "test" }, - "isRemote": true, - "direction": "OUTGOING", - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "accessPoint": { - "location": { - "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", - "region": "AMER", - "metroName": "Silicon Valley", - "metroCode": "SV" - }, - "port": { - "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-2" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1231, - "vlanCTag": 2233 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" + { + "errorCode": "EQ-3142501", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "aSide/accessPoint/port/uuid" } - } + ] }, - "zSide": { - "accessPoint": { - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", - "region": "EMEA", - "metroName": "London", - "metroCode": "LD" - }, - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-1" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1321 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" + { + "errorCode": "EQ-3142509", + "errorMessage": "Connection already deleted", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "uuid" } - } + ] }, - "order": { - "purchaseOrderNumber": "1122334", - "billingTier": "Up to 50 MB" - } - } - }, - "createBulkGeneric": { - "value": { - "data": [ - { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "j167f685-41b0-1b07-6de0-320a5c00abie", - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - }, - { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "j167f685-41b0-1b07-6de0-320a5c00abie", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - ] - } - }, - "createBulkNonGeneric": { - "value": { - "data": [ - { - "type": "EVPL_VC", - "name": "Conn-1", + { + "errorCode": "EQ-3142510", + "errorMessage": "Connection is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "uuid" + } + ] + }, + { + "errorCode": "EQ-3142221", + "errorMessage": "The primary and secondary token provided have different bandwidth tiers. Please use two tokens that support the same bandwidth tiers", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142222", + "errorMessage": "The primary and secondary tokens have different encapsulation types (Dot1Q or QinQ). Please use two tokens that support the same encapsulation type", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142223", + "errorMessage": "The primary and secondary tokens belong to different projects. Please use two tokens that belong to the same project", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142224", + "errorMessage": "The primary and secondary ports have different port speeds (bandwidth). Please use two tokens that support the same port speed", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142225", + "errorMessage": "The primary and secondary tokens provided are the same. Please provide a different token", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142514", + "errorMessage": "Redundancy group is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/group" + } + ] + }, + { + "errorCode": "EQ-3142515", + "errorMessage": "Redundancy priority is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142516", + "errorMessage": "Invalid redundancy group", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/group" + } + ] + }, + { + "errorCode": "EQ-3142517", + "errorMessage": "Invalid redundancy priority", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142303", + "errorMessage": "Only Primary connection allowed for this CSP", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142320", + "errorMessage": "For redundant connection, Service Profile should be the same", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/profile/uuid" + } + ] + }, + { + "errorCode": "EQ-3142021", + "errorMessage": "For redundant connection, Fabric Cloud Router should be the same", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142012", + "errorMessage": "Fabric Cloud Router is not in PROVISIONED state", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142301", + "errorMessage": "Given profile does not exist", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/profile/uuid" + } + ] + }, + { + "errorCode": "EQ-3142302", + "errorMessage": "Service provider does not exist in required zSide metro", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/location/metroCode" + } + ] + }, + { + "errorCode": "EQ-3142013", + "errorMessage": "Invalid metro for Cloud Router connection", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142304", + "errorMessage": "Private connections are not allowed on public profiles", + "correlationId": "test", + "additionalInfo": [ + { + "property": "visibility" + } + ] + }, + { + "errorCode": "EQ-3142306", + "errorMessage": "Requested bandwidth is not supported by service profile", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/bandwidth" + } + ] + }, + { + "errorCode": "EQ-3142308", + "errorMessage": "Authentication key is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/authenticationKey" + } + ] + } + ] + }, + "401": { + "value": [ + { + "errorCode": "EQ-3000039", + "errorMessage": "User not found in request or invalid.", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515" + } + ] + }, + "403": { + "value": [ + { + "errorCode": "EQ-3142402", + "errorMessage": "Do not have create connection permission on this port", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + } + ] + }, + "404": { + "value": [ + { + "errorCode": "EQ-3000036", + "errorMessage": "Requested path doesn't exists", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + } + ] + }, + "405": { + "value": [ + { + "errorCode": "EQ-3142569", + "errorMessage": "Method not supported, Please check the URL passed", + "details": "Method:PATCH", + "correlationId": "f48687b0-d088-46d1-b06c-00c0688fbca9" + } + ] + }, + "415": { + "value": [ + { + "errorCode": "EQ-3040016", + "errorMessage": "Unsupported media type, please check the request's Content-Type or Content-Encoding", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "contentType", + "reason": "The payload format is in an unsupported format" + } + ] + } + ] + }, + "500": { + "value": [ + { + "errorCode": "EQ-3034003", + "errorMessage": "Method not supported,Please check the URL passed", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "additionalInfo": [ + { + "reason": "method:PATCH" + } + ] + } + ] + }, + "COLO2COLOwithDot1q-Dot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a8ba52de-faae-43b5-b0b1-6904d37ee063" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithDot1q-Dot1q-CRH": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abdd" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "b067f685-49b0-1a09-6fe0-360a5d00afdg" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "project": { + "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithDot1Q-QinQ": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1002 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithQinq-Qinq": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithQinq-Dot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1125 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLO-AsReseller": { + "value": { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1002, + "vlanCTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2COLO-EPL": { + "value": { + "type": "EPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2COLO-AccessEpl": { + "value": { + "type": "ACCESS_EPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1234 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2SPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AlibabaSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "SV" + }, + "sellerRegion": "San Jose 2", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AWSSPwithDot1q-Primary": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Aws", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "sellerRegion": "us-east-1", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AzureSPwithDot1q-Primary": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Azure", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "linkProtocol": { + "type": "QINQ", + "vlanCTag": 1234 + }, + "peeringType": "MICROSOFT", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AzureSPwithQinq-Secondary": { + "value": { + "type": "EVPL_VC", + "name": "Secondary-Azure", + "bandwidth": 1000, + "redundancy": { + "group": "e04db764-f865-470b-8394-d2efdd651577", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1002 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2GoogleSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2IBM_1": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx", + "sellerRegion": "San Jose 2" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ], + "additionalInfo": [ + { + "key": "ASN", + "value": 1234 + }, + { + "key": "Global", + "value": false + } + ] + } + }, + "COLO2IBM_2": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx", + "sellerRegion": "San Jose 2" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ], + "additionalInfo": [ + { + "key": "ASN", + "value": 1234 + }, + { + "key": "Global", + "value": false + }, + { + "key": "BGP_IBM_CIDR", + "value": "172.16.0.18/30" + }, + { + "key": "BGP_CER_CIDR", + "value": "172.16.0.19/30" + } + ] + } + }, + "COLO2OracleSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "sellerRegion": "us-ashburn-1", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2ServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "m167f685-41b0-1b07-6de0-320a5c00abeu", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2NETWORKwithDot1q": { + "value": { + "type": "EVPLAN_VC", + "name": "MY-EVPLAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2NETWORKwithEPL": { + "value": { + "type": "EPLAN_VC", + "name": "MY-EPLAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Sp-Primary": { + "value": { + "type": "EVPL_VC", + "bandwidth": 50, + "name": "Network Device to SP", + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-323292" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Sp-Secondary": { + "value": { + "type": "EVPL_VC", + "bandwidth": 50, + "name": "Network Device to SP", + "redundancy": { + "group": "777ca05d-4ae7-4ee9-9456-3ca49500428c", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-323292" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Colo": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ColoVlanTag": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTagMin": 300, + "vlanTagMax": 1099 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Colo-VlanCTag": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 300, + "vlanCTagMin": 100, + "vlanCTagMax": 109 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ColoUntagged": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to SP", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "UNTAGGED" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Token", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Colo": { + "value": { + "type": "IP_VC", + "name": "My-FCR-Connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "7b6481b8-1c4a-11ec-9621-0242ac130002" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Google": { + "value": { + "type": "IP_VC", + "name": "My-FCR-GCPConnection", + "bandwidth": 1000, + "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" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west1", + "location": { + "metroCode": "SV" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Azure": { + "value": { + "type": "IP_VC", + "name": "My-FCR-AzureConnection", + "bandwidth": 1000, + "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" + }, + "authenticationKey": "xx-xx-xx", + "location": { + "metroCode": "SV" + }, + "peeringType": "PRIVATE" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic": { + "value": { + "type": "IP_VC", + "name": "My-FCR-GenericConnection", + "bandwidth": 1000, + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic-Redundant-Secondary": { + "value": { + "type": "IP_VC", + "name": "FCR_to_RedSP_Secondary", + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "SECONDARY" + }, + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic-Redundant-Primary": { + "value": { + "type": "IP_VC", + "name": "FCR_to_RedSP_Primary-Re-add", + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Aws": { + "value": { + "type": "IP_VC", + "name": "My-FCR-AWSConnection", + "bandwidth": 100, + "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" + }, + "sellerRegion": "us-west-1", + "authenticationKey": "xx-xx-xx" + } + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Oracle": { + "value": { + "type": "IP_VC", + "name": "My-FCR-OracleConnection", + "bandwidth": 1000, + "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": "DC" + }, + "sellerRegion": "us-ashburn-1", + "authenticationKey": "xx-xx-xx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "project": { + "projectId": "567" + } + } + }, + "Fcr2Vd": { + "value": { + "type": "IP_VC", + "name": "My-GW-VDConnection", + "bandwidth": 100, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2IpWan": { + "value": { + "type": "IPWAN_VC", + "name": "MY-IPWAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 123 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "AsideServiceToken2PortWithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "Aside-token", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "location": { + "metroCode": "SV" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2PortWithQinq": { + "value": { + "type": "EVPL_VC", + "name": "Aside-Token", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "location": { + "metroCode": "SV" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2PrivateSP-NE": { + "value": { + "type": "EVPL_VC", + "name": "Token2PrivateSP-NE", + "bandwidth": 50, + "redundancy": { + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "aSide": { + "serviceToken": { + "uuid": "41a9e1ef-18bb-485b-a9b3-99801ac03684" + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2ZsideServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Aside to zside token connection", + "bandwidth": 50, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "serviceToken": { + "uuid": "4f9c5438-90eb-4295-b109-7754119a1e8d" + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "Metal2Sp-Aws": { + "value": { + "type": "EVPL_VC", + "name": "My-Metal-sp-connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "METAL_NETWORK", + "virtualNetwork": { + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abd" + }, + "interface": { + "projectId": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "authenticationKey": "xxxxxxxxx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 567 + } + } + }, + "ConnectionExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", + "type": "EVPL_VC", + "uuid": "3a58dd05-f46d-4b1d-a154-2e85c396ea62", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "direction": "OUTGOING", + "isRemote": true, + "state": "ACTIVE", + "redundancy": { + "group": "e04db764-f865-470b-8394-d2efdd651577", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/MX", + "metroCode": "MX" + } + } + }, + "operation": { + "providerStatus": "AVAILABLE", + "equinixStatus": "PROVISIONED" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "Vd2Sp-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to SP", + "bandwidth": 50, + "state": "ACTIVE", + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/95542b34-cf1c-41aa-89f7-590946f9df53", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53", + "type": "L2_PROFILE" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + } + } + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PENDING_APPROVAL", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2022-10-05T19:37:12.748Z" + } + } + }, + "Vd2ServiceToken_Response": { + "value": { + "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "type": "EVPL_VC", + "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "name": "Test ST", + "state": "ACTIVE", + "account": { + "accountNumber": 270235, + "orgId": 92794, + "globalOrgId": "0016u000003JZ55AAG" + }, + "bandwidth": 50, + "redundancy": { + "group": "b64dad2a-2763-4084-bc50-b36ef4f67137", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "INTERNAL", + "aSide": { + "accessPoint": { + "interface": { + "uuid": "11fd6067-149f-4142-a5b4-54a8dd6f53fe", + "id": 6, + "type": "CLOUD" + }, + "type": "VD", + "account": { + "accountNumber": 270217, + "organizationName": "test" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "region": "AMER", + "metroName": "Ashburn", + "metroCode": "DC" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1720 + }, + "virtualDevice": { + "href": "https://api.equinix.com/ne/v1/devices/3539f96c-7f67-4696-90f3-7b6d2fdcde5f", + "uuid": "3539f96c-7f67-4696-90f3-7b6d2fdcde5f", + "name": "testing1234", + "type": "EDGE" + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "e05f4f23-d098-4d7c-a9ca-c2897b465107", + "account": { + "orgId": 22222 + } + }, + "accessPoint": { + "type": "COLO", + "account": { + "accountNumber": 22222, + "organizationName": "xxxxx" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "region": "AMER", + "metroName": "Ashburn", + "metroCode": "DC" + }, + "port": { + "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "uuid": "c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "name": "testNEuser2-DC6-NL-Dot1q-STD-SEC-10G-JN-216" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 553 + } + } + }, + "changeLog": { + "createdBy": "test", + "createdDateTime": "2022-10-05T19:37:12.748Z", + "updatedBy": "test", + "updatedDateTime": "2022-10-05T19:37:12.748Z" + }, + "operation": { + "providerStatus": "AVAILABLE", + "equinixStatus": "PROVISIONED" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, + "Vd2Colo-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to COLO", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229Z" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + } + } + }, + "Vd2Colo-VlanTagResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to COLO", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f88", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTagMin": 300, + "vlanTagMax": 1099 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + } + } + }, + "Vd2ColoUntagged-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to SP", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229Z" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "UNTAGGED" + } + } + } + } + }, + "Fcr2Sp-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IP_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "GP_FG2GCP_001", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "name": "My-FG-1" + } + } + }, + "zSide": { + "accessPoint": { + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/c7922adf-34b5-4d4e-a87c-cae8c899ef90", + "uuid": "c7922adf-34b5-4d4e-a87c-cae8c899ef90", + "name": "Google Cloud Partner Interconnect Zone 2", + "type": "L2_PROFILE" + }, + "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x", + "sellerRegion": "us-west1", + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "Fcr2Colo-ResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IP_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "GP_FG2COLO_001", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "Fcr2IpWan-response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IPWAN_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "MY-IPWAN-CONNECTION-1", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/66a21614-1c4a-11ec-9621-0242ac130002", + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002", + "name": "My-FG" + } + } + }, + "zSide": { + "accessPoint": { + "network": { + "href": "https://api.equinix.com/fabric/v4/networks/25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", + "name": "My-IPWAN", + "platformUuid": "be2c3921-602a-444e-86ef-92cf749c7647", + "state": "ACTIVE", + "type": "IPWAN", + "scope": "REGIONAL", + "location": { + "region": "AMER" + } + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "AsideServiceToken2PortResponseWithDot1q": { + "value": { + "href": "http://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "EVPL_VC", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "a-token qinq-dot1q", + "state": "ACTIVE", + "operation": { + "providerStatus": "NOT_AVAILABLE", + "equinixStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "account": { + "accountNumber": 201246, + "orgId": 92610, + "globalOrgId": "0017i000011X250AAC" + }, + "changeLog": { + "createdBy": "testuser", + "createdDateTime": "2022-05-16T07:50:49.749Z" + }, + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "OUTGOING", + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "accessPoint": { + "location": { + "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + }, + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-2" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1231 + }, + "account": { + "accountNumber": 201246, + "organizationName": "testOrganization" + } + } + }, + "zSide": { + "accessPoint": { + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", + "region": "EMEA", + "metroName": "London", + "metroCode": "LD" + }, + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-1" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1321 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "order": { + "purchaseOrderNumber": "1122334", + "billingTier": "Up to 50 MB" + } + } + }, + "AsideServiceToken2PortResponseWithQinq": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "EVPL_VC", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "a-token qinq-dot1q", + "state": "ACTIVE", + "operation": { + "providerStatus": "NOT_AVAILABLE", + "equinixStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "account": { + "accountNumber": 201246, + "orgId": 92610, + "globalOrgId": "0017i000011X250AAC" + }, + "changeLog": { + "createdBy": "testuser", + "createdDateTime": "2022-05-16T07:50:49.749Z" + }, + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "OUTGOING", + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "accessPoint": { + "location": { + "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", + "region": "AMER", + "metroName": "Silicon Valley", + "metroCode": "SV" + }, + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-2" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1231, + "vlanCTag": 2233 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "zSide": { + "accessPoint": { + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", + "region": "EMEA", + "metroName": "London", + "metroCode": "LD" + }, + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-1" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1321 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "order": { + "purchaseOrderNumber": "1122334", + "billingTier": "Up to 50 MB" + } + } + }, + "Metal2Sp-Aws-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "name": "My-Metal-sp-connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "METAL_NETWORK", + "virtualNetwork": { + "href": "https://api.equinix.com/metal/v1/virtual-networks/a867f685-41b0-1b07-6de0-320a5c00abd", + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abd" + }, + "interface": { + "projectId": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "authenticationKey": "xxxxxxxxx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 567 + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "account": { + "href": "https://api.equinix.com/accountService/v1/accounts/123213", + "accountNumber": 123213, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + }, + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "createBulkGeneric": { + "value": { + "data": [ + { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "j167f685-41b0-1b07-6de0-320a5c00abie", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + }, + { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "j167f685-41b0-1b07-6de0-320a5c00abie", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + ] + } + }, + "createBulkNonGeneric": { + "value": { + "data": [ + { + "type": "EVPL_VC", + "name": "Conn-1", "order": { "purchaseOrderNumber": "1-129105284100" }, @@ -23748,7 +27105,7 @@ "values": [ "LAB", "BASIC", - "PRO", + "STANDARD", "PREMIUM" ] } @@ -27168,320 +30525,792 @@ } } } - } + } + }, + "COLOSinglePortNonLagResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", + "type": "XF_PORT", + "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", + "state": "PENDING", + "physicalPortsType": "10GBASE_L", + "physicalPortsSpeed": 10000, + "physicalPortsCount": 1, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "redundancy": { + "group": 1, + "priority": "PRIMARY" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "settings": { + "sharedPortType": "false,", + "packageType": "STANDARD" + }, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "orderNumber": "1-207799950758", + "signature": { + "signatory": "DELEGATE", + "delegate": { + "email": "testEmail1@equinix.com" + } + } + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "PEERING", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "ESCALATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ] + } + }, + "port-400": { + "value": [ + { + "errorCode": "EQ-3143101", + "errorMessage": "NOTIFICATION_CONTACT_NOT_VALID", + "details": "notifications" + }, + { + "errorCode": "EQ-3143103", + "errorMessage": "NOTIFICATION_CONTACT_MISSING", + "details": "notifications" + }, + { + "errorCode": "EQ-3143104", + "errorMessage": "ORDERING_CONTACT_MISSING", + "details": "notifications" + }, + { + "errorCode": "EQ-3143105", + "errorMessage": "ORDERING_CONTACT_NOT_VALID", + "details": "notifications" + }, + { + "errorCode": "EQ-3143106", + "errorMessage": "INVALID_PHYSICAL_PORTS", + "details": "physicalPorts[%s].Demarcation.cageUniqueSpaceId" + }, + { + "errorCode": "EQ-3143107", + "errorMessage": "INVALID_PATCH_PANEL_NAME", + "details": "physicalPorts[%s].Demarcation.patchPanelName is not valid" + }, + { + "errorCode": "EQ-3143108", + "errorMessage": "PHYSICAL_PORTS_MISSING", + "details": "PhysicalPorts" + }, + { + "errorCode": "EQ-3143109", + "errorMessage": "ALL_PORTS_USED", + "details": "PhysicalPorts.Demarcation.port" + }, + { + "errorCode": "EQ-3143110", + "errorMessage": "INVALID_PHYSICAL_PORTS_PORTA_DUPLICATE", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143111", + "errorMessage": "INVALID_PHYSICAL_PORTS_PORTB_DUPLICATE", + "details": "PhysicalPorts[%s].Demarcation.portB" + }, + { + "errorCode": "EQ-3143112", + "errorMessage": "NEXT_AVAIL_CANNOT_BE_TRUE", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143113", + "errorMessage": "provided metroCode is not available for this user", + "details": "metroCode" + }, + { + "errorCode": "EQ-3143114", + "errorMessage": "MISSING_PORTB", + "details": "PhysicalPorts[%s].Demarcation.portB" + }, + { + "errorCode": "EQ-3143115", + "errorMessage": "PORT_PRIORITY_SHOULD_BE_PRIMARY", + "details": "priority" + }, + { + "errorCode": "EQ-3143116", + "errorMessage": "INVALID_PHYSICAL_PORTS_SPEED", + "details": "physicalPortsSpeed" + }, + { + "errorCode": "EQ-3143117", + "errorMessage": "INVALID_PHYSICAL_PORTS_TYPE", + "details": "physicalPortsType" + }, + { + "errorCode": "EQ-3143118", + "errorMessage": "INVALID_QUOTE_REFERENCE_ID", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143119", + "errorMessage": "INACTIVE_QUOTE_REFERENCE_ID", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143120", + "errorMessage": "QUOTE_ORDER_MISMATCHED", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143121", + "errorMessage": "SHARED_PORT_PRODUCT_INVALID", + "details": "sharedPortProduct" + }, + { + "errorCode": "EQ-3143122", + "errorMessage": "INVALID_USER", + "details": "sharedPortType" + }, + { + "errorCode": "EQ-3143123", + "errorMessage": "INVALID_CONNECTIVITY_SOURCE_TYPE", + "details": "ConnectivitySourceType" + }, + { + "errorCode": "EQ-3143124", + "errorMessage": "ACCOUNT_SERVICE_ERROR", + "details": "AccountNumber" + }, + { + "errorCode": "EQ-3143125", + "errorMessage": "MANDATORY_ATTRIBUTE_ERROR", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143126", + "errorMessage": "UNTAGGED_INVALID_PACKAGE_TYPE", + "details": "settings.packageType" + }, + { + "errorCode": "EQ-3143127", + "errorMessage": "UNTAGGED_INVALID_ENCAPSULATION", + "details": "encapsulation.type" + }, + { + "errorCode": "EQ-3143128", + "errorMessage": "UNTAGGED_REDUNDANT", + "details": "redundancy.priority" + }, + { + "errorCode": "EQ-3143129", + "errorMessage": "UNTAGGED_LAG", + "details": "lagEnabled" + }, + { + "errorCode": "EQ-3143130", + "errorMessage": "UNTAGGED_SHARED", + "details": "settings.sharedPortType" + }, + { + "errorCode": "EQ-3143131", + "errorMessage": "UNTAGGED_TPID", + "details": "encapsulation.tagProtocolId" + }, + { + "errorCode": "EQ-3143132", + "errorMessage": "PHYSICAL_PORTS_SPEED_NOT_AVAILABLE", + "details": "physicalPortsSpeed" + }, + { + "errorCode": "EQ-3143133", + "errorMessage": "Invalid A side ibx in MC order payload", + "details": "ibx" + }, + { + "errorCode": "EQ-3143134", + "errorMessage": "Invalid Z side ibx in MC order payload", + "details": "ibx" + }, + { + "errorCode": "EQ-3143135", + "errorMessage": "LAG_PORT_WITHOUT_LAG", + "details": "lagPort" + }, + { + "errorCode": "EQ-3143136", + "errorMessage": "LAG_WITH_WITHOUT_LAG", + "details": "lag.type" + }, + { + "errorCode": "EQ-3143137", + "errorMessage": "ORDER_NOT_BELONG_TO_USER" + }, + { + "errorCode": "EQ-3143138", + "errorMessage": "ORDER_NOT_FOUND" + } + ] }, - "COLOSinglePortNonLagResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", - "type": "XF_PORT", - "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", - "state": "PENDING", - "physicalPortsType": "10GBASE_L", - "physicalPortsSpeed": 10000, - "physicalPortsCount": 1, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "redundancy": { - "group": 1, - "priority": "PRIMARY" + "port-500": { + "value": [ + { + "errorCode": "EQ-3143001", + "errorMessage": "Please contact support@equinix.com for more info" }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + { + "errorCode": "EQ-3143002", + "errorMessage": "Invalid response from order service" }, - "settings": { - "sharedPortType": "false,", - "packageType": "STANDARD" + { + "errorCode": "EQ-3143003", + "errorMessage": "Invalid argument value passed" }, - "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", - "projectId": 567 + { + "errorCode": "EQ-3143004", + "errorMessage": "Json syntax error, please check request body" }, - "account": { - "accountNumber": 1000 + { + "errorCode": "EQ-3143005", + "errorMessage": "Invalid argument passed" }, - "order": { - "orderNumber": "1-207799950758", - "signature": { - "signatory": "DELEGATE", - "delegate": { - "email": "testEmail1@equinix.com" - } - } + { + "errorCode": "EQ-3143006", + "errorMessage": "Method not supported, Please check the URL passed" }, - "notifications": [ + { + "errorCode": "EQ-3143008", + "errorMessage": "virtual Port not found", + "details": "connectionDetails[%s].patchPanelName is not valid" + } + ] + }, + "COLOBulkPort": { + "value": { + "data": [ { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-PRIMARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "redundancy": { + "priority": "PRIMARY" + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } ] }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-SECONDARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "redundancy": { + "priority": "SECONDARY" + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } ] - }, + } + ] + } + }, + "COLOBulkPortResponse": { + "value": { + "data": [ { - "type": "PEERING", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603", + "uuid": "a6f77b33-96c6-4eeb-8d79-76374d950603", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "state": "PENDING", + "order": { + "orderNumber": "1-210210611704" + }, + "account": { + "accountNumber": 270848 + }, + "changelog": { + "createdBy": "907831", + "createdDateTime": "2023-06-02T22:25:52.206Z" + }, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "redundancy": { + "group": "22f8e668-4754-4564-825d-d1c7889c885a", + "priority": "PRIMARY" + }, + "lagEnabled": false, + "settings": { + "sharedPortType": false, + "packageType": "STANDARD" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "additionalInfo": [ + { + "key": "quoteReferenceId", + "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + }, + { + "key": "InterfaceReferenceId", + "value": "32729" + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a", + "uuid": "22f8e668-4754-4564-825d-d1c7889c885a", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "state": "PENDING", + "order": { + "orderNumber": "1-210210611704" + }, + "account": { + "accountNumber": 270848 + }, + "changelog": { + "createdBy": "907831", + "createdDateTime": "2023-06-02T22:25:52.206Z" + }, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "redundancy": { + "group": "a6f77b33-96c6-4eeb-8d79-76374d950603", + "priority": "SECONDARY" + }, + "lagEnabled": false, + "settings": { + "sharedPortType": false, + "packageType": "STANDARD" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "additionalInfo": [ + { + "key": "quoteReferenceId", + "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + }, + { + "key": "InterfaceReferenceId", + "value": "32729" + } ] } ] } }, - "port-400": { - "value": [ - { - "errorCode": "EQ-3143101", - "errorMessage": "NOTIFICATION_CONTACT_NOT_VALID", - "details": "notifications" - }, - { - "errorCode": "EQ-3143103", - "errorMessage": "NOTIFICATION_CONTACT_MISSING", - "details": "notifications" - }, - { - "errorCode": "EQ-3143104", - "errorMessage": "ORDERING_CONTACT_MISSING", - "details": "notifications" - }, - { - "errorCode": "EQ-3143105", - "errorMessage": "ORDERING_CONTACT_NOT_VALID", - "details": "notifications" - }, - { - "errorCode": "EQ-3143106", - "errorMessage": "INVALID_PHYSICAL_PORTS", - "details": "physicalPorts[%s].Demarcation.cageUniqueSpaceId" - }, - { - "errorCode": "EQ-3143107", - "errorMessage": "INVALID_PATCH_PANEL_NAME", - "details": "physicalPorts[%s].Demarcation.patchPanelName is not valid" - }, - { - "errorCode": "EQ-3143108", - "errorMessage": "PHYSICAL_PORTS_MISSING", - "details": "PhysicalPorts" - }, - { - "errorCode": "EQ-3143109", - "errorMessage": "ALL_PORTS_USED", - "details": "PhysicalPorts.Demarcation.port" - }, - { - "errorCode": "EQ-3143110", - "errorMessage": "INVALID_PHYSICAL_PORTS_PORTA_DUPLICATE", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143111", - "errorMessage": "INVALID_PHYSICAL_PORTS_PORTB_DUPLICATE", - "details": "PhysicalPorts[%s].Demarcation.portB" - }, - { - "errorCode": "EQ-3143112", - "errorMessage": "NEXT_AVAIL_CANNOT_BE_TRUE", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143113", - "errorMessage": "provided metroCode is not available for this user", - "details": "metroCode" - }, - { - "errorCode": "EQ-3143114", - "errorMessage": "MISSING_PORTB", - "details": "PhysicalPorts[%s].Demarcation.portB" - }, - { - "errorCode": "EQ-3143115", - "errorMessage": "PORT_PRIORITY_SHOULD_BE_PRIMARY", - "details": "priority" - }, - { - "errorCode": "EQ-3143116", - "errorMessage": "INVALID_PHYSICAL_PORTS_SPEED", - "details": "physicalPortsSpeed" - }, - { - "errorCode": "EQ-3143117", - "errorMessage": "INVALID_PHYSICAL_PORTS_TYPE", - "details": "physicalPortsType" - }, - { - "errorCode": "EQ-3143118", - "errorMessage": "INVALID_QUOTE_REFERENCE_ID", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143119", - "errorMessage": "INACTIVE_QUOTE_REFERENCE_ID", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143120", - "errorMessage": "QUOTE_ORDER_MISMATCHED", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143121", - "errorMessage": "SHARED_PORT_PRODUCT_INVALID", - "details": "sharedPortProduct" - }, - { - "errorCode": "EQ-3143122", - "errorMessage": "INVALID_USER", - "details": "sharedPortType" - }, - { - "errorCode": "EQ-3143123", - "errorMessage": "INVALID_CONNECTIVITY_SOURCE_TYPE", - "details": "ConnectivitySourceType" - }, - { - "errorCode": "EQ-3143124", - "errorMessage": "ACCOUNT_SERVICE_ERROR", - "details": "AccountNumber" - }, - { - "errorCode": "EQ-3143125", - "errorMessage": "MANDATORY_ATTRIBUTE_ERROR", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143126", - "errorMessage": "UNTAGGED_INVALID_PACKAGE_TYPE", - "details": "settings.packageType" - }, - { - "errorCode": "EQ-3143127", - "errorMessage": "UNTAGGED_INVALID_ENCAPSULATION", - "details": "encapsulation.type" - }, - { - "errorCode": "EQ-3143128", - "errorMessage": "UNTAGGED_REDUNDANT", - "details": "redundancy.priority" - }, - { - "errorCode": "EQ-3143129", - "errorMessage": "UNTAGGED_LAG", - "details": "lagEnabled" - }, - { - "errorCode": "EQ-3143130", - "errorMessage": "UNTAGGED_SHARED", - "details": "settings.sharedPortType" - }, - { - "errorCode": "EQ-3143131", - "errorMessage": "UNTAGGED_TPID", - "details": "encapsulation.tagProtocolId" - }, - { - "errorCode": "EQ-3143132", - "errorMessage": "PHYSICAL_PORTS_SPEED_NOT_AVAILABLE", - "details": "physicalPortsSpeed" - }, - { - "errorCode": "EQ-3143133", - "errorMessage": "Invalid A side ibx in MC order payload", - "details": "ibx" - }, - { - "errorCode": "EQ-3143134", - "errorMessage": "Invalid Z side ibx in MC order payload", - "details": "ibx" - }, - { - "errorCode": "EQ-3143135", - "errorMessage": "LAG_PORT_WITHOUT_LAG", - "details": "lagPort" - }, - { - "errorCode": "EQ-3143136", - "errorMessage": "LAG_WITH_WITHOUT_LAG", - "details": "lag.type" - }, - { - "errorCode": "EQ-3143137", - "errorMessage": "ORDER_NOT_BELONG_TO_USER" - }, - { - "errorCode": "EQ-3143138", - "errorMessage": "ORDER_NOT_FOUND" - } - ] + "COLOAddToLag": { + "value": { + "data": [ + { + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "ibx": "AM1", + "cabinetUniqueSpaceId": "AM1:02:032575:0105", + "cageUniqueSpaceId": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + }, + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "COLO" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "demarcationPoint": { + "ibx": "AM1", + "cabinetUniqueSpaceId": "AM1:02:032575:0105", + "cageUniqueSpaceId": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 16, + "patchPanelPortB": 17, + "connectorType": "LC" + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "COLO" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + } + ] + } }, - "port-500": { - "value": [ - { - "errorCode": "EQ-3143001", - "errorMessage": "Please contact support@equinix.com for more info" - }, - { - "errorCode": "EQ-3143002", - "errorMessage": "Invalid response from order service" - }, - { - "errorCode": "EQ-3143003", - "errorMessage": "Invalid argument value passed" - }, - { - "errorCode": "EQ-3143004", - "errorMessage": "Json syntax error, please check request body" - }, - { - "errorCode": "EQ-3143005", - "errorMessage": "Invalid argument passed" - }, - { - "errorCode": "EQ-3143006", - "errorMessage": "Method not supported, Please check the URL passed" - }, - { - "errorCode": "EQ-3143008", - "errorMessage": "virtual Port not found", - "details": "connectionDetails[%s].patchPanelName is not valid" - } - ] + "REMOTEAddToLag": { + "value": { + "data": [ + { + "type": "XF_PHYSICAL_PORT", + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "REMOTE" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "account": { + "accountReferenceId": "17829Id" + } + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountReferenceId": "17829Id" + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "REMOTE" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + } + ] + } }, - "COLOBulkPort": { + "BMMRAddToLag": { "value": { "data": [ { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-PRIMARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, + "type": "XF_PHYSICAL_PORT", "account": { - "accountNumber": 1000 + "accountNumber": 17829 }, "order": { "purchaseOrder": { @@ -27500,42 +31329,56 @@ } } }, - "redundancy": { - "priority": "PRIMARY" - }, - "physicalPorts": [ + "additionalInfo": [ { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "BMMR" + }, + { + "key": "bmmrType", + "value": "SELF" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" } ] }, { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-SECONDARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", "account": { - "accountNumber": 1000 + "accountNumber": 17829 }, "order": { "purchaseOrder": { @@ -27554,191 +31397,107 @@ } } }, - "redundancy": { - "priority": "SECONDARY" - }, - "physicalPorts": [ + "additionalInfo": [ { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] - } - ] - } - }, - "COLOBulkPortResponse": { - "value": { - "data": [ - { - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603", - "uuid": "a6f77b33-96c6-4eeb-8d79-76374d950603", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "physicalPortsCount": 1, - "connectivitySourceType": "COLO", - "state": "PENDING", - "order": { - "orderNumber": "1-210210611704" - }, - "account": { - "accountNumber": 270848 - }, - "changelog": { - "createdBy": "907831", - "createdDateTime": "2023-06-02T22:25:52.206Z" - }, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "redundancy": { - "group": "22f8e668-4754-4564-825d-d1c7889c885a", - "priority": "PRIMARY" - }, - "lagEnabled": false, - "settings": { - "sharedPortType": false, - "packageType": "STANDARD" - }, - "notifications": [ + "key": "internalReferenceId", + "value": 635368 + }, { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ], - "additionalInfo": [ + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, { - "key": "quoteReferenceId", - "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + "key": "lagType", + "value": "Existing" }, { - "key": "InterfaceReferenceId", - "value": "32729" - } - ] - }, - { - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a", - "uuid": "22f8e668-4754-4564-825d-d1c7889c885a", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "physicalPortsCount": 1, - "connectivitySourceType": "COLO", - "state": "PENDING", - "order": { - "orderNumber": "1-210210611704" - }, - "account": { - "accountNumber": 270848 - }, - "changelog": { - "createdBy": "907831", - "createdDateTime": "2023-06-02T22:25:52.206Z" - }, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "redundancy": { - "group": "a6f77b33-96c6-4eeb-8d79-76374d950603", - "priority": "SECONDARY" - }, - "lagEnabled": false, - "settings": { - "sharedPortType": false, - "packageType": "STANDARD" - }, - "notifications": [ + "key": "connectivitySourceType", + "value": "BMMR" + }, { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] + "key": "bmmrType", + "value": "SELF" }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ], - "additionalInfo": [ + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, { - "key": "quoteReferenceId", - "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + "key": "packageType", + "value": "STANDARD" }, { - "key": "InterfaceReferenceId", - "value": "32729" + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" } ] } ] } }, - "COLOAddToLag": { + "COLOAddToLagResponse": { "value": { "data": [ { "type": "XF_PHYSICAL_PORT", "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - }, - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "39", + "patchPanelPortB": "40", + "connectorType": "SC", + "ibx": "GV1" }, "additionalInfo": [ { - "key": "internalReferenceId", - "value": 635368 + "key": "lagType", + "value": "Existing" }, { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + "key": "connectivitySourceType", + "value": "COLO" }, { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" }, + { + "key": "notification", + "value": "userName" + } + ], + "order": { + "orderNumber": "1-210210611904" + } + }, + { + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "41", + "patchPanelPortB": "42", + "connectorType": "SC", + "ibx": "GV1" + }, + "additionalInfo": [ { "key": "lagType", "value": "Existing" @@ -27757,838 +31516,1193 @@ }, { "key": "notification", - "value": "jaguarsuser-port-order" + "value": "userName" } - ] - }, + ], + "order": { + "orderNumber": "1-210210611904" + } + } + ] + } + }, + "portByUUID": { + "value": { + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", + "type": "XF_PORT", + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "ACTIVE", + "cvpId": "108608", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, + "redundancy": { + "group": "1", + "priority": "Secondary" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", + "ibx": "AT1", + "metroCode": "AT", + "metroName": "Atlanta", + "region": "AMER" + }, + "device": { + "name": "dev-m7a2.lab", + "redundancy": { + "group": "1", + "priority": "Secondary" + } + }, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "lagEnabled": true, + "lag": { + "enabled": true + }, + "settings": { + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true + }, + "physicalPorts": [ { + "state": "PROVISIONED", "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 + "id": 6967, + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 16, - "patchPanelPortB": 17, - "connectorType": "LC" + "ibx": "AT1", + "patchPanel": "PP:8118:1586", + "patchPanelName": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "operation": { + "operationalStatus": "UP" + } + }, + { + "state": "PROVISIONED", + "type": "XF_PHYSICAL_PORT", + "id": 6968, + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" + }, + "operation": { + "operationalStatus": "UP" + } + } + ], + "operation": { + "operationalStatus": "UP", + "opStatusChangedAt": "2021-06-14T17:21:25.586Z", + "connectionCount": 0 + }, + "account": { + "accountNumber": "100179", + "accountName": "L2", + "globalCustId": "007700000090982RG8", + "orgId": "100179", + "organizationName": "Cust_Org_100179" + }, + "changeLog": { + "createdDateTime": "2018-06-14T17:21:25.587Z" + } + } + }, + "LinkProtocolGetQinqResponseExample": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 5 + }, + "data": [ + { + "type": "QINQ", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanSTag": 1001, + "vlanCTag": 1001, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "REMOTEAddToLag": { + "LinkProtocolGetDot1qResponseExample": { "value": { + "pagination": { + "offset": 5, + "limit": 20, + "total": 40, + "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", + "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "REMOTE" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTag": 200, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "account": { - "accountReferenceId": "17829Id" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanTag": 257, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountReferenceId": "17829Id" + "type": "DOT1Q", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanTag": 250, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "REMOTE" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTag": 240, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTag": 240, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "BMMRAddToLag": { + "LinkProtocolGetVlanRangeResponseExample": { "value": { - "data": [ - { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "pagination": { + "offset": 5, + "limit": 20, + "total": 40, + "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", + "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + }, + "data": [ + { + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "BMMR" - }, - { - "key": "bmmrType", - "value": "SELF" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 + "type": "DOT1Q", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "BMMR" - }, - { - "key": "bmmrType", - "value": "SELF" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOAddToLagResponse": { + "400_invalid_portId": { + "value": [ + { + "errorCode": "EQ-3035202", + "errorMessage": "Unable to fetch port details", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "The uuid requested could not be found in system. Please try again after sometime", + "additionalInfo": { + "property": "portUuid" + } + } + ] + }, + "403-port-access": { + "value": [ + { + "errorCode": "EQ-3035002", + "errorMessage": "Access Forbidden", + "correlationId": "UnAuthorized User- Cannot perform action" + } + ] + }, + "PortSearchByProjectId": { "value": { - "data": [ - { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "39", - "patchPanelPortB": "40", - "connectorType": "SC", - "ibx": "GV1" - }, - "additionalInfo": [ - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "userName" - } - ], - "order": { - "orderNumber": "1-210210611904" + "filter": { + "or": [ + { + "and": [ + { + "operator": "=", + "property": "/project/projectId", + "values": [ + "30ad25e2-53dc-11ed-bdc3-0242ac120002" + ] + }, + { + "operator": "=", + "property": "/state", + "values": [ + "ACTIVE" + ] + }, + { + "operator": "=", + "property": "/settings/productCode", + "values": [ + "CX" + ] + } + ] } - }, + ] + }, + "pagination": { + "limit": 25, + "offset": 0, + "total": 0 + }, + "sort": [ { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "41", - "patchPanelPortB": "42", - "connectorType": "SC", - "ibx": "GV1" - }, - "additionalInfo": [ - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "userName" - } - ], - "order": { - "orderNumber": "1-210210611904" - } + "property": "/device/name", + "direction": "DESC" } ] } }, - "portByUUID": { + "ConnectionRouteFiltersGetAll": { "value": { - "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", - "type": "XF_PORT", - "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", - "name": "test-AT1-Dot1q-L-Secondary-108608", - "state": "ACTIVE", - "cvpId": "108608", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "redundancy": { - "group": "1", - "priority": "Secondary" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", - "ibx": "AT1", - "metroCode": "AT", - "metroName": "Atlanta", - "region": "AMER" + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null }, - "device": { - "name": "dev-m7a2.lab", - "redundancy": { - "group": "1", - "priority": "Secondary" + "data": [ + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "INBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/52f7791a-fe90-49bc-8807-18b3d6eda566", + "type": "BGP_IPv6_PREFIX_FILTER", + "uuid": "52f7791a-fe90-49bc-8807-18b3d6eda566", + "attachmentStatus": "ATTACHED", + "direction": "INBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "attachmentStatus": "ATTACHED", + "direction": "OUTBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/65d74639-8f48-4e10-9684-45d364645e97", + "type": "BGP_IPv6_PREFIX_FILTER", + "uuid": "65d74639-8f48-4e10-9684-45d364645e97", + "attachmentStatus": "ATTACHED", + "direction": "OUTBOUND" } + ] + } + }, + "400_route_filters": { + "value": [ + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "type" + } + ] }, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "name" + } + ] }, - "lagEnabled": true, - "lag": { - "enabled": true + { + "errorCode": "EQ-3044002", + "errorMessage": "Connection already deleted", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "connectionId" + } + ] }, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true + { + "errorCode": "EQ-3044003", + "errorMessage": "Route Filter is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "routeFilterId" + } + ] }, - "physicalPorts": [ - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6967, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "demarcationPoint": { - "ibx": "AT1", - "patchPanel": "PP:8118:1586", - "patchPanelName": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "operation": { - "operationalStatus": "UP" + { + "errorCode": "EQ-3044003", + "errorMessage": "Connection is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "connectionId" } - }, - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6968, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "operation": { - "operationalStatus": "UP" + ] + } + ] + }, + "AttachConnectionRouteFiltersResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "ATTACHING", + "direction": "INBOUND" + } + }, + "AttachConnectionRouteFilterInbound": { + "value": { + "direction": "INBOUND" + } + }, + "AttachConnectionRouteFilterOutbound": { + "value": { + "direction": "OUTBOUND" + } + }, + "400_invalid_direction": { + "value": [ + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "direction" } + ] + } + ] + }, + "400_transient_state": { + "value": [ + { + "errorCode": "EQ-3044008", + "errorMessage": "Cannot attach or detach Route Filter with Connection in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot attach or detach Route Filter with Connection in transient state" + } + ] + }, + "DetachConnectionRouteFilterInboundResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "INBOUND" + } + }, + "DetachConnectionRouteFilterOutboundResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "OUTBOUND" + } + }, + "RouteFilterCreateBgpIpv4Prefix": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + } + }, + "RouteFilterCreateBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4", + "description": "Test filter", + "state": "PROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" + }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "UpdateRouteFilterIPv4": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4-update", + "description": "Test filter update", + "project": { + "projectId": 789 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, + "RouteFilterIpv4ReplaceResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4-update", + "description": "Test filter update", + "state": "REPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" + }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 789 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] } ], - "operation": { - "operationalStatus": "UP", - "opStatusChangedAt": "2021-06-14T17:21:25.586Z", - "connectionCount": 0 + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4", + "description": "Test filter", + "state": "DEPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31", + "type": "BGP_IPv4_PREFIX_FILTER_DELETION", + "uuid": "c2ec84c5-6de6-4f5c-b506-3ce218630c31" }, - "account": { - "accountNumber": "100179", - "accountName": "L2", - "globalCustId": "007700000090982RG8", - "orgId": "100179", - "organizationName": "Cust_Org_100179" + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z", + "deletedBy": "testuser1", + "deletedByEmail": "testuser@equinix.com", + "deletedByFullName": "testuser testuser", + "deletedDateTime": "2020-05-21T10:30:00Z" } } }, - "LinkProtocolGetQinqResponseExample": { + "400_attached_connection": { + "value": [ + { + "errorCode": "EQ-3044007", + "errorMessage": "Cannot delete Route Filter still attached to a Connection", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot delete Route Filter still attached to a Connection" + } + ] + }, + "PatchRouteFilterName": { + "value": [ + { + "op": "replace", + "path": "/name", + "value": "My-route-filter-v4-updated" + } + ] + }, + "RouteFilterNamePatchResponse": { "value": { - "pagination": { - "offset": 0, - "limit": 20, - "total": 5 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4-updated", + "description": "Test filter", + "state": "REPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "data": [ - { - "type": "QINQ", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 1, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "notifications": [ { - "type": "QINQ", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanSTag": 1001, - "vlanCTag": 1001, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } + "type": "ALL", + "emails": [ + "test@equinix.com" + ] } - ] + ], + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } } }, - "LinkProtocolGetDot1qResponseExample": { + "400_invalid_operation": { + "value": [ + { + "errorCode": "EQ-3044011", + "errorMessage": "Invalid Argument passed", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Only replace name operation is supported." + } + ] + }, + "RouteFilterGetAllChangesResponseExample": { "value": { "pagination": { - "offset": 5, + "offset": 0, "limit": 20, - "total": 40, - "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", - "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + "total": 4, + "next": null, + "previous": null }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTag": 200, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanTag": 257, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanTag": 250, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTag": 240, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] } }, { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTag": 240, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/name", + "value": "My-route-filter-v4-updated", + "previousValue": "My-route-filter-v4" + } + ] } ] } }, - "LinkProtocolGetVlanRangeResponseExample": { + "RouteFilterGetChangeResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + } + }, + "RouteFilterGetConnectionsResponse": { "value": { "pagination": { - "offset": 5, + "offset": 0, "limit": 20, - "total": 40, - "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", - "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + "total": 1, + "next": null, + "previous": null + }, + "data": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f", + "type": "IP_VC", + "name": "test-connection", + "uuid": "05de355a-6c9d-4636-8d7d-7b7595821c15" + } + } + }, + "RouteFilterRulesGetAll": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 2, + "next": null, + "previous": null }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", + "name": "Private-subnet-filter-2", + "description": "Test rule", + "prefixMatch": "exact", + "action": "PERMIT", + "prefix": "192.168.10.0/24", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_FILTER_RULE_CREATION", + "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } }, { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", + "name": "Private-subnet-filter-2", + "description": "Test rule", + "prefixMatch": "orlonger", + "action": "PERMIT", + "prefix": "192.168.20.0/24", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_FILTER_RULE_CREATION", + "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } - }, - { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } } ] } }, - "400_invalid_portId": { + "RouteFilterRuleCreateBgpIpv4Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" + } + }, + "RouteFilterRuleCreateBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" + }, + "action": "PERMIT", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "UpdateRouteFilterRuleIPv4": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + }, + "RouteFilterRuleIpv4ReplaceResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefixMach": "exact", + "action": "PERMIT", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" + }, + "prefix": "192.168.0.0/24", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "RouteFilterRuleDeleteBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "uuid": "e8528788-14d3-4a7b-a740-99b702067485" + }, + "action": "PERMIT", + "prefix": "192.168.0.0/24", + "prefixMach": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z", + "deletedBy": "testuser1", + "deletedByEmail": "testuser@equinix.com", + "deletedByFullName": "testuser testuser", + "deletedDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "400_transient_filter": { "value": [ { - "errorCode": "EQ-3035202", - "errorMessage": "Unable to fetch port details", + "errorCode": "EQ-3044015", + "errorMessage": "Cannot delete Route Filter Rule, Route Filter transient state", "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "The uuid requested could not be found in system. Please try again after sometime", - "additionalInfo": { - "property": "portUuid" - } + "details": "Cannot delete Route Filter Rule, Route filter is in transient state" } ] }, - "403-port-access": { + "PatchRouteFilterRulePrefixMatch": { "value": [ { - "errorCode": "EQ-3035002", - "errorMessage": "Access Forbidden", - "correlationId": "UnAuthorized User- Cannot perform action" + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger" } ] }, - "PortSearchByProjectId": { + "RouteFilterRulesGetAllChangesResponseExample": { "value": { - "filter": { - "or": [ - { - "and": [ - { - "operator": "=", - "property": "/project/projectId", - "values": [ - "30ad25e2-53dc-11ed-bdc3-0242ac120002" - ] - }, - { - "operator": "=", - "property": "/state", - "values": [ - "ACTIVE" - ] - }, - { - "operator": "=", - "property": "/settings/productCode", - "values": [ - "CX" - ] - } - ] - } - ] - }, "pagination": { - "limit": 25, "offset": 0, - "total": 0 + "limit": 20, + "total": 3, + "next": null, + "previous": null }, - "sort": [ + "data": [ { - "property": "/device/name", - "direction": "DESC" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + }, + { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a40085a4-f0cc-416c-af01-286f7f7ec736", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a40085a4-f0cc-416c-af01-286f7f7ec736", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger", + "previousValue": "exact" + } + ] + }, + { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "exact", + "previousValue": "orlonger" + } + ] } ] } }, + "RouteFilterRuleGetChangeResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + } + }, "CreateLabPackage": { "value": { "type": "XF_ROUTER", @@ -28615,7 +32729,7 @@ } } }, - "CreateProPackage": { + "CreateStandardPackage": { "value": { "type": "XF_ROUTER", "name": "My-Cloud-Router", @@ -28623,7 +32737,7 @@ "metroCode": "SV" }, "package": { - "code": "PRO" + "code": "STANDARD" }, "notifications": [ { @@ -28653,7 +32767,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28705,7 +32819,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28802,7 +32916,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28847,16 +32961,6 @@ } } }, - "400_invalid_operation": { - "value": [ - { - "errorCode": "EQ-3040054", - "errorMessage": "Invalid Argument passed", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "Only replace name, replace package and replace notifications operations are supported." - } - ] - }, "CloudRouterActionResponse": { "value": { "type": "ROUTE_TABLE_ENTRY_UPDATE", @@ -29080,7 +33184,7 @@ { "errorCode": "EQ-2041022", "errorMessage": "The provided subnet is not valid.", - "details": "The provided subnet is overlapping to other connection in the same FCR.", + "details": "The provided subnet is overlapping with other connections in the same Fabric Cloud Router.", "correlationId": "5f9f9ab9-a6cb-4e8a-aa34-105cd4cb6cc8" } ] @@ -29145,7 +33249,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -29190,7 +33294,7 @@ "pagination": { "offset": 0, "limit": 20, - "total": 1 + "total": 2 }, "data": [ { @@ -29214,6 +33318,28 @@ "createdDateTime": "2022-02-10T00:14:47Z", "updatedDateTime": "2022-02-10T00:14:47Z" } + }, + { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", + "type": "ROUTER_PACKAGE", + "code": "STANDARD", + "description": "string", + "totalIPv4RoutesMax": 1000, + "totalIPv6RoutesMax": 100, + "staticIPv4RoutesMax": 150, + "staticIPv6RoutesMax": 150, + "naclsMax": 60, + "naclRulesMax": 1000, + "haSupported": true, + "routeFilterSupported": true, + "natType": "STATIC_NAT", + "vcCountMax": 10, + "crCountMax": 3, + "vcBandwidthMax": 10000, + "changeLog": { + "createdDateTime": "2023-02-10T00:14:47Z", + "updatedDateTime": "2023-02-10T00:14:47Z" + } } ] } @@ -30504,6 +34630,7 @@ "connections": [ { "href": "https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011", + "type": "EVPL_VC", "uuid": "06dbb0e3-e55d-4090-8aff-fc5654abaad0" } ], @@ -31051,6 +35178,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 1, "clientsPerSecondMax": 2000, + "accuracyUnit": "microseconds", + "accuracySla": -1, + "accuracyAvgMin": 1, + "accuracyAvgMax": 100, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31064,6 +35195,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 5, "clientsPerSecondMax": 1000, + "accuracyUnit": "microseconds", + "accuracySla": -1, + "accuracyAvgMin": 1, + "accuracyAvgMax": 100, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31077,6 +35212,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 5, "clientsPerSecondMax": 100, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31085,11 +35224,15 @@ } }, { - "href": "https://api.equinix.com/fabric/v4/precisiontimePackages/PTP_ENTERPRISE", + "href": "https://api.equinix.com/fabric/v4/timeServicePackages/PTP_ENTERPRISE", "code": "PTP_ENTERPRISE", "type": "TIME_SERVICE_PACKAGE", "bandwidth": 10, "clientsPerSecondMax": 20, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31102,11 +35245,15 @@ }, "servicePackageResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/precisiontimePackages/NTP_STANDARD", + "href": "https://api.equinix.com/fabric/v4/timeServicePackages/NTP_STANDARD", "code": "NTP_STANDARD", "type": "TIME_SERVICE_PACKAGE", "bandwidth": 10, "clientsPerSecondMax": 100, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { diff --git a/spec/oas3.fabric.patched.json b/spec/oas3.fabric.patched.json index 76ca7108..35520d0a 100644 --- a/spec/oas3.fabric.patched.json +++ b/spec/oas3.fabric.patched.json @@ -13,7 +13,7 @@ "name": "Equinix Inc", "url": "https://developer.equinix.com/agreement" }, - "version": "4.10" + "version": "4.11" }, "externalDocs": { "description": "Find more information on Equinix Developer Portal", @@ -125,9 +125,6 @@ "Colo2Sp-Aws-Primary": { "$ref": "#/components/examples/COLO2AWSSPwithDot1q-Primary" }, - "Colo2Sp-Aws-Secondary": { - "$ref": "#/components/examples/COLO2AWSSPwithDot1q-Secondary" - }, "Colo2Sp-AzureDot1Q": { "$ref": "#/components/examples/COLO2AzureSPwithDot1q-Primary" }, @@ -220,6 +217,9 @@ }, "AsideServiceToken2ZsideServiceToken": { "$ref": "#/components/examples/AsideServiceToken2ZsideServiceToken" + }, + "Metal2Sp-Aws": { + "$ref": "#/components/examples/Metal2Sp-Aws" } } } @@ -267,6 +267,9 @@ }, "ServiceToken2PortResponseQinQ": { "$ref": "#/components/examples/AsideServiceToken2PortResponseWithQinq" + }, + "Metal2Sp-Aws": { + "$ref": "#/components/examples/Metal2Sp-Aws-Response" } } } @@ -4135,6 +4138,124 @@ } } }, + "/fabric/v4/serviceProfiles/{serviceProfileId}/metros": { + "get": { + "tags": [ + "Service Profiles" + ], + "summary": "Get Profile Metros", + "description": "Get service profile metros by UUID.", + "operationId": "getServiceProfileMetrosByUuid", + "parameters": [ + { + "name": "serviceProfileId", + "in": "path", + "description": "Service Profile UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceProfileId" + } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json; charset=UTF-8": { + "schema": { + "$ref": "#/components/schemas/ServiceMetros" + }, + "examples": { + "ServiceProfileMetros": { + "$ref": "#/components/examples/ServiceProfilesResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-400" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-403-read" + } + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/sp-500" + } + } + } + } + } + } + } + }, "/fabric/v4/serviceTokens/{serviceTokenId}": { "get": { "tags": [ @@ -5459,44 +5580,36 @@ } } }, - "/fabric/v4/routers": { - "post": { + "/fabric/v4/connections/{connectionId}/routeFilters": { + "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Create Routers", - "description": "This API provides capability to create user's Cloud Routers", - "operationId": "createCloudRouter", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterPostRequest" - }, - "examples": { - "CreateLabPackage": { - "$ref": "#/components/examples/CreateLabPackage" - }, - "CreateProPackage": { - "$ref": "#/components/examples/CreateProPackage" - } - } + "summary": "Get All RouteFilters", + "description": "This API provides capability to view all Route Filters attached to a Connection", + "operationId": "getConnectionRouteFilters", + "parameters": [ + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } - }, - "required": true - }, + } + ], "responses": { "200": { - "description": "Fabric Cloud Router object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPostResponseExample" + "connectionRouteFiltersResponse": { + "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" } } } @@ -5511,7 +5624,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_package" + "$ref": "#/components/examples/400_route_filters" } } } @@ -5547,6 +5660,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -5571,7 +5699,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -5580,43 +5708,52 @@ } } }, - "/fabric/v4/routers/{routerId}": { + "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get Routers", - "description": "This API provides capability to retrieve user's Cloud Routers", - "operationId": "getCloudRouterByUuid", + "summary": "Get Route Filter", + "description": "This API provides capability to view a specific Route Filter attached to a Connection", + "operationId": "getConnectionRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } } ], "responses": { "200": { - "description": "Fabric Cloud Router object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterResponseExample" + "connectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -5624,14 +5761,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_route_filters" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -5639,14 +5776,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -5654,14 +5791,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -5669,38 +5806,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/404_invalid_id" } } } } - } - } - }, - "delete": { - "tags": [ - "Cloud Routers" - ], - "summary": "Delete Routers", - "description": "This API provides capability to delete user's Cloud Routers", - "operationId": "deleteCloudRouterByUuid", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Cloud Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId" - } - } - ], - "responses": { - "204": { - "description": "Deleted Cloud Router Successfully" }, - "400": { - "description": "Bad request", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -5708,14 +5821,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/415" } } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -5723,52 +5836,7 @@ }, "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" + "$ref": "#/components/examples/500_internal_error" } } } @@ -5776,39 +5844,45 @@ } } }, - "patch": { + "put": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Update Routers", - "description": "This API provides capability to update user's Cloud Routers", - "operationId": "updateCloudRouterByUuid", + "summary": "Attach Route Filter", + "description": "This API provides capability to attach a Route Filter to a Connection", + "operationId": "attachConnectionRouteFilter", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterUpdateRequest" + "$ref": "#/components/schemas/ConnectionRouteFiltersBase" }, "examples": { - "UpdatePackage": { - "$ref": "#/components/examples/UpdatePackage" - }, - "UpdateName": { - "$ref": "#/components/examples/UpdateName" + "ConnectionRouteFilterAttachInboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNotifications" + "ConnectionRouteFilterAttachOutboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" } } } @@ -5816,16 +5890,16 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPatchResponseExample" + "connectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -5839,8 +5913,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "InvalidDirection": { + "$ref": "#/components/examples/400_invalid_direction" + }, + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -5877,7 +5954,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -5885,7 +5962,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -5915,53 +5992,55 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions": { - "get": { + }, + "delete": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActions", + "summary": "Detach Route Filter", + "description": "This API provides capability to detach a Route Filter from a Connection", + "operationId": "detachConnectionRouteFilter", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteFilterId" } }, { - "name": "state", - "in": "query", - "description": "Action state", + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, "schema": { - "$ref": "#/components/schemas/ActionState" + "$ref": "#/components/schemas/ConnectionId" } } ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "connectionRouteFilterDetachInboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" + }, + "connectionRouteFilterDetachOutboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" } } } @@ -5976,7 +6055,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_transient_state" } } } @@ -6013,7 +6092,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6021,14 +6100,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6051,41 +6130,33 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, + } + }, + "/fabric/v4/routeFilters": { "post": { "tags": [ - "Cloud Routers" - ], - "summary": "Route table actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "createCloudRouterAction", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" - } - } + "Route Filters" ], + "summary": "Create Route Filters", + "description": "This API provides capability to create a Route Filter", + "operationId": "createRouteFilter", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionRequest" + "$ref": "#/components/schemas/RouteFiltersBase" }, "examples": { - "RouteEntriesStatusUpdate": { - "$ref": "#/components/examples/RouteEntriesStatusUpdate" + "RouteFilterBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" } } } @@ -6098,11 +6169,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "cloudRouterActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "getSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -6117,7 +6188,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6154,7 +6225,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6162,14 +6233,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6192,7 +6263,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6201,59 +6272,37 @@ } } }, - "/fabric/v4/routers/{routerId}/routes/search": { - "post": { + "/fabric/v4/routeFilters/{routeFilterId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Search Route Table", - "description": "The API provides capability to get list of user's Fabric Cloud Router route table entries using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchCloudRouterRoutes", + "summary": "Get Filter By UUID", + "description": "This API provides capability to view a Route Filter by UUID", + "operationId": "getRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteFilterId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchRequest" - }, - "examples": { - "SearchFilterByNextHop": { - "$ref": "#/components/examples/SearchFilterByNextHop" - }, - "SearchFilterByPrefix": { - "$ref": "#/components/examples/SearchFilterByPrefix" - }, - "SearchFilterByType": { - "$ref": "#/components/examples/SearchFilterByType" - }, - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" - } - } - } - }, - "required": true - }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" + }, + "examples": { + "getSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + } } } } @@ -6267,7 +6316,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6304,7 +6353,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6312,14 +6361,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, "415": { - "description": "Internal server error", + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -6342,31 +6391,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/validate": { - "post": { + }, + "put": { "tags": [ - "Routing Protocols" + "Route Filters" ], - "summary": "Validate Subnet", - "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", - "operationId": "validateRoutingProtocol", + "summary": "Replace Route Filter", + "description": "This API provides capability to replace a Route Filter completely", + "operationId": "replaceRouteFilterByUuid", "parameters": [ { - "name": "routerId", + "name": "routeFilterId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteFilterId" } } ], @@ -6374,14 +6421,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetRequest" + "$ref": "#/components/schemas/RouteFiltersBase" }, "examples": { - "ValidateDirectIpv4": { - "$ref": "#/components/examples/Request-direct-ipv4" - }, - "ValidateDirectIpv6": { - "$ref": "#/components/examples/Request-direct-ipv6" + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterIPv4" } } } @@ -6389,16 +6433,16 @@ "required": true }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "ValidateSubnet": { - "$ref": "#/components/examples/Response-200" + "routeFilterIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterIpv4ReplaceResponse" } } } @@ -6412,60 +6456,119 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" - }, - "Subnet Overlapping": { - "$ref": "#/components/examples/error-400-overlappingSubnet" + "example": { + "$ref": "#/components/examples/400_route_filters" } } } } - } - } - } - }, - "/fabric/v4/routers/search": { - "post": { - "tags": [ - "Cloud Routers" - ], - "summary": "Search Routers", - "description": "The API provides capability to get list of user's Cloud Routers using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchCloudRouters", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterSearchRequest" - }, - "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterByNameAndMetroName": { - "$ref": "#/components/examples/SearchFilterByNameAndMetroName" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } } } } }, - "required": true - }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Route Filters" + ], + "summary": "Delete Route Filter", + "description": "This API provides capability to delete a Route Filter", + "operationId": "deleteRouteFilterByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + } + ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "Example": { - "$ref": "#/components/examples/search-example" + "routeFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" } } } @@ -6480,7 +6583,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_attached_connection" } } } @@ -6516,6 +6619,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -6540,56 +6658,73 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routerPackages": { - "get": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "List Packages", - "description": "This API provides capability to retrieve user's Cloud Routers Packages", - "operationId": "getCloudRouterPackages", + "summary": "Patch Route Filter", + "description": "This API provides capability to partially update a Route Filter", + "operationId": "patchRouteFilterByUuid", "parameters": [ { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "schema": { - "type": "integer" - }, - "example": 1 - }, - { - "name": "limit", - "in": "query", - "description": "number of records to fetch", - "required": false, + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/RouteFilterId" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFiltersPatchRequest" + }, + "examples": { + "RouteFilterNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterName" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Cloud Router Packages", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "Example": { - "$ref": "#/components/examples/ListFCRPackagesResponse" + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -6625,6 +6760,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -6649,7 +6799,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6658,32 +6808,57 @@ } } }, - "/fabric/v4/routerPackages/{routerPackageCode}": { + "/fabric/v4/routeFilters/{routeFilterId}/changes": { "get": { "tags": [ - "Cloud Routers" + "Route Filters" ], - "summary": "Get Package Details", - "description": "This API provides capability to retrieve user's Cloud Routers Package Details", - "operationId": "getCloudRouterPackageByCode", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter's Changes", + "operationId": "getRouteFilterChanges", "parameters": [ { - "name": "routerPackageCode", + "name": "routeFilterId", "in": "path", - "description": "Equinix-assigned Cloud Router package identifier", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterPackageCode" + "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Cloud Router Package details", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/RouteFilterChangeDataResponse" + }, + "examples": { + "RouteFilterChangesResponse": { + "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" + } } } } @@ -6697,7 +6872,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_package" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -6733,8 +6908,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -6742,7 +6917,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -6757,7 +6932,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -6766,141 +6941,120 @@ } } }, - "/fabric/v4/health": { + "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { "get": { "tags": [ - "Health" + "Route Filters" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter's Changes", + "operationId": "getRouteFilterChangeByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_1" + } + } ], - "summary": "Get service status", - "description": "GET All service health statys with an option query parameter to return all Equinix Fabric customer in which the customer has a presence.", - "operationId": "getStatus", - "parameters": [], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/HealthResponse" + "$ref": "#/components/schemas/RouteFilterChangeData" }, "examples": { - "metroExample": { - "$ref": "#/components/examples/healthResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" } } } } - } - } - } - }, - "/fabric/v4/connections/validate": { - "post": { - "tags": [ - "Connections" - ], - "summary": "Validate Connection", - "description": "This API provides capability to validate by auth key", - "operationId": "validateConnections", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ValidateConnectionRequest" - }, - "examples": { - "Alibaba-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Alibaba" - }, - "Aws-ValidateAuthKey": { - "$ref": "#/components/examples/Request_AWS" - }, - "Azure-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Azure" - }, - "Google-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Google" - }, - "IBM-1.0-ValidateAuthKey": { - "$ref": "#/components/examples/Request_IBM_1" - }, - "IBM-2.0-ValidateAuthKey": { - "$ref": "#/components/examples/Request_IBM_2" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Oracle-ValidateAuthKey": { - "$ref": "#/components/examples/Request_Oracle" + "examples": { + "example": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Dot1q-ValidateVlanAvailability": { - "$ref": "#/components/examples/Dot1q_Vlan" + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, - "Qinq-ValidateVlanAvailability": { - "$ref": "#/components/examples/Qinq_Vlan" + "examples": { + "example": { + "$ref": "#/components/examples/403" + } } } } }, - "required": true - }, - "responses": { - "200": { - "description": "Successful operation", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Alibaba-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Alibaba" - }, - "Aws-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Aws" - }, - "Azure-ValidateAuthKey-no-existing-connections": { - "$ref": "#/components/examples/Response-Azure-no-existing-connections" - }, - "Azure-ValidateAuthKey-1-existing-Dot1q-connection": { - "$ref": "#/components/examples/Response-Azure-1-existing-Dot1q-connection" - }, - "Azure-ValidateAuthKey-1-existing-Qinq-connection": { - "$ref": "#/components/examples/Response-Azure-1-existing-Qinq-connection" - }, - "Azure-ValidateAuthKey-2-existing-Dot1q-connection": { - "$ref": "#/components/examples/Response-Azure-2-existing-Dot1q-connections" - }, - "Google-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Google" - }, - "IBM-1.0-ValidateAuthKey": { - "$ref": "#/components/examples/Response-IBM-1" - }, - "IBM-2.0-ValidateAuthKey": { - "$ref": "#/components/examples/Response-IBM-2" - }, - "Oracle-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Oracle" - }, - "Dot1q-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Dot1q-Vlan" - }, - "Qinq-ValidateAuthKey": { - "$ref": "#/components/examples/Response-Qinq-Vlan" + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "400": { - "description": "Bad request", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -6909,44 +7063,36 @@ } } }, - "/fabric/v4/networks": { - "post": { + "/fabric/v4/routeFilters/{routeFilterId}/connections": { + "get": { "tags": [ - "Networks" + "Route Filters" ], - "summary": "Create Network", - "description": "This API provides capability to create user's Fabric Network", - "operationId": "createNetwork", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkPostRequest" - }, - "examples": { - "CreateGlobalNetwork": { - "$ref": "#/components/examples/CreateGlobalNetwork" - }, - "CreateRegionalNetwork": { - "$ref": "#/components/examples/CreateRegionalNetwork" - } - } + "summary": "Get Connections", + "description": "This API provides capability to view all Connections using the Route Filter", + "operationId": "getRouteFilterConnections", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" } - }, - "required": true - }, + } + ], "responses": { - "202": { - "description": "Fabric Network Access point object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPostResponseExample" + "routeFilterGetConnectionsResponse": { + "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" } } } @@ -6961,7 +7107,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/400_route_filters" } } } @@ -6997,6 +7143,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7021,7 +7182,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -7030,41 +7191,71 @@ } } }, - "/fabric/v4/networks/{networkId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Network By ID", - "description": "This API provides capability to retrieve user's Fabric Network", - "operationId": "getNetworkByUuid", + "summary": "GetRFRules", + "description": "This API provides capability to get all Route Filters Rules for Fabric", + "operationId": "getRouteFilterRules", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetResponseExample" + "getAllRouteFilters": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" } } } } }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, "401": { "description": "Unauthorized", "content": { @@ -7096,7 +7287,17 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter Rule ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -7104,7 +7305,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/500_internal_error" } } } @@ -7112,35 +7313,50 @@ } } }, - "delete": { + "post": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Delete Network By ID", - "description": "This API provides capability to delete user's Fabric Network", - "operationId": "deleteNetworkByUuid", + "summary": "Create RFRule", + "description": "This API provides capability to create a Route Filter Rule", + "operationId": "createRouteFilterRule", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + }, + "examples": { + "RouteFilterRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" + } + } + } + }, + "required": true + }, "responses": { "202": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkDeleteResponseExample" + "getSpecificRouteFilterRuleResponse": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" } } } @@ -7155,7 +7371,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7192,7 +7408,17 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter Rule ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -7200,61 +7426,69 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "patch": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { + "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Update Network By ID", - "description": "This API provides capability to update user's Fabric Network", - "operationId": "updateNetworkByUuid", + "summary": "GetRFRule By UUID", + "description": "This API provides capability to view a Route Filter Rule by UUID", + "operationId": "getRouteFilterRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" } } ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/NetworkUpdateRequest" - }, - "examples": { - "UpdateName": { - "$ref": "#/components/examples/UpdateNetworkName" - }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNetworkNotifications" - } - } - } - }, - "required": true - }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPatchResponseExample" + "getSpecificRouteFilterRuleResponse": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" } } } @@ -7269,7 +7503,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7306,7 +7540,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7314,7 +7548,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -7334,31 +7568,60 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } - } - }, - "/fabric/v4/networks/search": { - "post": { + }, + "put": { "tags": [ - "Networks" + "Route Filter Rules" + ], + "summary": "ReplaceRFRule", + "description": "This API provides capability to replace a Route Filter Rule completely", + "operationId": "replaceRouteFilterRuleByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + } ], - "summary": "Search Network", - "description": "The API provides capability to get list of user's Fabric Network using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchNetworks", - "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchRequest" + "$ref": "#/components/schemas/RouteFilterRulesBase" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" } } } @@ -7366,16 +7629,16 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkSearchResponseExample" + "routeFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleIpv4ReplaceResponse" } } } @@ -7390,7 +7653,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_route_filters" } } } @@ -7426,6 +7689,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7440,40 +7718,62 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } - } - }, - "/fabric/v4/networks/{networkId}/connections": { - "get": { + }, + "delete": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Connections", - "description": "The API provides capability to get list of user's Fabric Network connections", - "operationId": "getConnectionsByNetworkUuid", + "summary": "DeleteRFRule", + "description": "This API provides capability to delete a Route Filter Rule", + "operationId": "deleteRouteFilterRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" } } ], "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkConnections" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/GetNetworkConnectionExample" + "routeFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" } } } @@ -7488,7 +7788,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/400_transient_filter" } } } @@ -7524,8 +7824,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7533,52 +7833,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } } - } - } - } - }, - "/fabric/v4/networks/{networkId}/changes": { - "get": { - "tags": [ - "Networks" - ], - "summary": "Get Network Changes", - "description": "The API provides capability to get list of user's Fabric Network changes", - "operationId": "getNetworkChanges", - "parameters": [ - { - "name": "networkId", - "in": "path", - "description": "Network UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/NetworkId" - } - } - ], - "responses": { - "200": { - "description": "Fabric Network Access point object", + }, + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChangeResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkChangeResponseExample" + "example": { + "$ref": "#/components/examples/415" } } } } }, - "400": { - "description": "Bad request", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -7586,14 +7863,89 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/500_internal_error" } } } } - }, - "401": { - "description": "Unauthorized", + } + } + }, + "patch": { + "tags": [ + "Route Filter Rules" + ], + "summary": "PatchRFilterRule", + "description": "This API provides capability to partially update a Route Filter Rule", + "operationId": "patchRouteFilterRuleByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesPatchRequest" + }, + "examples": { + "RouteFilterRuleNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFiltersData" + }, + "examples": { + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" + } + } + } + } + }, + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -7622,6 +7974,21 @@ } } }, + "404": { + "description": "Route Filter ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -7636,49 +8003,84 @@ } } } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" + } + } + } + } } } } }, - "/fabric/v4/networks/{networkId}/changes/{changeId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { "get": { "tags": [ - "Networks" + "Route Filter Rules" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve user's Fabric Network Change", - "operationId": "getNetworkChangeByUuid", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChanges", "parameters": [ { - "name": "networkId", + "name": "routeFilterId", "in": "path", - "description": "Network UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteFilterId" } }, { - "name": "changeId", + "name": "routeFilterRuleId", "in": "path", - "description": "Network Change UUID", + "description": "Route Filter Rules Id", "required": true, "schema": { - "$ref": "#/components/schemas/ChangeId_1" + "$ref": "#/components/schemas/RouteFilterRuleId" } + }, + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Route Filter Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChange" + "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetChangeResponseExample" + "RouteFilterRuleChangesResponse": { + "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" } } } @@ -7693,7 +8095,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7730,7 +8132,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7738,7 +8140,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -7747,36 +8164,54 @@ } } }, - "/fabric/v4/timeServices/{serviceId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { "get": { "tags": [ - "Precision Time" + "Route Filter Rules" ], - "summary": "Get Time Service", - "description": "The API provides capability to get precision timing service's details", - "operationId": "getTimeServicesById", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChangeByUuid", "parameters": [ { - "name": "serviceId", + "name": "routeFilterId", "in": "path", - "description": "Service UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouteFilterId" + } + }, + { + "name": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterRuleId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Route Filter Rule Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_2" } } ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/RouteFilterRulesChangeData" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" } } } @@ -7790,137 +8225,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7956,8 +8262,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7965,7 +8271,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -7980,43 +8286,116 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { + "post": { "tags": [ - "Precision Time" + "Route Filter Rules" ], - "summary": "Delete Time Service", - "description": "Delete EPT service by it's uuid", - "operationId": "deleteTimeServiceById", + "summary": "Bulk RFRules", + "description": "This API provides capability to create bulk route filter rules", + "operationId": "createRouteFilterRulesInBulk", "parameters": [ { - "name": "serviceId", + "name": "routeFilterId", "in": "path", - "description": "Service UUID", + "description": "Route Filters Id", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouteFilterId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesPostRequest" + } + } + }, + "required": true + }, "responses": { - "204": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "getAllRouteFilters": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" + } + } + } + } + } + } + } + }, + "/fabric/v4/routers": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Create Routers", + "description": "This API provides capability to create user's Cloud Routers", + "operationId": "createCloudRouter", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPostRequest" + }, + "examples": { + "CreateLabPackage": { + "$ref": "#/components/examples/CreateLabPackage" + }, + "CreateProPackage": { + "$ref": "#/components/examples/CreateStandardPackage" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Fabric Cloud Router object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouter" + }, + "examples": { + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPostResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_package" } } } @@ -8083,199 +8462,137 @@ } } } - }, - "patch": { + } + }, + "/fabric/v4/routers/{routerId}": { + "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Patch Time Service", - "description": "The API provides capability to update timing service", - "operationId": "updateTimeServicesById", + "summary": "Get Routers", + "description": "This API provides capability to retrieve user's Cloud Routers", + "operationId": "getCloudRouterByUuid", "parameters": [ { - "name": "serviceId", + "name": "routerId", "in": "path", - "description": "Service UUID", + "description": "Cloud Router UUID", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouterId" } } ], - "requestBody": { - "content": { - "application/json-patch+json": { - "schema": { - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/precisionTimeChangeOperation" + "responses": { + "200": { + "description": "Fabric Cloud Router object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouter" + }, + "examples": { + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterResponseExample" + } } - }, - "examples": { - "editName": { - "$ref": "#/components/examples/edit" + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } } } } }, - "required": true - }, - "responses": { - "200": { - "description": "Successful operation", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "example": { + "$ref": "#/components/examples/403" } } } } }, - "400": { - "description": "Bad request", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Cloud Routers" + ], + "summary": "Delete Routers", + "description": "This API provides capability to delete user's Cloud Routers", + "operationId": "deleteCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "responses": { + "204": { + "description": "Deleted Cloud Router Successfully" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" } } } @@ -8311,8 +8628,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -8320,7 +8637,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404" } } } @@ -8342,32 +8659,40 @@ } } } - } - }, - "/fabric/v4/timeServices": { - "post": { + }, + "patch": { "tags": [ - "Precision Time" + "Cloud Routers" + ], + "summary": "Update Routers", + "description": "This API provides capability to update user's Cloud Routers", + "operationId": "updateCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } ], - "summary": "Create Time Service", - "description": "The API provides capability to create timing service", - "operationId": "createTimeServices", - "parameters": [], "requestBody": { "content": { - "application/json": { + "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" + "$ref": "#/components/schemas/CloudRouterUpdateRequest" }, "examples": { - "ntpSingleStandard": { - "$ref": "#/components/examples/ntpSingleStandard" + "UpdatePackage": { + "$ref": "#/components/examples/UpdatePackage" }, - "ptpSingleStandard": { - "$ref": "#/components/examples/ptpSingleStandard" + "UpdateName": { + "$ref": "#/components/examples/UpdateName" }, - "ptpSingleEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration" + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNotifications" } } } @@ -8375,16 +8700,16 @@ "required": true }, "responses": { - "202": { - "description": "Successful operation", + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "NtpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPatchResponseExample" } } } @@ -8398,137 +8723,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "MandatoryName": { - "$ref": "#/components/examples/400-Mandatory-Name" - }, - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -8564,6 +8760,21 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -8597,36 +8808,59 @@ } } }, - "/fabric/v4/timeServices/{serviceId}/connections": { + "/fabric/v4/routers/{routerId}/actions": { "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get all Connections", - "description": "The API provides capability to get prevision timing service's details", - "operationId": "getTimeServicesConnectionsByServiceId", + "summary": "Get actions", + "description": "This API provides capability to fetch action status", + "operationId": "getCloudRouterActions", "parameters": [ { - "name": "serviceId", + "name": "routerId", "in": "path", - "description": "Service UUID", + "description": "Router UUID", "required": true, "schema": { - "$ref": "#/components/schemas/ServiceId" + "$ref": "#/components/schemas/RouterId_1" + } + }, + { + "name": "state", + "in": "query", + "description": "Action state", + "schema": { + "$ref": "#/components/schemas/ActionState" } } ], "responses": { "200": { - "description": "Return Time Service Connection", + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterActionResponse" + }, + "examples": { + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceConnectionsResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/serviceConnectionsResponse" + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -8662,8 +8896,23 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -8693,35 +8942,58 @@ } } } - } - }, - "/fabric/v4/timeServicePackages": { - "get": { + }, + "post": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Packages", - "description": "The API provides capability to get timing service's packages", - "operationId": "getTimeServicesPackages", - "parameters": [], + "summary": "Route table actions", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "createCloudRouterAction", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterActionRequest" + }, + "examples": { + "RouteEntriesStatusUpdate": { + "$ref": "#/components/examples/RouteEntriesStatusUpdate" + } + } + } + }, + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/servicePackagesResponse" + "cloudRouterActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" } } } } }, - "415": { - "description": "Unsupported Media Type", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8729,14 +9001,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/400_invalid_operation" } } } } }, - "500": { - "description": "Internal server error", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -8744,58 +9016,44 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/401" } } } } - } - } - } - }, - "/fabric/v4/timeServicePackages/{packageCode}": { - "get": { - "tags": [ - "Precision Time" - ], - "summary": "Get Package by Code", - "description": "The API provides capability to get timing service's package by code", - "operationId": "getTimeServicesPackageByCode", - "parameters": [ - { - "name": "packageCode", - "in": "path", - "description": "Package Code", - "required": true, - "schema": { - "type": "string", - "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" - ] + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } - } - ], - "responses": { - "200": { - "description": "Successful operation", + }, + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/servicePackageResponse" + "$ref": "#/components/examples/404" } } } } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -8826,1855 +9084,2504 @@ } } } - } - }, - "components": { - "schemas": { - "ConnectionPostRequest": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectionType" - }, - "name": { - "type": "string", - "description": "Customer-provided connection name" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + }, + "/fabric/v4/routers/{routerId}/routes/search": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Search Route Table", + "description": "The API provides capability to get list of user's Fabric Cloud Router route table entries using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchCloudRouterRoutes", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchRequest" + }, + "examples": { + "SearchFilterByNextHop": { + "$ref": "#/components/examples/SearchFilterByNextHop" + }, + "SearchFilterByPrefix": { + "$ref": "#/components/examples/SearchFilterByPrefix" + }, + "SearchFilterByType": { + "$ref": "#/components/examples/SearchFilterByType" + }, + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } } }, - "bandwidth": { - "maximum": 50000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth in Mbps" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + } + } + } }, - "geoScope": { - "$ref": "#/components/schemas/GeoScopeType" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "redundancy": { - "$ref": "#/components/schemas/ConnectionRedundancy" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "aSide": { - "$ref": "#/components/schemas/ConnectionSide" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } }, - "project": { - "$ref": "#/components/schemas/Project" + "415": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "description": "Connection additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } - }, - "description": "Create connection post request" - }, - "Connection": { - "required": [ - "aSide", - "bandwidth", - "name", - "type", - "zSide" + } + } + }, + "/fabric/v4/routers/{routerId}/validate": { + "post": { + "tags": [ + "Routing Protocols" ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectionType" - }, - "href": { - "type": "string", - "description": "Connection URI", - "format": "uri", - "readOnly": true - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier" - }, - "name": { - "type": "string", - "description": "Customer-provided connection name" + "summary": "Validate Subnet", + "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", + "operationId": "validateRoutingProtocol", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "ValidateDirectIpv4": { + "$ref": "#/components/examples/Request-direct-ipv4" + }, + "ValidateDirectIpv6": { + "$ref": "#/components/examples/Request-direct-ipv6" + } + } + } }, - "description": { - "type": "string", - "description": "Customer-provided connection description" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateSubnetResponse" + }, + "examples": { + "ValidateSubnet": { + "$ref": "#/components/examples/Response-200" + } + } + } + } }, - "state": { - "$ref": "#/components/schemas/ConnectionState" - }, - "change": { - "$ref": "#/components/schemas/Change" - }, - "operation": { - "$ref": "#/components/schemas/ConnectionOperation" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "Bad Request": { + "$ref": "#/components/examples/error-400" + }, + "Subnet Overlapping": { + "$ref": "#/components/examples/error-400-overlappingSubnet" + } + } + } + } + } + } + } + }, + "/fabric/v4/routers/search": { + "post": { + "tags": [ + "Cloud Routers" + ], + "summary": "Search Routers", + "description": "The API provides capability to get list of user's Cloud Routers using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchCloudRouters", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterByNameAndMetroName": { + "$ref": "#/components/examples/SearchFilterByNameAndMetroName" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } } }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" - }, - "bandwidth": { - "maximum": 10000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth in Mbps" - }, - "geoScope": { - "$ref": "#/components/schemas/GeoScopeType" - }, - "redundancy": { - "$ref": "#/components/schemas/ConnectionRedundancy" - }, - "isRemote": { - "type": "boolean", - "description": "Connection property derived from access point locations" + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/search-example" + } + } + } + } }, - "direction": { - "$ref": "#/components/schemas/ConnectionDirection" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "aSide": { - "$ref": "#/components/schemas/ConnectionSide" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "description": "Connection additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } } }, - "project": { - "$ref": "#/components/schemas/Project" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Connection specification" - }, - "ErrorList": { - "type": "array", - "description": "List of Error Message", - "items": { - "$ref": "#/components/schemas/Error" } - }, - "ConnectionId": { - "type": "string", - "description": "Connection UUID", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "ConnectionDirection": { - "type": "string", - "description": "Connection directionality from the requester point of view", - "enum": [ - "INTERNAL", - "INCOMING", - "OUTGOING" - ] - }, - "VirtualCircuitId": { - "type": "string", - "description": "Virtual Circuit UUID" - }, - "ConnectionUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Connection Update Request", - "items": { - "$ref": "#/components/schemas/ConnectionChangeOperation" - } - }, - "ConnectionActionRequest": { - "required": [ - "type" + } + }, + "/fabric/v4/routerPackages": { + "get": { + "tags": [ + "Cloud Routers" ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/Actions" - }, - "description": { - "type": "string", - "description": "Connection rejection reason datail" + "summary": "List Packages", + "description": "This API provides capability to retrieve user's Cloud Routers Packages", + "operationId": "getCloudRouterPackages", + "parameters": [ + { + "name": "offset", + "in": "query", + "description": "offset", + "required": false, + "schema": { + "type": "integer" + }, + "example": 1 }, - "data": { - "$ref": "#/components/schemas/ConnectionAcceptanceData" - } - }, - "description": "Connection action request" - }, - "ConnectionAction": { - "required": [ - "data", - "href", - "type", - "uuid" + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 + } ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/Actions" - }, - "href": { - "type": "string", - "description": "Connection action URI", - "format": "uri", - "readOnly": true - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier" + "responses": { + "200": { + "description": "Fabric Cloud Router Packages", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/ListFCRPackagesResponse" + } + } + } + } }, - "description": { - "type": "string", - "description": "Connection rejection reason detail" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "data": { - "$ref": "#/components/schemas/ConnectionAcceptanceData" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" - } - }, - "description": "Connection action" - }, - "GetResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "data": { - "type": "array", - "description": "List of Routing Protocols", - "items": { - "$ref": "#/components/schemas/RoutingProtocolData" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } } - }, - "RoutingProtocolBase": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP", - "DIRECT" - ] - } - }, - "oneOf": [ - { - "$ref": "#/components/schemas/RoutingProtocolBGPType" - }, + } + }, + "/fabric/v4/routerPackages/{routerPackageCode}": { + "get": { + "tags": [ + "Cloud Routers" + ], + "summary": "Get Package Details", + "description": "This API provides capability to retrieve user's Cloud Routers Package Details", + "operationId": "getCloudRouterPackageByCode", + "parameters": [ { - "$ref": "#/components/schemas/RoutingProtocolDirectType" + "name": "routerPackageCode", + "in": "path", + "description": "Equinix-assigned Cloud Router package identifier", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterPackageCode" + } } - ] - }, - "RoutingProtocolBGPType": { - "required": [ - "type" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP" - ] - }, - "name": { - "type": "string", - "example": "My-BGP-route-1" - }, - "bgpIpv4": { - "$ref": "#/components/schemas/BGPConnectionIpv4" + "responses": { + "200": { + "description": "Fabric Cloud Router Package details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPackage" + } + } + } }, - "bgpIpv6": { - "$ref": "#/components/schemas/BGPConnectionIpv6" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_package" + } + } + } + } }, - "customerAsn": { - "type": "integer", - "description": "Customer asn", - "format": "int64" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "equinixAsn": { - "type": "integer", - "description": "Equinix asn", - "format": "int64" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "bgpAuthKey": { - "type": "string", - "description": "BGP authorization key" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "bfd": { - "$ref": "#/components/schemas/RoutingProtocolBFD" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } } - }, - "RoutingProtocolDirectType": { - "required": [ - "type" + } + }, + "/fabric/v4/health": { + "get": { + "tags": [ + "Health" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "DIRECT" - ] - }, - "name": { - "type": "string", - "example": "My-direct-route-1" - }, - "directIpv4": { - "$ref": "#/components/schemas/DirectConnectionIpv4" - }, - "directIpv6": { - "$ref": "#/components/schemas/DirectConnectionIpv6" + "summary": "Get service status", + "description": "GET All service health statys with an option query parameter to return all Equinix Fabric customer in which the customer has a presence.", + "operationId": "getStatus", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + }, + "examples": { + "metroExample": { + "$ref": "#/components/examples/healthResponse" + } + } + } + } } } - }, - "RoutingProtocolData": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Routing protocol type", - "enum": [ - "BGP", - "DIRECT" - ] - } + } + }, + "/fabric/v4/connections/validate": { + "post": { + "tags": [ + "Connections" + ], + "summary": "Validate Connection", + "description": "This API provides capability to validate by auth key", + "operationId": "validateConnections", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "Alibaba-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Alibaba" + }, + "Aws-ValidateAuthKey": { + "$ref": "#/components/examples/Request_AWS" + }, + "Azure-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Azure" + }, + "Google-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Google" + }, + "IBM-1.0-ValidateAuthKey": { + "$ref": "#/components/examples/Request_IBM_1" + }, + "IBM-2.0-ValidateAuthKey": { + "$ref": "#/components/examples/Request_IBM_2" + }, + "Oracle-ValidateAuthKey": { + "$ref": "#/components/examples/Request_Oracle" + }, + "Dot1q-ValidateVlanAvailability": { + "$ref": "#/components/examples/Dot1q_Vlan" + }, + "Qinq-ValidateVlanAvailability": { + "$ref": "#/components/examples/Qinq_Vlan" + } + } + } + }, + "required": true }, - "oneOf": [ - { - "$ref": "#/components/schemas/RoutingProtocolBGPData" + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionResponse" + }, + "examples": { + "Alibaba-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Alibaba" + }, + "Aws-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Aws" + }, + "Azure-ValidateAuthKey-no-existing-connections": { + "$ref": "#/components/examples/Response-Azure-no-existing-connections" + }, + "Azure-ValidateAuthKey-1-existing-Dot1q-connection": { + "$ref": "#/components/examples/Response-Azure-1-existing-Dot1q-connection" + }, + "Azure-ValidateAuthKey-1-existing-Qinq-connection": { + "$ref": "#/components/examples/Response-Azure-1-existing-Qinq-connection" + }, + "Azure-ValidateAuthKey-2-existing-Dot1q-connection": { + "$ref": "#/components/examples/Response-Azure-2-existing-Dot1q-connections" + }, + "Google-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Google" + }, + "IBM-1.0-ValidateAuthKey": { + "$ref": "#/components/examples/Response-IBM-1" + }, + "IBM-2.0-ValidateAuthKey": { + "$ref": "#/components/examples/Response-IBM-2" + }, + "Oracle-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Oracle" + }, + "Dot1q-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Dot1q-Vlan" + }, + "Qinq-ValidateAuthKey": { + "$ref": "#/components/examples/Response-Qinq-Vlan" + } + } + } + } }, - { - "$ref": "#/components/schemas/RoutingProtocolDirectData" - } - ] - }, - "ConnectionRoutingProtocolPostRequest": { - "type": "object", - "properties": { - "data": { - "type": "array", - "description": "Connection routing protocol configuration", - "items": { - "$ref": "#/components/schemas/RoutingProtocolBase" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "Bad Request": { + "$ref": "#/components/examples/error-400" + } + } + } } } - }, - "description": "Create connection routing protocolpost request" - }, - "RoutingProtocolId": { - "type": "string", - "description": "Routing Protocol UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "ConnectionRoutingProtocolPatchRequest": { - "minItems": 1, - "type": "array", - "description": "Patch connection routing protocol request", - "items": { - "$ref": "#/components/schemas/ConnectionChangeOperation" } - }, - "BGPActionsBulkData": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BGPActionData" + } + }, + "/fabric/v4/networks": { + "post": { + "tags": [ + "Networks" + ], + "summary": "Create Network", + "description": "This API provides capability to create user's Fabric Network", + "operationId": "createNetwork", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkPostRequest" + }, + "examples": { + "CreateGlobalNetwork": { + "$ref": "#/components/examples/CreateGlobalNetwork" + }, + "CreateRegionalNetwork": { + "$ref": "#/components/examples/CreateRegionalNetwork" + } + } } - } + }, + "required": true }, - "description": "List of BGP Actions" - }, - "BGPActionRequest": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/BGPActions" - } - }, - "description": "BGP action request" - }, - "BGPActionData": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Routing Protocol URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5/actions" + "responses": { + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPostResponseExample" + } + } + } + } }, - "uuid": { - "type": "string", - "description": "Routing protocol identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" + } + } + } + } }, - "type": { - "$ref": "#/components/schemas/BGPActions" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "description": { - "type": "string", - "description": "BGP action description" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "state": { - "$ref": "#/components/schemas/BGPActionStates" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "changelog": { - "$ref": "#/components/schemas/Changelog" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } } - }, - "ActionId": { - "type": "string", - "description": "BGP Action UUID", - "format": "uuid", - "example": "86534014-34b4-53f6-45d6-4b94a92d8623" - }, - "ChangeId": { - "type": "string", - "description": "Routing Protocol Change UUID", - "format": "uuid", - "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" - }, - "RoutingProtocolChangeData": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "Current outcome of the change flow", - "enum": [ - "COMPLETED", - "FAILED", - "REQUESTED" - ] - }, - "createdBy": { - "type": "string", - "description": "Created by User Key" - }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time" - }, - "updatedBy": { - "type": "string", - "description": "Updated by User Key" - }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time" - }, - "information": { - "type": "string", - "description": "Additional information" - }, - "data": { - "$ref": "#/components/schemas/RoutingProtocolChangeOperation" - } - }, - "description": "Current state of latest Routing Protocol change", - "allOf": [ + } + }, + "/fabric/v4/networks/{networkId}": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Network By ID", + "description": "This API provides capability to retrieve user's Fabric Network", + "operationId": "getNetworkByUuid", + "parameters": [ { - "$ref": "#/components/schemas/RoutingProtocolChange" - } - ] - }, - "RoutingProtocolChangeDataResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RoutingProtocolChangeData" + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" } } - }, - "description": "List of network changes" - }, - "SearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/Expression" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkGetResponseExample" + } + } + } + } }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SortCriteria" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Search requests containing criteria" - }, - "Expression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/Expressions" }, - "or": { - "$ref": "#/components/schemas/Expressions" - }, - "property": { - "$ref": "#/components/schemas/SearchFieldName" - }, - "operator": { - "type": "string", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "IN", - "NOT IN", - "IS NOT NULL", - "IS NULL" - ] + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "values": { - "type": "array", - "items": { - "type": "string" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } } } } }, - "Expressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Expression" - } - }, - "SearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/isRemote", - "/name", - "/uuid", - "/type", - "/geoScope", - "/account/orgId", - "/aSide/accessPoint/account/accountName", - "/aSide/accessPoint/account/accountNumber", - "/aSide/accessPoint/router/uuid", - "/aSide/accessPoint/linkProtocol/vlanCTag", - "/aSide/accessPoint/linkProtocol/vlanSTag", - "/aSide/accessPoint/linkProtocol/vlanTagMin", - "/aSide/accessPoint/linkProtocol/vlanTagMax", - "/aSide/accessPoint/location/metroCode", - "/aSide/accessPoint/location/metroName", - "/aSide/accessPoint/name", - "/aSide/accessPoint/port/uuid", - "/aSide/accessPoint/port/name", - "/aSide/accessPoint/type", - "/aSide/accessPoint/virtualDevice/name", - "/aSide/accessPoint/virtualDevice/uuid", - "/aSide/serviceToken/uuid", - "/change/status", - "/operation/equinixStatus", - "/operation/providerStatus", - "/project/projectId", - "/redundancy/group", - "/redundancy/priority", - "/zSide/accessPoint/account/accountName", - "/zSide/accessPoint/authenticationKey", - "/zSide/accessPoint/linkProtocol/vlanCTag", - "/zSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/linkProtocol/vlanTagMin", - "/zSide/accessPoint/linkProtocol/vlanTagMax", - "/zSide/accessPoint/location/metroCode", - "/zSide/accessPoint/location/metroName", - "/zSide/accessPoint/name", - "/zSide/accessPoint/port/uuid", - "/zSide/accessPoint/network/uuid", - "/zSide/accessPoint/port/name", - "/zSide/accessPoint/profile/uuid", - "/zSide/accessPoint/type", - "/zSide/accessPoint/virtualDevice/name", - "/zSide/accessPoint/virtualDevice/uuid", - "/zSide/serviceToken/uuid", - "*" - ] - }, - "SortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/SortDirection" - }, - "property": { - "$ref": "#/components/schemas/SortBy" + "delete": { + "tags": [ + "Networks" + ], + "summary": "Delete Network By ID", + "description": "This API provides capability to delete user's Fabric Network", + "operationId": "deleteNetworkByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - } - }, - "ConnectionSearchResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + ], + "responses": { + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkDeleteResponseExample" + } + } + } + } }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SortCriteriaResponse" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } + } + } } }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection" + "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" + } + } + } } } - }, - "description": "List of connections" + } }, - "FilterBody": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/SearchExpression" + "patch": { + "tags": [ + "Networks" + ], + "summary": "Update Network By ID", + "description": "This API provides capability to update user's Fabric Network", + "operationId": "updateNetworkByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - }, - "description": "Search requests containing criteria" - }, - "SearchExpression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/SearchExpressions" - }, - "or": { - "$ref": "#/components/schemas/SearchExpressions" + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/NetworkUpdateRequest" + }, + "examples": { + "UpdateName": { + "$ref": "#/components/examples/UpdateNetworkName" + }, + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNetworkNotifications" + } + } + } }, - "property": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPatchResponseExample" + } + } + } + } }, - "operator": { - "type": "string", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "IN", - "NOT IN", - "IS NOT NULL", - "IS NULL" - ] + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } + } + } + } }, - "values": { - "type": "array", - "items": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - } - }, - "SearchExpressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchExpression" - } - }, - "PriceSearchResponse": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } }, - "pagination": { - "$ref": "#/components/schemas/Pagination" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } } - }, - "PriceErrorList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceError" - } - }, - "PriceError": { - "required": [ - "errorCode", - "errorMessage" + } + }, + "/fabric/v4/networks/search": { + "post": { + "tags": [ + "Networks" ], - "type": "object", - "properties": { - "errorCode": { - "type": "string", - "enum": [ - "EQ-3038010", - "EQ-3038022", - "EQ-3038030" - ] - }, - "errorMessage": { - "type": "string", - "enum": [ - "Validation failure", - "Invalid value", - "Internal Server Error" - ] - }, - "correlationId": { - "type": "string" + "summary": "Search Network", + "description": "The API provides capability to get list of user's Fabric Network using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchNetworks", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" + } + } + } }, - "details": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkSearchResponse" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkSearchResponseExample" + } + } + } + } }, - "help": { - "type": "string" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } + } + } + } }, - "additionalInfo": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Error with details", - "discriminator": { - "propertyName": "errorCode" - } - }, - "PortUUID": { - "type": "string", - "description": "Port UUID", - "format": "uuid" - }, - "startDateTime": { - "type": "string", - "description": "startDateTime", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "endDateTime": { - "type": "string", - "description": "endDateTime", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "Statistics": { - "type": "object", - "properties": { - "startDateTime": { - "type": "string", - "description": "Start and duration of the statistical analysis interval.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - }, - "endDateTime": { - "type": "string", - "description": "End and duration of the statistical analysis interval.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" }, - "viewPoint": { - "type": "string", - "description": "Point of view for connection metrics - aSide or zSide", - "enum": [ - "aSide", - "zSide" - ] + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "bandwidthUtilization": { - "$ref": "#/components/schemas/BandwidthUtilization" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } - }, - "description": "This API provides service-level traffic metrics so that you can view access and gather key information required to manage service subscription sizing and capacity." - }, - "BandwidthUtilization": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "description": "Aggregated data transfer capacity. Possible values- Mbps, megabits (1 million bits) per second; Gbps, gigabits (1 billion bits) per second.", - "enum": [ - "Mbps" - ] - }, - "metricInterval": { - "type": "string", - "description": "An interval formatted value, indicating the time-interval the metric objects within the response represent" - }, - "inbound": { - "$ref": "#/components/schemas/Direction" - }, - "outbound": { - "$ref": "#/components/schemas/Direction" + } + } + }, + "/fabric/v4/networks/{networkId}/connections": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Connections", + "description": "The API provides capability to get list of user's Fabric Network connections", + "operationId": "getConnectionsByNetworkUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } } - }, - "description": "Bandwidth utilization statistics (octet counters-based)" - }, - "Direction": { - "type": "object", - "properties": { - "max": { - "type": "number", - "description": "Max bandwidth within request time range, represented in units specified by response \"units\" field", - "format": "float" + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkConnections" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/GetNetworkConnectionExample" + } + } + } + } }, - "mean": { - "type": "number", - "description": "Mean bandwidth within request time range, represented in units specified by response \"units\" field", - "format": "float" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } + } }, - "metrics": { - "type": "array", - "description": "Bandwidth utilization statistics for a specified interval.", - "items": { - "$ref": "#/components/schemas/Metrics" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } - } - }, - "description": "Directional statistics" - }, - "Metrics": { - "type": "object", - "properties": { - "intervalEndTimestamp": { - "type": "string", - "description": "Interval end timestamp", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" }, - "max": { - "type": "number", - "description": "Max bandwidth within statistics object time interval, represented in units specified by response \"units\" field", - "format": "float" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "mean": { - "type": "number", - "description": "Mean bandwidth within statistics object time interval, represented in units specified by response \"units\" field", - "format": "float" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } } - }, - "description": "Bandwidth utilization statistics for a specified interval." - }, - "sort": { - "type": "string", - "description": "Key or set of keys that organizes the search payload by property (such as createdDate or metroCode) or by direction. Ascending (ASC) is the default value. The \"?\" prefix indicates descending (DESC) order.", - "default": "-bandwidthUtilization", - "enum": [ - "-bandwidthUtilization" - ] - }, - "top": { - "type": "integer", - "description": "Filter returning only the specified number of most heavily trafficked ports. The standard value is [1...10], and the default is 5.", - "default": 5 - }, - "duration": { - "type": "string", - "description": "Duration of the statistical analysis interval.", - "default": "P7D", - "enum": [ - "P7D", - "P1M", - "P3M" - ] - }, - "query_direction": { - "type": "string", - "description": "Direction of traffic from the requester's viewpoint.", - "default": "outbound", - "enum": [ - "inbound", - "outbound" - ] - }, - "metricInterval": { - "type": "string", - "description": "metric interval", - "default": "P7D", - "enum": [ - "P7D" - ] - }, - "metros": { - "type": "array", - "description": "Two-letter prefix indicating the metropolitan area in which a specified Equinix asset is located.", - "items": { - "type": "string" } - }, - "projectId": { - "type": "string", - "description": "projectId", - "example": "30ad25e2-53dc-11ed-bdc3-0242ac120002" - }, - "TopUtilizedStatistics": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "description": "Data returned from the API call.", - "items": { - "$ref": "#/components/schemas/Statistics" - } - } - }, - "description": "This API provides service-level traffic metrics for the top utilized ports so that you can view access and gather key information required to manage service subscription sizing and capacity." - }, - "viewPoint": { - "type": "string", - "description": "viewPoint", - "enum": [ - "aSide", - "zSide" - ] - }, - "ServiceProfiles": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfile" - } - }, - "pagination": { - "$ref": "#/components/schemas/Pagination" - } - }, - "description": "Service Profiles" - }, - "ServiceProfileRequest": { - "required": [ - "description", - "name", - "type" + } + }, + "/fabric/v4/networks/{networkId}/changes": { + "get": { + "tags": [ + "Networks" ], - "type": "object", - "properties": { - "project": { - "$ref": "#/components/schemas/Project" - } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", - "allOf": [ + "summary": "Get Network Changes", + "description": "The API provides capability to get list of user's Fabric Network changes", + "operationId": "getNetworkChanges", + "parameters": [ { - "$ref": "#/components/schemas/SimplifiedServiceProfile" - } - ] - }, - "SimplifiedServiceProfile": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Service Profile URI response attribute", - "format": "uri", - "readOnly": true - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileTypeEnum" - }, - "name": { - "maxLength": 50, - "type": "string", - "description": "Customer-assigned service profile name", - "example": "Sample Service Profile" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned service profile identifier", - "format": "uuid" - }, - "description": { - "type": "string", - "description": "User-provided service description should be of maximum length 375", - "example": "offering connectivity to my-network" - }, - "notifications": { - "type": "array", - "description": "Recipients of notifications on service profile change", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" - } - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "visibility": { - "$ref": "#/components/schemas/ServiceProfileVisibilityEnum" - }, - "allowedEmails": { - "type": "array", - "items": { - "type": "string", - "format": "email" + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" } - }, - "accessPointTypeConfigs": { - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointType" + } + ], + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkChangeResponse" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkChangeResponseExample" + } + } + } } }, - "customFields": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomField" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } } }, - "marketingInfo": { - "$ref": "#/components/schemas/MarketingInfo" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointCOLO" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } }, - "virtualDevices": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileAccessPointVD" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } } }, - "metros": { - "type": "array", - "description": "Derived response attribute.", - "items": { - "$ref": "#/components/schemas/ServiceMetro" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } } - }, - "selfProfile": { - "type": "boolean", - "description": "response attribute indicates whether the profile belongs to the same organization as the api-invoker." - }, - "projectId": { - "type": "string" } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n" - }, - "Tags": { - "type": "array", - "items": { - "type": "string" } - }, - "ServiceProfileAccessPointType": { - "type": "object", - "description": "Access Point Type", - "oneOf": [ - { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeCOLO" + } + }, + "/fabric/v4/networks/{networkId}/changes/{changeId}": { + "get": { + "tags": [ + "Networks" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve user's Fabric Network Change", + "operationId": "getNetworkChangeByUuid", + "parameters": [ + { + "name": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/NetworkId" + } }, { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeVD" + "name": "changeId", + "in": "path", + "description": "Network Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_3" + } } - ] - }, - "ServiceProfileAccessPointTypeCOLO": { - "required": [ - "type" ], - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" - }, - "supportedBandwidths": { - "$ref": "#/components/schemas/Bandwidths" - }, - "allowRemoteConnections": { - "type": "boolean", - "description": "Setting to allow or prohibit remote connections to the service profile.", - "example": true, - "default": false - }, - "allowCustomBandwidth": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth.", - "example": true, - "default": false - }, - "bandwidthAlertThreshold": { - "type": "number", - "description": "percentage of port bandwidth at which an allocation alert is generated - missing on wiki." - }, - "allowBandwidthAutoApproval": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller.", - "default": false - }, - "allowBandwidthUpgrade": { - "type": "boolean", - "description": "Availability of a bandwidth upgrade. The default is false." - }, - "linkProtocolConfig": { - "$ref": "#/components/schemas/ServiceProfileLinkProtocolConfig" - }, - "enableAutoGenerateServiceKey": { - "type": "boolean", - "description": "for verizon only." - }, - "connectionRedundancyRequired": { - "type": "boolean", - "description": "Mandate redundant connections", - "example": true, - "default": false + "responses": { + "200": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkChange" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkGetChangeResponseExample" + } + } + } + } }, - "apiConfig": { - "$ref": "#/components/schemas/ApiConfig" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } + } + } + } }, - "connectionLabel": { - "type": "string", - "description": "custom name for \"Connection\"" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "authenticationKey": { - "$ref": "#/components/schemas/AuthenticationKey" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "metadata": { - "$ref": "#/components/schemas/ServiceProfileMetadata" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } } - }, - "description": "Colo Access Point Type" - }, - "ServiceProfileAccessPointTypeEnum": { - "type": "string", - "description": "Access point type", - "enum": [ - "VD", - "COLO" - ] - }, - "Bandwidths": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bandwidth" } - }, - "Bandwidth": { - "type": "integer", - "description": "speed in Mbps", - "example": 50 - }, - "ServiceProfileLinkProtocolConfig": { - "type": "object", - "properties": { - "encapsulationStrategy": { - "type": "string", - "description": "was tagType - missing on wiki", - "enum": [ - "CTAGED", - "BOTH", - "NAMED" - ] - }, - "namedTags": { - "maxItems": 64, - "type": "array", - "items": { - "type": "string" + } + }, + "/fabric/v4/timeServices/{serviceId}": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Time Service", + "description": "The API provides capability to get precision timing service's details", + "operationId": "getTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" } - }, - "vlanCTagLabel": { - "type": "string", - "description": "was ctagLabel" - }, - "reuseVlanSTag": { - "type": "boolean", - "example": true, - "default": false - }, - "encapsulation": { - "type": "string", - "description": "Port encapsulation - Derived response attribute. Ignored on request payloads.", - "enum": [ - "QINQ", - "DOT1Q", - "UNTAGGED" - ] } - }, - "description": "Configuration for dot1q to qinq translation support" - }, - "ApiConfig": { - "type": "object", - "properties": { - "apiAvailable": { - "type": "boolean", - "description": "Setting indicating whether the API is available (true) or not (false).", - "example": true, - "default": false - }, - "integrationId": { - "type": "string" - }, - "equinixManagedPort": { - "type": "boolean", - "description": "Setting indicating that the port is managed by Equinix (true) or not (false).", - "example": true, - "default": false - }, - "equinixManagedVlan": { - "type": "boolean", - "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false).", - "example": true, - "default": false + ], + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "allowOverSubscription": { - "type": "boolean", - "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false.\nOversubscription is the sale of more than the available network bandwidth. This practice is common\nand legitimate. After all, many customers use less bandwidth than they've purchased.\nAnd network users don't consume bandwidth all at the same time. The leftover bandwidth can be sold to\nother customers. When demand surges, operational and engineering resources can be shifted to\naccommodate the load.\n", - "example": false, - "default": false + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - "overSubscriptionLimit": { - "maximum": 20, - "minimum": 1, - "type": "integer", - "description": "A cap on oversubscription.", - "example": 1, - "default": 1 + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "bandwidthFromApi": { - "type": "boolean", - "default": false - } - }, - "description": "Configuration for API based Integration for Service Profile" - }, - "AuthenticationKey": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "example": true, - "default": false + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "label": { - "type": "string", - "example": "Service Key" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "description": { - "type": "string", - "example": "description for the authentication key" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Authentication Key Support and Customization" + } }, - "ServiceProfileMetadata": { - "type": "object", - "properties": { - "props": { - "type": "string" - }, - "regEx": { - "type": "string" - }, - "regExMsg": { - "type": "string" - }, - "vlanRangeMaxValue": { - "type": "integer" - }, - "vlanRangeMinValue": { - "type": "integer" - }, - "maxQinq": { - "type": "string" - }, - "maxDot1q": { - "type": "integer" - }, - "variableBilling": { - "type": "boolean" - }, - "globalOrganization": { - "type": "string" - }, - "limitAuthKeyConn": { - "type": "boolean" - }, - "allowSecondaryLocation": { - "type": "boolean" - }, - "redundantProfileId": { - "type": "string" - }, - "allowVcMigration": { - "type": "boolean" - }, - "connectionEditable": { - "type": "boolean" - }, - "releaseVlan": { - "type": "boolean" - }, - "maxConnectionsOnPort": { - "type": "integer" - }, - "portAssignmentStrategy": { - "type": "string" - }, - "eqxManagedPort": { - "type": "boolean" - }, - "connectionNameEditable": { - "type": "boolean" - } - }, - "description": "Metadata. Response attribute. Ignored on request payload." - }, - "ServiceProfileAccessPointTypeVD": { - "required": [ - "type" + "delete": { + "tags": [ + "Precision Time" ], - "type": "object", - "properties": { - "uuid": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" - }, - "supportedBandwidths": { - "$ref": "#/components/schemas/Bandwidths" - }, - "allowRemoteConnections": { - "type": "boolean", - "description": "Allow remote connections to Service Profile", - "example": true - }, - "allowCustomBandwidth": { - "type": "boolean", - "example": true + "summary": "Delete time service", + "description": "Delete EPT service by it's uuid", + "operationId": "deleteTimeServiceById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } } - }, - "description": "VirtualDevice Access Point Type" - }, - "CustomField": { - "required": [ - "dataType", - "description", - "isRequired", - "label" ], - "properties": { - "label": { - "type": "string", - "example": "Account Number" - }, - "description": { - "type": "string", - "example": "Provide a valid account number" - }, - "required": { - "type": "boolean", - "example": true - }, - "dataType": { - "type": "string", - "enum": [ - "STRING", - "LIST", - "NUMBER" - ] + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "options": { - "type": "array", - "items": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } } }, - "captureInEmail": { - "type": "boolean", - "description": "capture this field as a part of email notification" - } - }, - "description": "Define Custom Attributes" - }, - "MarketingInfo": { - "type": "object", - "properties": { - "logo": { - "type": "string", - "description": "Logo file name" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "promotion": { - "type": "boolean", - "description": "Profile promotion on marketplace" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "processSteps": { - "maxItems": 3, - "type": "array", - "items": { - "$ref": "#/components/schemas/ProcessStep" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } } } } }, - "ProcessStep": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Service profile custom step title" - }, - "subTitle": { - "type": "string", - "description": "Service profile custom step sub title" - }, - "description": { - "type": "string", - "description": "Service profile custom step description" + "patch": { + "tags": [ + "Precision Time" + ], + "summary": "Patch time service", + "description": "The API provides capability to update timing service", + "operationId": "updateTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } } - }, - "description": "Definition of customized step while making connection" - }, - "ServiceProfileAccessPointCOLO": { - "required": [ - "type", - "uuid" ], - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "XF_PORT" - ] - }, - "uuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "sellerRegion": { - "type": "string" - }, - "sellerRegionDescription": { - "type": "string" - }, - "crossConnectId": { - "type": "string" - } - }, - "description": "Colo Access Point" - }, - "ServiceProfileAccessPointVD": { - "required": [ - "type", - "uuid" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "VD" - ] - }, - "uuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "interfaceUuid": { - "type": "string", - "format": "uuid", - "example": "94662143-e21b-4098-bfcf-e9416f47eae1" - } - }, - "description": "Virtual Device Point" - }, - "ServiceMetro": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "metro code" - }, - "name": { - "type": "string", - "description": "metro name" - }, - "ibxs": { - "type": "array", - "items": { - "type": "string", - "description": "ibx codes" - } - }, - "inTrail": { - "type": "boolean" - }, - "displayName": { - "type": "string", - "description": "service metro display name" - }, - "sellerRegions": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "ServiceProfile": { - "type": "object", - "properties": { - "state": { - "$ref": "#/components/schemas/ServiceProfileStateEnum" - }, - "account": { - "description": "Seller Account for Service Profile.", - "allOf": [ - { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - { - "type": "object" - } - ] - }, - "project": { - "$ref": "#/components/schemas/Project" - }, - "changeLog": { - "description": "Seller Account for Service Profile.", - "allOf": [ - { - "$ref": "#/components/schemas/Changelog" + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "maxItems": 1, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/precisionTimeChangeOperation" + } }, - { - "type": "object" + "examples": { + "editName": { + "$ref": "#/components/examples/edit" + } } - ] - } - }, - "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", - "allOf": [ - { - "$ref": "#/components/schemas/SimplifiedServiceProfile" - } - ] - }, - "ServiceProfileSearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/ServiceProfileFilter" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileSortCriteria" } - } - }, - "description": "Search requests containing criteria" - }, - "ServiceProfileFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/ServiceProfileSimpleExpression" - }, - { - "$ref": "#/components/schemas/ServiceProfileAndFilter" - } - ] - }, - "ServiceProfileSimpleExpression": { - "type": "object", - "properties": { - "property": { - "type": "string", - "description": "Possible field names to use on filters:\n * `/name` - Service Profile name\n * `/uuid` - Service Profile uuid\n * `/state` - Service Profile status\n * `/metros/code` - Service Profile metro code\n * `/visibility` - Service Profile package\n * `/type` - Service Profile package\n * `/project/projectId` - Service Profile project id\n", - "example": "/name" - }, - "operator": { - "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n", - "example": "=" }, - "values": { - "type": "array", - "items": { - "type": "string", - "example": "ServiceProfile-1" - } - } - } - }, - "ServiceProfileAndFilter": { - "type": "object", - "properties": { - "and": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceProfileSimpleExpression" + "required": true + }, + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } } - } - } - }, - "ServiceProfileSortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/ServiceProfileSortDirection" }, - "property": { - "$ref": "#/components/schemas/ServiceProfileSortBy" - } - } - }, - "ServiceProfileSortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "ServiceProfileSortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/state", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] - }, - "ServiceProfileId": { - "type": "string", - "description": "Service Profile UUID", - "format": "uuid" - }, - "JsonPatch": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatchOperation" - } - }, - "JsonPatchOperation": { - "type": "object", - "description": "Service Profile Access Points", - "oneOf": [ - { - "$ref": "#/components/schemas/AddOperation" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - { - "$ref": "#/components/schemas/RemoveOperation" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - { - "$ref": "#/components/schemas/ReplaceOperation" - } - ] - }, - "AddOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } }, - "value": { - "type": "object", - "description": "value to add" + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } } - }, - "description": "Add Sub-Resource to the existing model" - }, - "OpEnum": { - "type": "string", - "description": "the operation to be performed", - "enum": [ - "add", - "remove", - "replace" - ] - }, - "Path": { - "type": "string", - "description": "A JSON Pointer path." - }, - "RemoveOperation": { - "required": [ - "op", - "path" + } + } + }, + "/fabric/v4/timeServices": { + "post": { + "tags": [ + "Precision Time" ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "summary": "Create Time Service", + "description": "The API provides capability to create timing service", + "operationId": "createTimeServices", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceRequest" + }, + "examples": { + "ntpSingleStandard": { + "$ref": "#/components/examples/ntpSingleStandard" + }, + "ptpSingleStandard": { + "$ref": "#/components/examples/ptpSingleStandard" + }, + "ptpSingleEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/ptpSingleEnterpriseWithAdvanceConfiguration" + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" - } + "required": true }, - "description": "Remove sub-resource from an existing model" - }, - "ReplaceOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { - "$ref": "#/components/schemas/OpEnum" + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceCreateResponse" + }, + "examples": { + "NtpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + } + } + } + } }, - "path": { - "$ref": "#/components/schemas/Path" + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "MandatoryName": { + "$ref": "#/components/examples/400-Mandatory-Name" + }, + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } }, - "value": { - "type": "object", - "description": "value to replace with" - } - }, - "description": "Replace attribute value or sub-resource in the existing model" - }, - "ServiceTokenUUID": { - "type": "string", - "description": "Service Token UUID", - "format": "uuid" - }, - "ServiceToken": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ServiceTokenType" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } }, - "href": { - "type": "string", - "description": "An absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } }, - "uuid": { - "type": "string", - "description": "Equinix-assigned service token identifier", - "format": "uuid" + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ConnectionPostRequest": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectionType" }, "name": { "type": "string", - "description": "Customer-provided service token name" + "description": "Customer-provided connection name" }, - "description": { + "order": { + "$ref": "#/components/schemas/Order" + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on connection configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } + }, + "bandwidth": { + "maximum": 50000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth in Mbps" + }, + "geoScope": { + "$ref": "#/components/schemas/GeoScopeType" + }, + "redundancy": { + "$ref": "#/components/schemas/ConnectionRedundancy" + }, + "aSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "additionalInfo": { + "type": "array", + "description": "Connection additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } + } + }, + "description": "Create connection post request" + }, + "Connection": { + "required": [ + "aSide", + "bandwidth", + "name", + "type", + "zSide" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectionType" + }, + "href": { "type": "string", - "description": "Customer-provided service token description" + "description": "Connection URI", + "format": "uri", + "readOnly": true }, - "expirationDateTime": { + "uuid": { "type": "string", - "description": "Expiration date and time of the service token.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "Equinix-assigned connection identifier" }, - "connection": { - "$ref": "#/components/schemas/ServiceTokenConnection" + "name": { + "type": "string", + "description": "Customer-provided connection name" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" }, "state": { - "$ref": "#/components/schemas/ServiceTokenState" + "$ref": "#/components/schemas/ConnectionState" + }, + "change": { + "$ref": "#/components/schemas/Change" + }, + "operation": { + "$ref": "#/components/schemas/ConnectionOperation" + }, + "order": { + "$ref": "#/components/schemas/Order" }, "notifications": { "type": "array", - "description": "Service token related notifications", + "description": "Preferences for notifications on connection configuration or status changes", "items": { "$ref": "#/components/schemas/SimplifiedNotification" } @@ -10682,283 +11589,286 @@ "account": { "$ref": "#/components/schemas/SimplifiedAccount" }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" }, + "bandwidth": { + "maximum": 10000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth in Mbps" + }, + "geoScope": { + "$ref": "#/components/schemas/GeoScopeType" + }, + "redundancy": { + "$ref": "#/components/schemas/ConnectionRedundancy" + }, + "isRemote": { + "type": "boolean", + "description": "Connection property derived from access point locations" + }, + "direction": { + "$ref": "#/components/schemas/ConnectionDirection" + }, + "aSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + }, + "additionalInfo": { + "type": "array", + "description": "Connection additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } + }, "project": { "$ref": "#/components/schemas/Project" } }, - "description": "Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens authorize users to access protected resources and services. The tokens remove sensitive content from the environment, rather than just masking it, making the protected data impossible to unencrypt or decrypt. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets." + "description": "Connection specification" }, - "ServiceTokenUpdateRequest": { + "ErrorList": { + "type": "array", + "description": "List of Error Message", + "items": { + "$ref": "#/components/schemas/Error" + } + }, + "ConnectionId": { + "type": "string", + "description": "Connection UUID", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "ConnectionDirection": { + "type": "string", + "description": "Connection directionality from the requester point of view", + "enum": [ + "INTERNAL", + "INCOMING", + "OUTGOING" + ] + }, + "VirtualCircuitId": { + "type": "string", + "description": "Virtual Circuit UUID" + }, + "ConnectionUpdateRequest": { "minItems": 1, "type": "array", - "description": "Service Token Update Request", + "description": "Connection Update Request", "items": { - "$ref": "#/components/schemas/ServiceTokenChangeOperation" + "$ref": "#/components/schemas/ConnectionChangeOperation" } }, - "ServiceTokens": { + "ConnectionActionRequest": { + "required": [ + "type" + ], "type": "object", "properties": { - "data": { - "type": "array", - "description": "List of Service Tokens", - "items": { - "$ref": "#/components/schemas/ServiceToken" - } + "type": { + "$ref": "#/components/schemas/Actions" }, - "pagination": { - "$ref": "#/components/schemas/Pagination" + "description": { + "type": "string", + "description": "Connection rejection reason datail" + }, + "data": { + "$ref": "#/components/schemas/ConnectionAcceptanceData" } }, - "description": "Service tokens authorize a user to access protected resources and services available on the Equinix Fabric network. The owner of the resources can distribute service tokens to third-party users (trusted partners and vendors), allowing them to directly access and work with the resources on the network without involving the resource owners." + "description": "Connection action request" }, - "ServiceTokenActionRequest": { + "ConnectionAction": { "required": [ - "type" + "data", + "href", + "type", + "uuid" ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/ServiceTokenActions" + "$ref": "#/components/schemas/Actions" + }, + "href": { + "type": "string", + "description": "Connection action URI", + "format": "uri", + "readOnly": true + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier" + }, + "description": { + "type": "string", + "description": "Connection rejection reason detail" + }, + "data": { + "$ref": "#/components/schemas/ConnectionAcceptanceData" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" } }, - "description": "Service Token action request" + "description": "Connection action" }, - "ServiceTokenSearchRequest": { + "GetResponse": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/ServiceTokenSearchExpression" - }, "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - } - }, - "description": "Search requests containing criteria" - }, - "ServiceTokenSearchExpression": { - "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/ServiceTokenSearchExpressions" - }, - "property": { - "$ref": "#/components/schemas/ServiceTokenSearchFieldName" - }, - "operator": { - "type": "string", - "enum": [ - "=" - ] + "$ref": "#/components/schemas/Pagination" }, - "values": { + "data": { "type": "array", + "description": "List of Routing Protocols", "items": { - "type": "string" + "$ref": "#/components/schemas/RoutingProtocolData" } } } }, - "ServiceTokenSearchExpressions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTokenSearchExpression" - } - }, - "ServiceTokenSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/uuid", - "/state", - "/name", - "/project/projectId" - ] - }, - "Presence": { - "type": "string", - "description": "Presence", - "enum": [ - "MY_PORTS" - ] - }, - "MetroResponse": { + "RoutingProtocolBase": { "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" - }, - "data": { - "type": "array", - "description": "List of Fabric Metros.", - "items": { - "$ref": "#/components/schemas/Metro" - } + "type": { + "type": "string", + "description": "Routing protocol type", + "enum": [ + "BGP", + "DIRECT" + ] } }, - "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." + "oneOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolBGPType" + }, + { + "$ref": "#/components/schemas/RoutingProtocolDirectType" + } + ] }, - "Metro": { + "RoutingProtocolBGPType": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "The Canonical URL at which the resource resides." - }, "type": { "type": "string", - "description": "Indicator of a Fabric Metro" + "description": "Routing protocol type", + "enum": [ + "BGP" + ] }, - "code": { + "name": { "type": "string", - "description": "Code Assigned to an Equinix IBX data center in a specified metropolitan area." + "example": "My-BGP-route-1" }, - "region": { - "type": "string", - "description": "Board geographic area in which the data center is located" + "bgpIpv4": { + "$ref": "#/components/schemas/BGPConnectionIpv4" }, - "name": { - "type": "string", - "description": "Name of the region in which the data center is located." + "bgpIpv6": { + "$ref": "#/components/schemas/BGPConnectionIpv6" }, - "equinixAsn": { + "customerAsn": { "type": "integer", - "description": "Autonomous system number (ASN) for a specified Fabric metro. The ASN is a unique identifier that carries the network routing protocol and exchanges that data with other internal systems via border gateway protocol.", + "description": "Customer asn", "format": "int64" }, - "localVCBandwidthMax": { + "equinixAsn": { "type": "integer", - "description": "This field holds Max Connection speed with in the metro", + "description": "Equinix asn", "format": "int64" }, - "geoCoordinates": { - "$ref": "#/components/schemas/GeoCoordinates" - }, - "connectedMetros": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectedMetro" - } - }, - "geoScopes": { - "type": "array", - "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." - }, - "GeoCoordinates": { - "type": "object", - "properties": { - "latitude": { - "type": "number", - "description": "Latitude of a Fabric Metro", - "format": "double" + "bgpAuthKey": { + "type": "string", + "description": "BGP authorization key" }, - "longitude": { - "type": "number", - "description": "Longitude of a Fabric Metro", - "format": "double" + "bfd": { + "$ref": "#/components/schemas/RoutingProtocolBFD" } - }, - "description": "Geographic location data of Fabric Metro" + } }, - "ConnectedMetro": { + "RoutingProtocolDirectType": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { + "type": { "type": "string", - "description": "The Canonical URL at which the resource resides." + "description": "Routing protocol type", + "enum": [ + "DIRECT" + ] }, - "code": { + "name": { "type": "string", - "description": "Code assigned to an Equinix International Business Exchange (IBX) data center in a specified metropolitan area." + "example": "My-direct-route-1" }, - "avgLatency": { - "type": "number", - "description": "Average latency (in milliseconds[ms]) between two specified metros." + "directIpv4": { + "$ref": "#/components/schemas/DirectConnectionIpv4" }, - "remoteVCBandwidthMax": { - "type": "integer", - "description": "This field holds the Max Connection speed with connected metros", - "format": "int64" + "directIpv6": { + "$ref": "#/components/schemas/DirectConnectionIpv6" } - }, - "description": "Arrays of objects containing latency data for the specified metros" - }, - "GeoScopeType": { - "type": "string", - "description": "Geographic boundary types", - "enum": [ - "CANADA", - "CONUS" - ] - }, - "MetroErrorList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetroError" } }, - "MetroError": { - "required": [ - "errorCode", - "errorMessage" - ], + "RoutingProtocolData": { "type": "object", "properties": { - "errorCode": { - "type": "string", - "enum": [ - "EQ-3036001", - "EQ-3036013", - "EQ-3036030", - "EQ-3036100" - ] - }, - "errorMessage": { + "type": { "type": "string", + "description": "Routing protocol type", "enum": [ - "Unauthorized", - "Invalid Query Parameter", - "Invalid Path Parameter", - "Invalid Query or Path Parameter", - "Internal Server Error", - "Metro Not Found" + "BGP", + "DIRECT" ] + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolBGPData" }, - "correlationId": { - "type": "string" - }, - "details": { - "type": "string" - }, - "help": { - "type": "string" - }, - "additionalInfo": { + { + "$ref": "#/components/schemas/RoutingProtocolDirectData" + } + ] + }, + "ConnectionRoutingProtocolPostRequest": { + "type": "object", + "properties": { + "data": { "type": "array", + "description": "Connection routing protocol configuration", "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "$ref": "#/components/schemas/RoutingProtocolBase" } } }, - "description": "Error with details", - "discriminator": { - "propertyName": "errorCode" - } + "description": "Create connection routing protocolpost request" }, - "MetroCode": { + "RoutingProtocolId": { "type": "string", - "description": "Metro Code" - }, - "AllPortsResponse": { + "description": "Routing Protocol UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "ConnectionRoutingProtocolPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch connection routing protocol request", + "items": { + "$ref": "#/components/schemas/ConnectionChangeOperation" + } + }, + "BGPActionsBulkData": { "type": "object", "properties": { "pagination": { @@ -10966,363 +11876,312 @@ }, "data": { "type": "array", - "description": "GET All User Port Across Fabric Metros", "items": { - "$ref": "#/components/schemas/Port" + "$ref": "#/components/schemas/BGPActionData" } } }, - "description": "GET All User Port Across Fabric Metros" + "description": "List of BGP Actions" }, - "Port": { + "BGPActionRequest": { "required": [ - "account", - "connectivitySourceType", - "encapsulation", - "location", - "physicalPortsSpeed", - "physicalPortsType", - "settings", "type" ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/PortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Port Id" - }, + "$ref": "#/components/schemas/BGPActions" + } + }, + "description": "BGP action request" + }, + "BGPActionData": { + "type": "object", + "properties": { "href": { "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "description": "Routing Protocol URI", "format": "uri", - "readOnly": true + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5/actions" }, "uuid": { "type": "string", - "description": "Equinix assigned response attribute for port identifier", - "format": "uuid" + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "name": { - "type": "string", - "description": "Equinix assigned response attribute for Port name" + "type": { + "$ref": "#/components/schemas/BGPActions" }, "description": { "type": "string", - "description": "Equinix assigned response attribute for Port description" - }, - "physicalPortsSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Ports Speed in Mbps" - }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Connection count" - }, - "physicalPortsType": { - "type": "string", - "description": "Physical Ports Type", - "enum": [ - "1000BASE_LX", - "10GBASE_LR", - "100GBASE_LR4", - "10GBASE_ER", - "1000BASE_SX" - ] - }, - "physicalPortsCount": { - "type": "integer" - }, - "connectivitySourceType": { - "type": "string", - "description": "Port connectivity type", - "enum": [ - "COLO", - "BMMR", - "REMOTE" - ] - }, - "bmmrType": { - "type": "string", - "enum": [ - "SELF", - "EQUINIX" - ] - }, - "project": { - "$ref": "#/components/schemas/Project" + "description": "BGP action description" }, "state": { - "$ref": "#/components/schemas/PortState" - }, - "order": { - "$ref": "#/components/schemas/PortOrder" - }, - "cvpId": { - "type": "string", - "description": "Equinix assigned response attribute for Unique ID for a virtual port." - }, - "operation": { - "$ref": "#/components/schemas/PortOperation" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "$ref": "#/components/schemas/BGPActionStates" }, "changelog": { "$ref": "#/components/schemas/Changelog" - }, - "serviceType": { + } + } + }, + "ActionId": { + "type": "string", + "description": "BGP Action UUID", + "format": "uuid", + "example": "86534014-34b4-53f6-45d6-4b94a92d8623" + }, + "ChangeId": { + "type": "string", + "description": "Routing Protocol Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RoutingProtocolChangeData": { + "type": "object", + "properties": { + "status": { "type": "string", - "description": "Port service Type", + "description": "Current outcome of the change flow", "enum": [ - "EPL", - "MSP" + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - "bandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port bandwidth in Mbps" - }, - "availableBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" - }, - "usedBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "device": { - "$ref": "#/components/schemas/PortDevice" - }, - "interface": { - "$ref": "#/components/schemas/PortInterface" - }, - "demarcationPointIbx": { + "createdBy": { "type": "string", - "description": "A-side/Equinix ibx" + "description": "Created by User Key" }, - "tetherIbx": { + "createdDateTime": { "type": "string", - "description": "z-side/Equinix ibx" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "redundancy": { - "$ref": "#/components/schemas/PortRedundancy" - }, - "encapsulation": { - "$ref": "#/components/schemas/PortEncapsulation" - }, - "lagEnabled": { - "type": "boolean", - "description": "If LAG enabled" - }, - "lag": { - "$ref": "#/components/schemas/PortLag" - }, - "asn": { - "type": "integer", - "description": "Port ASN" - }, - "settings": { - "$ref": "#/components/schemas/PortSettings" + "description": "Set when change flow starts", + "format": "date-time" }, - "physicalPortQuantity": { - "type": "integer", - "description": "Number of physical ports" + "updatedBy": { + "type": "string", + "description": "Updated by User Key" }, - "notifications": { - "type": "array", - "description": "Notification preferences", - "items": { - "$ref": "#/components/schemas/PortNotification" - } + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time" }, - "additionalInfo": { - "type": "array", - "description": "Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } + "information": { + "type": "string", + "description": "Additional information" }, - "physicalPorts": { - "type": "array", - "description": "Physical ports that implement this port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "data": { + "$ref": "#/components/schemas/RoutingProtocolChangeOperation" + } + }, + "description": "Current state of latest Routing Protocol change", + "allOf": [ + { + "$ref": "#/components/schemas/RoutingProtocolChange" + } + ] + }, + "RoutingProtocolChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "loas": { + "data": { "type": "array", - "description": "Port Loas", "items": { - "$ref": "#/components/schemas/PortLoa" + "$ref": "#/components/schemas/RoutingProtocolChangeData" } } }, - "description": "Port specification" + "description": "List of network changes" }, - "PhysicalPort": { + "SearchRequest": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/PhysicalPortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Physical Port Id" - }, - "href": { - "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true - }, - "state": { - "$ref": "#/components/schemas/PortState" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "interfaceSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Port Speed in Mbps" - }, - "interfaceType": { - "type": "string", - "description": "Physical Port Interface Type" - }, - "tether": { - "$ref": "#/components/schemas/PortTether" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "additionalInfo": { - "type": "array", - "description": "Physical Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } - }, - "order": { - "$ref": "#/components/schemas/PortOrder" + "filter": { + "$ref": "#/components/schemas/Expression" }, - "operation": { - "$ref": "#/components/schemas/PortOperation" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "loas": { + "sort": { "type": "array", - "description": "Port Loas", "items": { - "$ref": "#/components/schemas/PortLoa" + "$ref": "#/components/schemas/SortCriteria" } } }, - "description": "Physical Port specification" + "description": "Search requests containing criteria" }, - "BulkPort": { + "Expression": { "type": "object", "properties": { - "data": { + "and": { + "$ref": "#/components/schemas/Expressions" + }, + "or": { + "$ref": "#/components/schemas/Expressions" + }, + "property": { + "$ref": "#/components/schemas/SearchFieldName" + }, + "operator": { + "type": "string", + "enum": [ + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "IN", + "NOT IN", + "IS NOT NULL", + "IS NULL" + ] + }, + "values": { "type": "array", "items": { - "$ref": "#/components/schemas/Port" + "type": "string" } } - }, - "description": "Create bulk port request" + } }, - "BulkPhysicalPort": { + "Expressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Expression" + } + }, + "SearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/isRemote", + "/name", + "/uuid", + "/type", + "/geoScope", + "/account/orgId", + "/aSide/accessPoint/account/accountName", + "/aSide/accessPoint/account/accountNumber", + "/aSide/accessPoint/router/uuid", + "/aSide/accessPoint/linkProtocol/vlanCTag", + "/aSide/accessPoint/linkProtocol/vlanSTag", + "/aSide/accessPoint/linkProtocol/vlanTagMin", + "/aSide/accessPoint/linkProtocol/vlanTagMax", + "/aSide/accessPoint/location/metroCode", + "/aSide/accessPoint/location/metroName", + "/aSide/accessPoint/name", + "/aSide/accessPoint/port/uuid", + "/aSide/accessPoint/port/name", + "/aSide/accessPoint/type", + "/aSide/accessPoint/virtualDevice/name", + "/aSide/accessPoint/virtualDevice/uuid", + "/aSide/serviceToken/uuid", + "/change/status", + "/operation/equinixStatus", + "/operation/providerStatus", + "/project/projectId", + "/redundancy/group", + "/redundancy/priority", + "/zSide/accessPoint/account/accountName", + "/zSide/accessPoint/authenticationKey", + "/zSide/accessPoint/linkProtocol/vlanCTag", + "/zSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/linkProtocol/vlanTagMin", + "/zSide/accessPoint/linkProtocol/vlanTagMax", + "/zSide/accessPoint/location/metroCode", + "/zSide/accessPoint/location/metroName", + "/zSide/accessPoint/name", + "/zSide/accessPoint/port/uuid", + "/zSide/accessPoint/network/uuid", + "/zSide/accessPoint/port/name", + "/zSide/accessPoint/profile/uuid", + "/zSide/accessPoint/type", + "/zSide/accessPoint/virtualDevice/name", + "/zSide/accessPoint/virtualDevice/uuid", + "/zSide/serviceToken/uuid", + "*" + ] + }, + "SortCriteria": { "type": "object", "properties": { - "data": { - "type": "array", - "description": "add physical ports to virtual port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "direction": { + "$ref": "#/components/schemas/SortDirection" + }, + "property": { + "$ref": "#/components/schemas/SortBy" } - }, - "description": "Add to Lag request" + } }, - "AllPhysicalPortsResponse": { + "ConnectionSearchResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, - "data": { + "sort": { "type": "array", - "description": "GET All Physical Ports", "items": { - "$ref": "#/components/schemas/PhysicalPort" + "$ref": "#/components/schemas/SortCriteriaResponse" } - } - }, - "description": "GET All Physical Ports" - }, - "LinkProtocolGetResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" }, "data": { "type": "array", "items": { - "$ref": "#/components/schemas/LinkProtocolResponse" + "$ref": "#/components/schemas/Connection" } } }, - "description": "List of Vlans" + "description": "List of connections" }, - "PortV4SearchRequest": { + "FilterBody": { "type": "object", "properties": { "filter": { - "$ref": "#/components/schemas/PortExpression" - }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PortSortCriteria" - } + "$ref": "#/components/schemas/SearchExpression" } }, "description": "Search requests containing criteria" }, - "PortExpression": { + "SearchExpression": { "type": "object", "properties": { "and": { - "$ref": "#/components/schemas/PortExpressions" + "$ref": "#/components/schemas/SearchExpressions" }, "or": { - "$ref": "#/components/schemas/PortExpressions" + "$ref": "#/components/schemas/SearchExpressions" }, "property": { - "$ref": "#/components/schemas/PortSearchFieldName" + "type": "string" }, "operator": { "type": "string", "enum": [ - "=" + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "IN", + "NOT IN", + "IS NOT NULL", + "IS NULL" ] }, "values": { @@ -11333,323 +12192,243 @@ } } }, - "PortExpressions": { + "SearchExpressions": { "type": "array", "items": { - "$ref": "#/components/schemas/PortExpression" + "$ref": "#/components/schemas/SearchExpression" } }, - "PortSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "enum": [ - "/project/projectId", - "/settings/productCode", - "/state" - ] - }, - "PortSortCriteria": { + "PriceSearchResponse": { "type": "object", "properties": { - "direction": { - "$ref": "#/components/schemas/PortSortDirection" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, - "property": { - "$ref": "#/components/schemas/PortSortBy" + "pagination": { + "$ref": "#/components/schemas/Pagination" } } }, - "CloudRouterPostRequest": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "XF_ROUTER" - ] - }, - "name": { - "type": "string", - "description": "Customer-provided Cloud Router name" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocationWithoutIBX" - }, - "package": { - "$ref": "#/components/schemas/CloudRouterPackageType" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "project": { - "$ref": "#/components/schemas/Project" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "notifications": { - "type": "array", - "description": "Preferences for notifications on connection configuration or status changes", - "items": { - "$ref": "#/components/schemas/SimplifiedNotification" - } - } - }, - "description": "Create Cloud Router" + "PriceErrorList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError" + } }, - "CloudRouter": { + "PriceError": { + "required": [ + "errorCode", + "errorMessage" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Cloud Routers URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170" - }, - "uuid": { + "errorCode": { "type": "string", - "description": "Equinix-assigned access point identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "enum": [ + "EQ-3038010", + "EQ-3038022", + "EQ-3038030" + ] }, - "name": { + "errorMessage": { "type": "string", - "description": "Customer-provided Cloud Router name", - "format": "string", - "example": "test-fg-1" - }, - "state": { - "$ref": "#/components/schemas/CloudRouterAccessPointState" - }, - "equinixAsn": { - "type": "integer", - "description": "Equinix ASN", - "format": "int64", - "example": 30000 - }, - "bgpIpv4RoutesCount": { - "minimum": 0, - "type": "integer", - "description": "Access point used and maximum number of IPv4 BGP routes" - }, - "bgpIpv6RoutesCount": { - "minimum": 0, - "type": "integer", - "description": "Access point used and maximum number of IPv6 BGP routes" - }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Number of connections associated with this Access point" + "enum": [ + "Validation failure", + "Invalid value", + "Internal Server Error" + ] }, - "distinctIpv4PrefixesCount": { - "minimum": 0, - "type": "integer", - "description": "Number of distinct ipv4 routes" + "correlationId": { + "type": "string" }, - "distinctIpv6PrefixesCount": { - "minimum": 0, - "type": "integer", - "description": "Number of distinct ipv6 routes" + "details": { + "type": "string" }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "help": { + "type": "string" }, - "change": { - "$ref": "#/components/schemas/CloudRouterChange" + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Fabric Cloud Router object", - "allOf": [ - { - "$ref": "#/components/schemas/CloudRouterPostRequest" - } - ] - }, - "RouterId": { - "type": "string", - "description": "Cloud Router UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "CloudRouterUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Fabric Cloud Router Update Request", - "items": { - "$ref": "#/components/schemas/CloudRouterChangeOperation" + "description": "Error with details", + "discriminator": { + "propertyName": "errorCode" } }, - "RouterId_1": { + "PortUUID": { "type": "string", - "description": "Router UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Port UUID", + "format": "uuid" }, - "ActionState": { - "$ref": "#/components/schemas/CloudRouterActionState" + "startDateTime": { + "type": "string", + "description": "startDateTime", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "CloudRouterActionState": { + "endDateTime": { "type": "string", - "description": "Cloud Router action state", - "enum": [ - "DONE", - "FAILED", - "PENDING" - ] + "description": "endDateTime", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "CloudRouterActionResponse": { - "required": [ - "changeLog", - "state", - "type", - "uuid" - ], + "Statistics": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/CloudRouterActionType" - }, - "uuid": { + "startDateTime": { "type": "string", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Start and duration of the statistical analysis interval.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "description": { + "endDateTime": { "type": "string", - "example": "description" + "description": "End and duration of the statistical analysis interval.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "state": { - "$ref": "#/components/schemas/CloudRouterActionState" + "viewPoint": { + "type": "string", + "description": "Point of view for connection metrics - aSide or zSide", + "enum": [ + "aSide", + "zSide" + ] }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "bandwidthUtilization": { + "$ref": "#/components/schemas/BandwidthUtilization" } }, - "description": "Cloud Router actions response object" + "description": "This API provides service-level traffic metrics so that you can view access and gather key information required to manage service subscription sizing and capacity." }, - "CloudRouterActionRequest": { - "required": [ - "type" - ], + "BandwidthUtilization": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/CloudRouterActionType" + "unit": { + "type": "string", + "description": "Aggregated data transfer capacity. Possible values- Mbps, megabits (1 million bits) per second; Gbps, gigabits (1 billion bits) per second.", + "enum": [ + "Mbps" + ] + }, + "metricInterval": { + "type": "string", + "description": "An interval formatted value, indicating the time-interval the metric objects within the response represent" + }, + "inbound": { + "$ref": "#/components/schemas/Direction" + }, + "outbound": { + "$ref": "#/components/schemas/Direction" } }, - "description": "Cloud Router action request" + "description": "Bandwidth utilization statistics (octet counters-based)" }, - "RouteTableEntrySearchRequest": { + "Direction": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/RouteTableEntryFilters" + "max": { + "type": "number", + "description": "Max bandwidth within request time range, represented in units specified by response \"units\" field", + "format": "float" }, - "pagination": { - "$ref": "#/components/schemas/PaginationRequest" + "mean": { + "type": "number", + "description": "Mean bandwidth within request time range, represented in units specified by response \"units\" field", + "format": "float" }, - "sort": { + "metrics": { "type": "array", + "description": "Bandwidth utilization statistics for a specified interval.", "items": { - "$ref": "#/components/schemas/RouteTableEntrySortCriteria" + "$ref": "#/components/schemas/Metrics" } } }, - "description": "Search requests containing criteria" + "description": "Directional statistics" }, - "RouteTableEntryFilters": { + "Metrics": { "type": "object", "properties": { - "and": { - "maxItems": 8, - "type": "array", - "items": { - "$ref": "#/components/schemas/RouteTableEntryFilter" - } - } - } - }, - "RouteTableEntryFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" - }, - { - "$ref": "#/components/schemas/RouteTableEntryOrFilter" - } - ] - }, - "RouteTableEntrySimpleExpression": { - "type": "object", - "properties": { - "property": { + "intervalEndTimestamp": { "type": "string", - "description": "Possible field names to use on filters:\n * `/type` - Route table entry type\n * `/prefix` - Route table entry prefix\n * `/nextHop` - Route table entry nextHop\n * `/state` - Route table entry state\n * `/*` - all-category search\n", - "example": "/type" + "description": "Interval end timestamp", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "operator": { - "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `~*` - case-insensitive like\n", - "example": "=" + "max": { + "type": "number", + "description": "Max bandwidth within statistics object time interval, represented in units specified by response \"units\" field", + "format": "float" }, - "values": { - "type": "array", - "items": { - "type": "string", - "example": "IPv4_BGP_ROUTE" - } + "mean": { + "type": "number", + "description": "Mean bandwidth within statistics object time interval, represented in units specified by response \"units\" field", + "format": "float" } - } + }, + "description": "Bandwidth utilization statistics for a specified interval." }, - "RouteTableEntryOrFilter": { - "type": "object", - "properties": { - "or": { - "maxItems": 3, - "type": "array", - "items": { - "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" - } - } - } + "sort": { + "type": "string", + "description": "Key or set of keys that organizes the search payload by property (such as createdDate or metroCode) or by direction. Ascending (ASC) is the default value. The \"?\" prefix indicates descending (DESC) order.", + "default": "-bandwidthUtilization", + "enum": [ + "-bandwidthUtilization" + ] }, - "RouteTableEntrySortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/RouteTableEntrySortDirection" - }, - "property": { - "$ref": "#/components/schemas/RouteTableEntrySortBy" - } - } + "top": { + "type": "integer", + "description": "Filter returning only the specified number of most heavily trafficked ports. The standard value is [1...10], and the default is 5.", + "default": 5 }, - "RouteTableEntrySortDirection": { + "duration": { "type": "string", - "description": "Sorting direction", - "default": "DESC", + "description": "Duration of the statistical analysis interval.", + "default": "P7D", "enum": [ - "DESC", - "ASC" + "P7D", + "P1M", + "P3M" ] }, - "RouteTableEntrySortBy": { + "query_direction": { "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", + "description": "Direction of traffic from the requester's viewpoint.", + "default": "outbound", "enum": [ - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime", - "/prefix", - "/nextHop", - "/connection/name", - "/type" + "inbound", + "outbound" ] }, - "RouteTableEntrySearchResponse": { + "metricInterval": { + "type": "string", + "description": "metric interval", + "default": "P7D", + "enum": [ + "P7D" + ] + }, + "metros": { + "type": "array", + "description": "Two-letter prefix indicating the metropolitan area in which a specified Equinix asset is located.", + "items": { + "type": "string" + } + }, + "projectId": { + "type": "string", + "description": "projectId", + "example": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + }, + "TopUtilizedStatistics": { "type": "object", "properties": { "pagination": { @@ -11659,487 +12438,669 @@ "type": "array", "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/RouteTableEntry" + "$ref": "#/components/schemas/Statistics" } } - } - }, - "ValidateSubnetRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter" - } }, - "description": "Validate subnet for Routing Protocol Configuration" + "description": "This API provides service-level traffic metrics for the top utilized ports so that you can view access and gather key information required to manage service subscription sizing and capacity." }, - "ValidateSubnetResponse": { + "viewPoint": { + "type": "string", + "description": "viewPoint", + "enum": [ + "aSide", + "zSide" + ] + }, + "ServiceProfiles": { "type": "object", "properties": { - "additionalInfo": { + "data": { "type": "array", - "description": "Additional information", "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + "$ref": "#/components/schemas/ServiceProfile" } - } - }, - "description": "ValidateResponse" - }, - "CloudRouterSearchRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/CloudRouterFilters" }, "pagination": { - "$ref": "#/components/schemas/PaginationRequest" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CloudRouterSortCriteria" - } + "$ref": "#/components/schemas/Pagination" } }, - "description": "Search requests containing criteria" + "description": "Service Profiles" }, - "CloudRouterFilters": { + "ServiceProfileRequest": { + "required": [ + "description", + "name", + "type" + ], "type": "object", "properties": { - "and": { - "maxItems": 8, - "type": "array", - "items": { - "$ref": "#/components/schemas/CloudRouterFilter" - } + "project": { + "$ref": "#/components/schemas/Project" } - } - }, - "CloudRouterFilter": { - "type": "object", - "anyOf": [ - { - "$ref": "#/components/schemas/CloudRouterSimpleExpression" - }, + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", + "allOf": [ { - "$ref": "#/components/schemas/CloudRouterOrFilter" + "$ref": "#/components/schemas/SimplifiedServiceProfile" } ] }, - "CloudRouterSimpleExpression": { + "SimplifiedServiceProfile": { "type": "object", "properties": { - "property": { + "href": { "type": "string", - "description": "Possible field names to use on filters:\n * `/project/projectId` - project id (mandatory)\n * `/name` - Fabric Cloud Router name\n * `/uuid` - Fabric Cloud Router uuid\n * `/state` - Fabric Cloud Router status\n * `/location/metroCode` - Fabric Cloud Router metro code\n * `/location/metroName` - Fabric Cloud Router metro name\n * `/package/code` - Fabric Cloud Router package\n * `/*` - all-category search\n", - "example": "/name" + "description": "Service Profile URI response attribute", + "format": "uri", + "readOnly": true }, - "operator": { + "type": { + "$ref": "#/components/schemas/ServiceProfileTypeEnum" + }, + "name": { + "maxLength": 50, "type": "string", - "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `ILIKE` - case-insensitive like\n", - "example": "=" + "description": "Customer-assigned service profile name", + "example": "Sample Service Profile" }, - "values": { + "uuid": { + "type": "string", + "description": "Equinix-assigned service profile identifier", + "format": "uuid" + }, + "description": { + "type": "string", + "description": "User-provided service description should be of maximum length 375", + "example": "offering connectivity to my-network" + }, + "notifications": { "type": "array", + "description": "Recipients of notifications on service profile change", "items": { - "type": "string", - "example": "FabricCloudRouter-1" + "$ref": "#/components/schemas/SimplifiedNotification" } - } - } - }, - "CloudRouterOrFilter": { - "type": "object", - "properties": { - "or": { - "maxItems": 3, + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "visibility": { + "$ref": "#/components/schemas/ServiceProfileVisibilityEnum" + }, + "allowedEmails": { "type": "array", "items": { - "$ref": "#/components/schemas/CloudRouterSimpleExpression" + "type": "string", + "format": "email" } - } - } - }, - "CloudRouterSortCriteria": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/CloudRouterSortDirection" }, - "property": { - "$ref": "#/components/schemas/CloudRouterSortBy" - } - } - }, - "CloudRouterSortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "CloudRouterSortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/uuid", - "/state", - "/location/metroCode", - "/location/metroName", - "/package/code", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] - }, - "SearchResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "accessPointTypeConfigs": { + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileAccessPointType" + } }, - "data": { + "customFields": { "type": "array", - "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/CustomField" } - } - } - }, - "PackageResponse": { - "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" }, - "data": { + "marketingInfo": { + "$ref": "#/components/schemas/MarketingInfo" + }, + "ports": { "type": "array", - "description": "Data returned from the API call.", "items": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/ServiceProfileAccessPointCOLO" + } + }, + "virtualDevices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileAccessPointVD" + } + }, + "metros": { + "type": "array", + "description": "Derived response attribute.", + "items": { + "$ref": "#/components/schemas/ServiceMetro" } + }, + "selfProfile": { + "type": "boolean", + "description": "response attribute indicates whether the profile belongs to the same organization as the api-invoker." + }, + "projectId": { + "type": "string" } + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" } }, - "RouterPackageCode": { - "type": "string", - "description": "Router package code", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" + "ServiceProfileAccessPointType": { + "type": "object", + "description": "Access Point Type", + "oneOf": [ + { + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeCOLO" + }, + { + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeVD" + } ] }, - "CloudRouterPackage": { + "ServiceProfileAccessPointTypeCOLO": { + "required": [ + "type" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Cloud Router package URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" + "uuid": { + "type": "string" }, "type": { - "type": "string", - "description": "Type of Router package", - "example": "ROUTER_PACKAGE", - "enum": [ - "ROUTER_PACKAGE" - ] - }, - "code": { - "$ref": "#/components/schemas/code" + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" }, - "description": { - "type": "string", - "description": "Fabric Cloud Router Package description" + "supportedBandwidths": { + "$ref": "#/components/schemas/Bandwidths" }, - "totalIPv4RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "Cloud Router package BGP IPv4 routes limit", - "example": 50 + "allowRemoteConnections": { + "type": "boolean", + "description": "Setting to allow or prohibit remote connections to the service profile.", + "example": true, + "default": false }, - "totalIPv6RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "Cloud Router package BGP IPv6 routes limit", - "example": 50 + "allowCustomBandwidth": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth.", + "example": true, + "default": false }, - "staticIPv4RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package static IPv4 routes limit", - "example": 3 + "bandwidthAlertThreshold": { + "type": "number", + "description": "percentage of port bandwidth at which an allocation alert is generated - missing on wiki." }, - "staticIPv6RoutesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package static IPv6 routes limit" + "allowBandwidthAutoApproval": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller.", + "default": false }, - "naclsMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package NACLs limit", - "example": 2 + "allowBandwidthUpgrade": { + "type": "boolean", + "description": "Availability of a bandwidth upgrade. The default is false." }, - "naclRulesMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package NACLs rules limit", - "example": 5 + "linkProtocolConfig": { + "$ref": "#/components/schemas/ServiceProfileLinkProtocolConfig" }, - "haSupported": { + "enableAutoGenerateServiceKey": { "type": "boolean", - "description": "CloudRouter package high-available configuration support", - "example": true + "description": "for verizon only." }, - "routeFilterSupported": { + "connectionRedundancyRequired": { "type": "boolean", - "description": "CloudRouter package route filter support" - }, - "natType": { - "type": "string", - "description": "CloudRouter package NAT supported type", - "example": "STATIC_NAT", - "enum": [ - "STATIC_NAT" - ] + "description": "Mandate redundant connections", + "example": true, + "default": false }, - "vcCountMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max Connection limit", - "example": 10 + "apiConfig": { + "$ref": "#/components/schemas/ApiConfig" }, - "crCountMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max CloudRouter limit", - "example": 3 + "connectionLabel": { + "type": "string", + "description": "custom name for \"Connection\"" }, - "vcBandwidthMax": { - "minimum": 0, - "type": "integer", - "description": "CloudRouter package Max Bandwidth limit", - "example": 50 + "authenticationKey": { + "$ref": "#/components/schemas/AuthenticationKey" }, - "changeLog": { - "$ref": "#/components/schemas/PackageChangeLog" + "metadata": { + "$ref": "#/components/schemas/ServiceProfileMetadata" } }, - "description": "Fabric Cloud Router Package" + "description": "Colo Access Point Type" }, - "HealthResponse": { + "ServiceProfileAccessPointTypeEnum": { + "type": "string", + "description": "Access point type", + "enum": [ + "VD", + "COLO" + ] + }, + "Bandwidths": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Bandwidth" + } + }, + "Bandwidth": { + "type": "integer", + "description": "speed in Mbps", + "example": 50 + }, + "ServiceProfileLinkProtocolConfig": { "type": "object", "properties": { - "href": { + "encapsulationStrategy": { "type": "string", - "description": "The Canonical URL at which the resource resides." - }, - "version": { - "type": "string", - "description": "Indicator of a version" + "description": "was tagType - missing on wiki", + "enum": [ + "CTAGED", + "BOTH", + "NAMED" + ] }, - "release": { - "type": "string", - "description": "release details." + "namedTags": { + "maxItems": 64, + "type": "array", + "items": { + "type": "string" + } }, - "state": { + "vlanCTagLabel": { "type": "string", - "description": "status of a service" + "description": "was ctagLabel" }, - "apiServices": { - "$ref": "#/components/schemas/ApiServices" + "reuseVlanSTag": { + "type": "boolean", + "example": true, + "default": false + }, + "encapsulation": { + "type": "string", + "description": "Port encapsulation - Derived response attribute. Ignored on request payloads.", + "enum": [ + "QINQ", + "DOT1Q", + "UNTAGGED" + ] } }, - "description": "GET Services Health" + "description": "Configuration for dot1q to qinq translation support" }, - "ValidateConnectionRequest": { + "ApiConfig": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter" + "apiAvailable": { + "type": "boolean", + "description": "Setting indicating whether the API is available (true) or not (false).", + "example": true, + "default": false + }, + "integrationId": { + "type": "string" + }, + "equinixManagedPort": { + "type": "boolean", + "description": "Setting indicating that the port is managed by Equinix (true) or not (false).", + "example": true, + "default": false + }, + "equinixManagedVlan": { + "type": "boolean", + "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false).", + "example": true, + "default": false + }, + "allowOverSubscription": { + "type": "boolean", + "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false.\nOversubscription is the sale of more than the available network bandwidth. This practice is common\nand legitimate. After all, many customers use less bandwidth than they've purchased.\nAnd network users don't consume bandwidth all at the same time. The leftover bandwidth can be sold to\nother customers. When demand surges, operational and engineering resources can be shifted to\naccommodate the load.\n", + "example": false, + "default": false + }, + "overSubscriptionLimit": { + "maximum": 20, + "minimum": 1, + "type": "integer", + "description": "A cap on oversubscription.", + "example": 1, + "default": 1 + }, + "bandwidthFromApi": { + "type": "boolean", + "default": false } }, - "description": "Validate connection auth api key or vlan" + "description": "Configuration for API based Integration for Service Profile" }, - "ConnectionResponse": { + "AuthenticationKey": { "type": "object", "properties": { - "additionalInfo": { - "type": "array", - "description": "Additional information", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" - } + "required": { + "type": "boolean", + "example": true, + "default": false }, - "data": { - "type": "array", - "description": "Connection response data", - "items": { - "$ref": "#/components/schemas/Connection" - } + "label": { + "type": "string", + "example": "Service Key" + }, + "description": { + "type": "string", + "example": "description for the authentication key" } }, - "description": "ValidateResponse" + "description": "Authentication Key Support and Customization" }, - "Pagination": { - "required": [ - "limit", - "total" - ], + "ServiceProfileMetadata": { "type": "object", "properties": { - "offset": { - "minimum": 0, - "type": "integer", - "description": "Index of the first item returned in the response. The default is 0.", - "default": 0 + "props": { + "type": "string" }, - "limit": { - "minimum": 0, - "type": "integer", - "description": "Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.", - "default": 20 + "regEx": { + "type": "string" }, - "total": { - "minimum": 0, - "type": "integer", - "description": "Total number of elements returned." + "regExMsg": { + "type": "string" }, - "next": { - "type": "string", - "description": "URL relative to the next item in the response." + "vlanRangeMaxValue": { + "type": "integer" }, - "previous": { - "type": "string", - "description": "URL relative to the previous item in the response." + "vlanRangeMinValue": { + "type": "integer" + }, + "maxQinq": { + "type": "string" + }, + "maxDot1q": { + "type": "integer" + }, + "variableBilling": { + "type": "boolean" + }, + "globalOrganization": { + "type": "string" + }, + "limitAuthKeyConn": { + "type": "boolean" + }, + "allowSecondaryLocation": { + "type": "boolean" + }, + "redundantProfileId": { + "type": "string" + }, + "allowVcMigration": { + "type": "boolean" + }, + "connectionEditable": { + "type": "boolean" + }, + "releaseVlan": { + "type": "boolean" + }, + "maxConnectionsOnPort": { + "type": "integer" + }, + "portAssignmentStrategy": { + "type": "string" + }, + "eqxManagedPort": { + "type": "boolean" + }, + "connectionNameEditable": { + "type": "boolean" } }, - "description": "Pagination response information" + "description": "Metadata. Response attribute. Ignored on request payload." }, - "NetworkPostRequest": { + "ServiceProfileAccessPointTypeVD": { "required": [ - "name", - "notifications", - "scope", "type" ], "type": "object", "properties": { + "uuid": { + "type": "string" + }, "type": { - "$ref": "#/components/schemas/NetworkType" + "$ref": "#/components/schemas/ServiceProfileAccessPointTypeEnum" }, - "name": { + "supportedBandwidths": { + "$ref": "#/components/schemas/Bandwidths" + }, + "allowRemoteConnections": { + "type": "boolean", + "description": "Allow remote connections to Service Profile", + "example": true + }, + "allowCustomBandwidth": { + "type": "boolean", + "example": true + } + }, + "description": "VirtualDevice Access Point Type" + }, + "CustomField": { + "required": [ + "dataType", + "description", + "isRequired", + "label" + ], + "properties": { + "label": { "type": "string", - "description": "Customer-provided network name" + "example": "Account Number" }, - "scope": { - "$ref": "#/components/schemas/NetworkScope" + "description": { + "type": "string", + "example": "Provide a valid account number" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "required": { + "type": "boolean", + "example": true }, - "project": { - "$ref": "#/components/schemas/Project" + "dataType": { + "type": "string", + "enum": [ + "STRING", + "LIST", + "NUMBER" + ] }, - "notifications": { + "options": { "type": "array", - "description": "Preferences for notifications on network configuration or status changes", "items": { - "$ref": "#/components/schemas/SimplifiedNotification" + "type": "string" } + }, + "captureInEmail": { + "type": "boolean", + "description": "capture this field as a part of email notification" } }, - "description": "Create Network" + "description": "Define Custom Attributes" }, - "Network": { + "MarketingInfo": { "type": "object", - "description": "Network specification", - "allOf": [ - { - "required": [ - "changeLog", - "href", - "state", - "uuid" - ], + "properties": { + "logo": { + "type": "string", + "description": "Logo file name" + }, + "promotion": { + "type": "boolean", + "description": "Profile promotion on marketplace" + }, + "processSteps": { + "maxItems": 3, + "type": "array", + "items": { + "$ref": "#/components/schemas/ProcessStep" + } + } + } + }, + "ProcessStep": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Service profile custom step title" + }, + "subTitle": { + "type": "string", + "description": "Service profile custom step sub title" + }, + "description": { + "type": "string", + "description": "Service profile custom step description" + } + }, + "description": "Definition of customized step while making connection" + }, + "ServiceProfileAccessPointCOLO": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "XF_PORT" + ] + }, + "uuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "sellerRegion": { + "type": "string" + }, + "sellerRegionDescription": { + "type": "string" + }, + "crossConnectId": { + "type": "string" + } + }, + "description": "Colo Access Point" + }, + "ServiceProfileAccessPointVD": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "VD" + ] + }, + "uuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "interfaceUuid": { + "type": "string", + "format": "uuid", + "example": "94662143-e21b-4098-bfcf-e9416f47eae1" + } + }, + "description": "Virtual Device Point" + }, + "ServiceMetro": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "metro code" + }, + "name": { + "type": "string", + "description": "metro name" + }, + "vcBandwidthMax": { + "type": "integer", + "description": "max VC speed supported in Mbps" + }, + "ibxs": { + "type": "array", + "items": { + "type": "string", + "description": "ibx codes" + } + }, + "inTrail": { + "type": "boolean" + }, + "displayName": { + "type": "string", + "description": "service metro display name" + }, + "sellerRegions": { "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "state": { - "$ref": "#/components/schemas/NetworkState" - }, - "connectionsCount": { - "type": "number", - "description": "number of connections created on the network" - }, - "account": { + "additionalProperties": { + "type": "string" + } + } + } + }, + "ServiceProfile": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/ServiceProfileStateEnum" + }, + "account": { + "description": "Seller Account for Service Profile.", + "allOf": [ + { "$ref": "#/components/schemas/SimplifiedAccount" }, - "change": { - "$ref": "#/components/schemas/SimplifiedNetworkChange" - }, - "operation": { - "$ref": "#/components/schemas/NetworkOperation" - }, - "changeLog": { + { + "type": "object" + } + ] + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "changeLog": { + "description": "Seller Account for Service Profile.", + "allOf": [ + { "$ref": "#/components/schemas/Changelog" }, - "links": { - "type": "array", - "description": "Network sub-resources links", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/Link" - } + { + "type": "object" } - } - }, + ] + } + }, + "description": "Service Profile is a software definition for a named provider service and it's network connectivity requirements.\nThis includes the basic marketing information and one\nor more sets of access points (a set per each access point type) fulfilling the provider service.\n", + "allOf": [ { - "$ref": "#/components/schemas/NetworkPostRequest" + "$ref": "#/components/schemas/SimplifiedServiceProfile" } ] }, - "NetworkId": { - "type": "string", - "description": "Network UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" - }, - "NetworkUpdateRequest": { - "minItems": 1, - "type": "array", - "description": "Fabric Network Update Request", - "items": { - "$ref": "#/components/schemas/NetworkChangeOperation" - } - }, - "NetworkSearchRequest": { + "ServiceProfileSearchRequest": { "type": "object", "properties": { "filter": { - "$ref": "#/components/schemas/NetworkFilter" + "$ref": "#/components/schemas/ServiceProfileFilter" }, "pagination": { "$ref": "#/components/schemas/PaginationRequest" @@ -12147,89 +13108,68 @@ "sort": { "type": "array", "items": { - "$ref": "#/components/schemas/NetworkSortCriteria" + "$ref": "#/components/schemas/ServiceProfileSortCriteria" } } }, "description": "Search requests containing criteria" }, - "NetworkFilter": { + "ServiceProfileFilter": { "type": "object", - "properties": { - "and": { - "$ref": "#/components/schemas/NetworkSimpleExpression" - }, - "or": { - "$ref": "#/components/schemas/NetworkSimpleExpression" + "anyOf": [ + { + "$ref": "#/components/schemas/ServiceProfileSimpleExpression" }, + { + "$ref": "#/components/schemas/ServiceProfileAndFilter" + } + ] + }, + "ServiceProfileSimpleExpression": { + "type": "object", + "properties": { "property": { - "$ref": "#/components/schemas/NetworkSearchFieldName" + "type": "string", + "description": "Possible field names to use on filters:\n * `/name` - Service Profile name\n * `/uuid` - Service Profile uuid\n * `/state` - Service Profile status\n * `/metros/code` - Service Profile metro code\n * `/visibility` - Service Profile package\n * `/type` - Service Profile package\n * `/project/projectId` - Service Profile project id\n", + "example": "/name" }, "operator": { "type": "string", - "example": "=", - "enum": [ - "=", - "!=", - ">", - ">=", - "<", - "<=", - "BETWEEN", - "NOT BETWEEN", - "LIKE", - "NOT LIKE", - "ILIKE", - "NOT ILIKE", - "IN", - "NOT IN" - ] + "description": "Possible operators to use on filters:\n * `=` - equal\n", + "example": "=" }, "values": { "type": "array", "items": { "type": "string", - "example": "Network-1" + "example": "ServiceProfile-1" } } } }, - "NetworkSimpleExpression": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkFilter" + "ServiceProfileAndFilter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceProfileSimpleExpression" + } + } } }, - "NetworkSearchFieldName": { - "type": "string", - "description": "Possible field names to use on filters", - "example": "/name", - "enum": [ - "/name", - "/uuid", - "/scope", - "/type", - "/operation/equinixStatus", - "/location/region", - "/project/projectId", - "/account/globalCustId", - "/account/orgId", - "/deletedDate", - "/*" - ] - }, - "NetworkSortCriteria": { + "ServiceProfileSortCriteria": { "type": "object", "properties": { "direction": { - "$ref": "#/components/schemas/NetworkSortDirection" + "$ref": "#/components/schemas/ServiceProfileSortDirection" }, "property": { - "$ref": "#/components/schemas/NetworkSortBy" + "$ref": "#/components/schemas/ServiceProfileSortBy" } } }, - "NetworkSortDirection": { + "ServiceProfileSortDirection": { "type": "string", "description": "Sorting direction", "default": "DESC", @@ -12238,305 +13178,288 @@ "ASC" ] }, - "NetworkSortBy": { + "ServiceProfileSortBy": { "type": "string", "description": "Possible field names to use on sorting", "default": "/changeLog/updatedDateTime", "enum": [ "/name", - "/uuid", - "/scope", - "/operation/equinixStatus", - "/location/region", + "/state", "/changeLog/createdDateTime", "/changeLog/updatedDateTime" ] }, - "NetworkSearchResponse": { + "ServiceProfileId": { + "type": "string", + "description": "Service Profile UUID", + "format": "uuid" + }, + "JsonPatch": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JsonPatchOperation" + } + }, + "JsonPatchOperation": { "type": "object", - "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "description": "Service Profile Access Points", + "oneOf": [ + { + "$ref": "#/components/schemas/AddOperation" }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkSortCriteriaResponse" - } + { + "$ref": "#/components/schemas/RemoveOperation" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Network" - } + { + "$ref": "#/components/schemas/ReplaceOperation" } - }, - "description": "List of networks" + ] }, - "NetworkConnections": { + "AddOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Connection" - } + "path": { + "$ref": "#/components/schemas/Path" + }, + "value": { + "type": "object", + "description": "value to add" } }, - "description": "List of network changes" + "description": "Add Sub-Resource to the existing model" }, - "NetworkChangeResponse": { + "OpEnum": { + "type": "string", + "description": "the operation to be performed", + "enum": [ + "add", + "remove", + "replace" + ] + }, + "Path": { + "type": "string", + "description": "A JSON Pointer path." + }, + "RemoveOperation": { + "required": [ + "op", + "path" + ], "type": "object", "properties": { - "pagination": { - "$ref": "#/components/schemas/Pagination" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NetworkChange" - } + "path": { + "$ref": "#/components/schemas/Path" } }, - "description": "List of network changes" - }, - "ChangeId_1": { - "type": "string", - "description": "Network Change UUID", - "format": "uuid", - "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + "description": "Remove sub-resource from an existing model" }, - "NetworkChange": { + "ReplaceOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" - }, - "uuid": { - "type": "string", - "description": "Uniquely identifies a change", - "format": "uuid", - "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" - }, - "type": { - "$ref": "#/components/schemas/NetworkChangeType" - }, - "status": { - "$ref": "#/components/schemas/NetworkChangeStatus" - }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "op": { + "$ref": "#/components/schemas/OpEnum" }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "path": { + "$ref": "#/components/schemas/Path" }, + "value": { + "type": "object", + "description": "value to replace with" + } + }, + "description": "Replace attribute value or sub-resource in the existing model" + }, + "ServiceMetros": { + "type": "object", + "properties": { "data": { "type": "array", "items": { - "$ref": "#/components/schemas/NetworkChangeOperation" + "$ref": "#/components/schemas/ServiceMetro" } + }, + "pagination": { + "$ref": "#/components/schemas/Pagination" } }, - "description": "Current state of latest network change" + "description": "Service Profile Metros" }, - "ServiceId": { + "ServiceTokenUUID": { "type": "string", - "description": "Precision Time Service UUID", - "format": "uuid", - "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + "description": "Service Token UUID", + "format": "uuid" }, - "precisionTimeServiceCreateResponse": { - "title": "precisionTimeServiceResponse", + "ServiceToken": { "required": [ - "href", - "ipv4", - "package", - "state", - "type", "uuid" ], "type": "object", "properties": { "type": { - "type": "string", - "enum": [ - "NTP", - "PTP" - ] + "$ref": "#/components/schemas/ServiceTokenType" }, "href": { "type": "string", - "format": "uri" + "description": "An absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, "uuid": { "type": "string", - "description": "uuid of the ept service", + "description": "Equinix-assigned service token identifier", "format": "uuid" }, "name": { "type": "string", - "description": "name of the ept service" + "description": "Customer-provided service token name" }, "description": { - "type": "string" + "type": "string", + "description": "Customer-provided service token description" }, - "state": { + "expirationDateTime": { "type": "string", - "description": "indicate service state", - "enum": [ - "PROVISIONED", - "PROVISIONING", - "PROVISIONING_FAILED", - "CONFIGURING", - "CANCELLED", - "DEPROVISIONING_FAILED", - "PENDING_CONFIGURATION", - "DEPROVISIONED", - "CONFIGURING_FAILED", - "DEPROVISIONING" - ] + "description": "Expiration date and time of the service token.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "package": { - "$ref": "#/components/schemas/PackageResponse" + "connection": { + "$ref": "#/components/schemas/ServiceTokenConnection" }, - "connections": { - "maxItems": 2, - "minItems": 1, - "uniqueItems": true, + "state": { + "$ref": "#/components/schemas/ServiceTokenState" + }, + "notifications": { "type": "array", - "description": "fabric l2 connections used for the ept service", + "description": "Service token related notifications", "items": { - "$ref": "#/components/schemas/fabricConnectionUuid" + "$ref": "#/components/schemas/SimplifiedNotification" } }, - "ipv4": { - "$ref": "#/components/schemas/ipv4" - }, "account": { - "$ref": "#/components/schemas/account" + "$ref": "#/components/schemas/SimplifiedAccount" }, - "advanceConfiguration": { - "$ref": "#/components/schemas/advanceConfiguration" + "changelog": { + "$ref": "#/components/schemas/Changelog" }, "project": { "$ref": "#/components/schemas/Project" } }, - "description": "EPT service instance" + "description": "Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens authorize users to access protected resources and services. The tokens remove sensitive content from the environment, rather than just masking it, making the protected data impossible to unencrypt or decrypt. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets." }, - "precisionTimeChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "ServiceTokenUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Service Token Update Request", + "items": { + "$ref": "#/components/schemas/ServiceTokenChangeOperation" + } + }, + "ServiceTokens": { "type": "object", "properties": { - "op": { - "type": "string", - "description": "Handy shortcut for operation name", - "enum": [ - "replace", - "add", - "remove" - ] - }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter", - "enum": [ - "/ipv4", - "/name", - "/advanceConfiguration/ntp", - "/advanceConfiguration/ptp", - "/package" - ] + "data": { + "type": "array", + "description": "List of Service Tokens", + "items": { + "$ref": "#/components/schemas/ServiceToken" + } }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "pagination": { + "$ref": "#/components/schemas/Pagination" } }, - "description": "Fabric Precision Timing change operation data" + "description": "Service tokens authorize a user to access protected resources and services available on the Equinix Fabric network. The owner of the resources can distribute service tokens to third-party users (trusted partners and vendors), allowing them to directly access and work with the resources on the network without involving the resource owners." }, - "precisionTimeServiceRequest": { - "title": "precisionTimeServiceRequest", + "ServiceTokenActionRequest": { "required": [ - "connections", - "name", - "ipv4", - "package", "type" ], "type": "object", "properties": { "type": { - "type": "string", - "description": "Indicate the entity is EPT service", - "enum": [ - "NTP", - "PTP" - ] - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "package": { - "$ref": "#/components/schemas/packageRequest" - }, - "connections": { - "type": "array", - "items": { - "$ref": "#/components/schemas/fabricConnectionUuid" - } - }, - "ipv4": { - "$ref": "#/components/schemas/ipv4" - }, - "advanceConfiguration": { - "$ref": "#/components/schemas/advanceConfiguration" - }, - "project": { - "$ref": "#/components/schemas/Project" + "$ref": "#/components/schemas/ServiceTokenActions" } }, - "description": "EPT service instance" + "description": "Service Token action request" }, - "precisionTimeServiceConnectionsResponse": { - "title": "precisionTimeServiceConnectionResponse", + "ServiceTokenSearchRequest": { "type": "object", "properties": { + "filter": { + "$ref": "#/components/schemas/ServiceTokenSearchExpression" + }, "pagination": { - "$ref": "#/components/schemas/Pagination" + "$ref": "#/components/schemas/PaginationRequest" + } + }, + "description": "Search requests containing criteria" + }, + "ServiceTokenSearchExpression": { + "type": "object", + "properties": { + "and": { + "$ref": "#/components/schemas/ServiceTokenSearchExpressions" }, - "data": { + "property": { + "$ref": "#/components/schemas/ServiceTokenSearchFieldName" + }, + "operator": { + "type": "string", + "enum": [ + "=" + ] + }, + "values": { "type": "array", - "description": "Data returned from the API call", "items": { - "$ref": "#/components/schemas/connectionLink" + "type": "string" } } - }, - "description": "EPT service instance's L2 connections" + } + }, + "ServiceTokenSearchExpressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTokenSearchExpression" + } + }, + "ServiceTokenSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/uuid", + "/state", + "/name", + "/project/projectId" + ] + }, + "Presence": { + "type": "string", + "description": "Presence", + "enum": [ + "MY_PORTS" + ] }, - "precisionTimeServicePackagesResponse": { - "title": "precisionTimeServicePackagesResponse", + "MetroResponse": { "type": "object", "properties": { "pagination": { @@ -12544,1460 +13467,1440 @@ }, "data": { "type": "array", - "description": "Data returned from the API call", + "description": "List of Fabric Metros.", "items": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/Metro" } } }, - "description": "Precision Packages" - }, - "ConnectionType": { - "type": "string", - "description": "Connection type", - "enum": [ - "EVPL_VC", - "EPL_VC", - "EC_VC", - "IP_VC", - "ACCESS_EPL_VC", - "EIA_VC", - "EVPLAN_VC", - "EPLAN_VC", - "IPWAN_VC" - ] + "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." }, - "Order": { + "Metro": { "type": "object", "properties": { - "purchaseOrderNumber": { + "href": { "type": "string", - "description": "Purchase order number" + "description": "The Canonical URL at which the resource resides." }, - "billingTier": { + "type": { "type": "string", - "description": "Billing tier for connection bandwidth" + "description": "Indicator of a Fabric Metro" }, - "orderId": { + "code": { "type": "string", - "description": "Order Identification" + "description": "Code Assigned to an Equinix IBX data center in a specified metropolitan area." }, - "orderNumber": { + "region": { "type": "string", - "description": "Order Reference Number" - } - } - }, - "SimplifiedNotification": { - "required": [ - "emails", - "type" - ], - "type": "object", - "properties": { - "type": { + "description": "Board geographic area in which the data center is located" + }, + "name": { "type": "string", - "description": "Notification Type", - "example": "BANDWIDTH_ALERT", - "enum": [ - "NOTIFICATION", - "BANDWIDTH_ALERT", - "CONNECTION_APPROVAL", - "PROFILE_LIFECYCLE", - "ALL", - "SALES_REP_NOTIFICATIONS" - ] + "description": "Name of the region in which the data center is located." }, - "sendInterval": { - "type": "string" + "equinixAsn": { + "type": "integer", + "description": "Autonomous system number (ASN) for a specified Fabric metro. The ASN is a unique identifier that carries the network routing protocol and exchanges that data with other internal systems via border gateway protocol.", + "format": "int64" }, - "emails": { + "localVCBandwidthMax": { + "type": "integer", + "description": "This field holds Max Connection speed with in the metro", + "format": "int64" + }, + "geoCoordinates": { + "$ref": "#/components/schemas/GeoCoordinates" + }, + "connectedMetros": { "type": "array", - "description": "Array of contact emails", "items": { - "type": "string", - "format": "email" + "$ref": "#/components/schemas/ConnectedMetro" } }, - "registeredUsers": { + "geoScopes": { "type": "array", - "description": "Array of registered users", + "description": "List of supported geographic boundaries of a Fabric Metro.", "items": { - "type": "string" + "$ref": "#/components/schemas/GeoScopeType" } } - } - }, - "ConnectionRedundancy": { - "type": "object", - "properties": { - "group": { - "type": "string", - "description": "Redundancy group identifier (UUID of primary connection)" - }, - "priority": { - "$ref": "#/components/schemas/ConnectionPriority" - } }, - "description": "Connection redundancy configuration" + "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." }, - "ConnectionSide": { + "GeoCoordinates": { "type": "object", "properties": { - "serviceToken": { - "$ref": "#/components/schemas/ServiceToken" - }, - "accessPoint": { - "$ref": "#/components/schemas/AccessPoint" - }, - "companyProfile": { - "$ref": "#/components/schemas/ConnectionCompanyProfile" - }, - "invitation": { - "$ref": "#/components/schemas/ConnectionInvitation" + "latitude": { + "type": "number", + "description": "Latitude of a Fabric Metro", + "format": "double" }, - "additionalInfo": { - "type": "array", - "description": "Any additional information, which is not part of connection metadata or configuration", - "items": { - "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" - } + "longitude": { + "type": "number", + "description": "Longitude of a Fabric Metro", + "format": "double" } }, - "description": "Connection configuration object for each side of multi-segment connection" - }, - "Project": { - "required": [ - "projectId" - ], - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Subscriber-assigned project ID", - "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" - } - } + "description": "Geographic location data of Fabric Metro" }, - "ConnectionSideAdditionalInfo": { + "ConnectedMetro": { "type": "object", "properties": { - "key": { + "href": { "type": "string", - "description": "Key" + "description": "The Canonical URL at which the resource resides." }, - "value": { + "code": { "type": "string", - "description": "Value" + "description": "Code assigned to an Equinix International Business Exchange (IBX) data center in a specified metropolitan area." + }, + "avgLatency": { + "type": "number", + "description": "Average latency (in milliseconds[ms]) between two specified metros." + }, + "remoteVCBandwidthMax": { + "type": "integer", + "description": "This field holds the Max Connection speed with connected metros", + "format": "int64" } }, - "description": "Additional information" + "description": "Arrays of objects containing latency data for the specified metros" }, - "ConnectionState": { + "GeoScopeType": { "type": "string", - "description": "Connection status", + "description": "Geographic boundary types", "enum": [ - "ACTIVE", - "CANCELLED", - "DEPROVISIONED", - "DEPROVISIONING", - "DRAFT", - "FAILED", - "PENDING", - "PROVISIONED", - "PROVISIONING", - "REPROVISIONING", - "" + "CANADA", + "CONUS" ] }, - "Change": { + "MetroErrorList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetroError" + } + }, + "MetroError": { "required": [ - "createdDateTime", - "type" + "errorCode", + "errorMessage" ], "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Uniquely identifies a change" - }, - "type": { + "errorCode": { "type": "string", - "description": "Type of change", "enum": [ - "CONNECTION_CREATION", - "CONNECTION_UPDATE", - "CONNECTION_DELETION", - "CONNECTION_PROVIDER_STATUS_REQUEST" + "EQ-3036001", + "EQ-3036013", + "EQ-3036030", + "EQ-3036100" ] }, - "status": { + "errorMessage": { "type": "string", - "description": "Current outcome of the change flow", "enum": [ - "APPROVED", - "COMPLETED", - "FAILED", - "REJECTED", - "REQUESTED", - "SUBMITTED_FOR_APPROVAL" + "Unauthorized", + "Invalid Query Parameter", + "Invalid Path Parameter", + "Invalid Query or Path Parameter", + "Internal Server Error", + "Metro Not Found" ] }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "correlationId": { + "type": "string" }, - "updatedDateTime": { - "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "details": { + "type": "string" }, - "information": { - "type": "string", - "description": "Additional information" + "help": { + "type": "string" }, - "data": { - "$ref": "#/components/schemas/ConnectionChangeOperation" + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Current state of latest connection change" + "description": "Error with details", + "discriminator": { + "propertyName": "errorCode" + } }, - "ConnectionOperation": { + "MetroCode": { + "type": "string", + "description": "Metro Code" + }, + "AllPortsResponse": { "type": "object", "properties": { - "providerStatus": { - "$ref": "#/components/schemas/ProviderStatus" - }, - "equinixStatus": { - "$ref": "#/components/schemas/EquinixStatus" - }, - "operationalStatus": { - "type": "string", - "description": "Connection operational status", - "enum": [ - "UP", - "DOWN" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "errors": { + "data": { "type": "array", + "description": "GET All User Port Across Fabric Metros", "items": { - "$ref": "#/components/schemas/Error" + "$ref": "#/components/schemas/Port" } - }, - "opStatusChangedAt": { - "type": "string", - "description": "When connection transitioned into current operational status", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" } }, - "description": "Connection type-specific operational data" + "description": "GET All User Port Across Fabric Metros" }, - "SimplifiedAccount": { + "Port": { + "required": [ + "account", + "connectivitySourceType", + "encapsulation", + "location", + "physicalPortsSpeed", + "physicalPortsType", + "settings", + "type" + ], "type": "object", "properties": { - "accountNumber": { - "type": "integer", - "description": "Account number", - "format": "int64" - }, - "accountName": { - "type": "string", - "description": "Account name" + "type": { + "$ref": "#/components/schemas/PortType" }, - "orgId": { + "id": { "type": "integer", - "description": "Customer organization identifier", - "format": "int64" + "description": "Equinix assigned response attribute for Port Id" }, - "organizationName": { + "href": { "type": "string", - "description": "Customer organization name" + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "globalOrgId": { + "uuid": { "type": "string", - "description": "Global organization identifier" + "description": "Equinix assigned response attribute for port identifier", + "format": "uuid" }, - "globalOrganizationName": { + "name": { "type": "string", - "description": "Global organization name" + "description": "Equinix assigned response attribute for Port name" }, - "ucmId": { + "description": { "type": "string", - "description": "Account ucmId" + "description": "Equinix assigned response attribute for Port description" }, - "globalCustId": { - "type": "string", - "description": "Account name" + "physicalPortsSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Ports Speed in Mbps" }, - "resellerAccountNumber": { + "connectionsCount": { + "minimum": 0, "type": "integer", - "description": "Reseller account number", - "format": "int64" + "description": "Equinix assigned response attribute for Connection count" }, - "resellerAccountName": { + "physicalPortsType": { "type": "string", - "description": "Reseller account name" + "description": "Physical Ports Type", + "enum": [ + "1000BASE_LX", + "10GBASE_LR", + "100GBASE_LR4", + "10GBASE_ER", + "1000BASE_SX" + ] }, - "resellerUcmId": { - "type": "string", - "description": "Reseller account ucmId" + "physicalPortsCount": { + "type": "integer" }, - "resellerOrgId": { - "type": "integer", - "description": "Reseller customer organization identifier", - "format": "int64" - } - } - }, - "Changelog": { - "type": "object", - "properties": { - "createdBy": { + "connectivitySourceType": { "type": "string", - "description": "Created by User Key", - "example": "johnsmith" + "description": "Port connectivity type", + "enum": [ + "COLO", + "BMMR", + "REMOTE" + ] }, - "createdByFullName": { + "bmmrType": { "type": "string", - "description": "Created by User Full Name", - "example": "John Smith" + "enum": [ + "SELF", + "EQUINIX" + ] }, - "createdByEmail": { - "type": "string", - "description": "Created by User Email Address", - "example": "john.smith@example.com" + "project": { + "$ref": "#/components/schemas/Project" }, - "createdDateTime": { - "type": "string", - "description": "Created by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "state": { + "$ref": "#/components/schemas/PortState" }, - "updatedBy": { - "type": "string", - "description": "Updated by User Key", - "example": "johnsmith" + "order": { + "$ref": "#/components/schemas/PortOrder" }, - "updatedByFullName": { + "cvpId": { "type": "string", - "description": "Updated by User Full Name", - "example": "John Smith" + "description": "Equinix assigned response attribute for Unique ID for a virtual port." }, - "updatedByEmail": { - "type": "string", - "description": "Updated by User Email Address", - "example": "john.smith@example.com" + "operation": { + "$ref": "#/components/schemas/PortOperation" }, - "updatedDateTime": { - "type": "string", - "description": "Updated by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "deletedBy": { - "type": "string", - "description": "Deleted by User Key", - "example": "johnsmith" + "changelog": { + "$ref": "#/components/schemas/Changelog" }, - "deletedByFullName": { + "serviceType": { "type": "string", - "description": "Deleted by User Full Name", - "example": "John Smith" + "description": "Port service Type", + "enum": [ + "EPL", + "MSP" + ] }, - "deletedByEmail": { + "bandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port bandwidth in Mbps" + }, + "availableBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" + }, + "usedBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "device": { + "$ref": "#/components/schemas/PortDevice" + }, + "interface": { + "$ref": "#/components/schemas/PortInterface" + }, + "demarcationPointIbx": { "type": "string", - "description": "Deleted by User Email Address", - "example": "john.smith@example.com" + "description": "A-side/Equinix ibx" }, - "deletedDateTime": { + "tetherIbx": { "type": "string", - "description": "Deleted by Date and Time", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" - } - }, - "description": "Change log" - }, - "Error": { - "required": [ - "errorCode", - "errorMessage" - ], - "type": "object", - "properties": { - "errorCode": { - "pattern": "^EQ-\\d{7}$", - "type": "string" + "description": "z-side/Equinix ibx" }, - "errorMessage": { - "type": "string" + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" }, - "correlationId": { - "type": "string" + "redundancy": { + "$ref": "#/components/schemas/PortRedundancy" }, - "details": { - "type": "string" + "encapsulation": { + "$ref": "#/components/schemas/PortEncapsulation" }, - "help": { - "type": "string" + "lagEnabled": { + "type": "boolean", + "description": "If LAG enabled" + }, + "lag": { + "$ref": "#/components/schemas/PortLag" + }, + "asn": { + "type": "integer", + "description": "Port ASN" + }, + "settings": { + "$ref": "#/components/schemas/PortSettings" + }, + "physicalPortQuantity": { + "type": "integer", + "description": "Number of physical ports" + }, + "notifications": { + "type": "array", + "description": "Notification preferences", + "items": { + "$ref": "#/components/schemas/PortNotification" + } }, "additionalInfo": { "type": "array", + "description": "Port additional information", "items": { - "$ref": "#/components/schemas/PriceError_additionalInfo" + "$ref": "#/components/schemas/PortAdditionalInfo" + } + }, + "physicalPorts": { + "type": "array", + "description": "Physical ports that implement this port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } + }, + "loas": { + "type": "array", + "description": "Port Loas", + "items": { + "$ref": "#/components/schemas/PortLoa" } } }, - "description": "Error Response with details" + "description": "Port specification" }, - "ConnectionChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "PhysicalPort": { "type": "object", "properties": { - "op": { + "type": { + "$ref": "#/components/schemas/PhysicalPortType" + }, + "id": { + "type": "integer", + "description": "Equinix assigned response attribute for Physical Port Id" + }, + "href": { "type": "string", - "description": "Handy shortcut for operation name", - "example": "add" + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "path": { + "state": { + "$ref": "#/components/schemas/PortState" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "interfaceSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Port Speed in Mbps" + }, + "interfaceType": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/ipv6" + "description": "Physical Port Interface Type" }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "tether": { + "$ref": "#/components/schemas/PortTether" + }, + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" + }, + "additionalInfo": { + "type": "array", + "description": "Physical Port additional information", + "items": { + "$ref": "#/components/schemas/PortAdditionalInfo" + } + }, + "order": { + "$ref": "#/components/schemas/PortOrder" + }, + "operation": { + "$ref": "#/components/schemas/PortOperation" + }, + "loas": { + "type": "array", + "description": "Port Loas", + "items": { + "$ref": "#/components/schemas/PortLoa" + } } }, - "description": "Connection change operation data" + "description": "Physical Port specification" }, - "Actions": { - "type": "string", - "description": "Connection action type", - "enum": [ - "CONNECTION_CREATION_ACCEPTANCE", - "CONNECTION_CREATION_REJECTION", - "CONNECTION_UPDATE_ACCEPTANCE", - "CONNECTION_UPDATE_REJECTION", - "CONNECTION_DELETION_ACCEPTANCE", - "CONNECTION_REJECTION_ACCEPTANCE", - "CONNECTION_UPDATE_REQUEST", - "MIGRATION_EVPL_VC", - "CONNECTION_PROVIDER_STATUS_REQUEST", - "ACCEPT_HOSTED_CONNECTION", - "CANCEL_EVPL_VC_DRAFT_ORDERS" - ] + "BulkPort": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Port" + } + } + }, + "description": "Create bulk port request" }, - "ConnectionAcceptanceData": { + "BulkPhysicalPort": { "type": "object", "properties": { - "zSide": { - "$ref": "#/components/schemas/ConnectionSide" + "data": { + "type": "array", + "description": "add physical ports to virtual port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } } }, - "description": "Connection acceptance data" + "description": "Add to Lag request" }, - "BGPConnectionIpv4": { - "required": [ - "customerPeerIp", - "enabled" - ], + "AllPhysicalPortsResponse": { "type": "object", "properties": { - "customerPeerIp": { - "type": "string", - "description": "Customer side peering ip", - "example": "10.1.1.2" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "equinixPeerIp": { - "type": "string", - "description": "Equinix side peering ip", - "example": "10.1.1.3" + "data": { + "type": "array", + "description": "GET All Physical Ports", + "items": { + "$ref": "#/components/schemas/PhysicalPort" + } + } + }, + "description": "GET All Physical Ports" + }, + "LinkProtocolGetResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LinkProtocolResponse" + } } - } + }, + "description": "List of Vlans" }, - "BGPConnectionIpv6": { - "required": [ - "customerPeerIp", - "enabled" - ], + "PortV4SearchRequest": { "type": "object", "properties": { - "customerPeerIp": { - "type": "string", - "description": "Customer side peering ip", - "example": "2001:db8:c59b::1" + "filter": { + "$ref": "#/components/schemas/PortExpression" }, - "equinixPeerIp": { + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortSortCriteria" + } + } + }, + "description": "Search requests containing criteria" + }, + "PortExpression": { + "type": "object", + "properties": { + "and": { + "$ref": "#/components/schemas/PortExpressions" + }, + "or": { + "$ref": "#/components/schemas/PortExpressions" + }, + "property": { + "$ref": "#/components/schemas/PortSearchFieldName" + }, + "operator": { "type": "string", - "description": "Equinix side peering ip", - "example": "2001:db8:c59b::1" + "enum": [ + "=" + ] }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session" + "values": { + "type": "array", + "items": { + "type": "string" + } } } }, - "RoutingProtocolBFD": { - "required": [ - "enabled" - ], + "PortExpressions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PortExpression" + } + }, + "PortSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "enum": [ + "/project/projectId", + "/settings/productCode", + "/state" + ] + }, + "PortSortCriteria": { "type": "object", "properties": { - "enabled": { - "type": "boolean" + "direction": { + "$ref": "#/components/schemas/PortSortDirection" }, - "interval": { - "type": "string", - "example": "100" + "property": { + "$ref": "#/components/schemas/PortSortBy" } } }, - "DirectConnectionIpv4": { + "GetAllConnectionRouteFiltersResponse": { "type": "object", "properties": { - "equinixIfaceIp": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Filters attached to a Connection", + "items": { + "$ref": "#/components/schemas/ConnectionRouteFilterData" + } + } + } + }, + "RouteFilterId": { + "type": "string", + "description": "Route Filters UUID", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "ConnectionRouteFilterData": { + "type": "object", + "properties": { + "href": { "type": "string", - "description": "Equinix side Interface IP address", - "example": "192.168.100.0/30" + "description": "Route Filter URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Filter type", + "enum": [ + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" + ] + }, + "uuid": { + "type": "string", + "description": "Route Filter identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "attachmentStatus": { + "type": "string", + "enum": [ + "ATTACHING", + "ATTACHED", + "DETACHED", + "DETACHING", + "FAILED" + ] + }, + "direction": { + "type": "string", + "enum": [ + "INBOUND", + "OUTBOUND" + ] } } }, - "DirectConnectionIpv6": { - "required": [ - "equinixIfaceIp" - ], + "ConnectionRouteFiltersBase": { "type": "object", "properties": { - "equinixIfaceIp": { + "direction": { "type": "string", - "description": "Equinix side Interface IP address", - "example": "2001:db8:c59b::/1" + "description": "Route Filter direction to attach to a connection", + "enum": [ + "INBOUND", + "OUTBOUND" + ] } } }, - "RoutingProtocolBGPData": { + "RouteFiltersBase": { "type": "object", "properties": { "type": { "type": "string", - "description": "Routing protocol type", + "description": "Route Filter type", "enum": [ - "BGP" + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" ] }, "name": { "type": "string", - "example": "My-BGP-route-1" + "example": "My-direct-route-1" }, - "bgpIpv4": { - "$ref": "#/components/schemas/BGPConnectionIpv4" + "description": { + "type": "string", + "description": "Customer-provided connection description" }, - "bgpIpv6": { - "$ref": "#/components/schemas/BGPConnectionIpv6" - }, - "customerAsn": { - "type": "integer", - "description": "Customer asn", - "format": "int64", - "example": 65002 - }, - "equinixAsn": { - "type": "integer", - "description": "Equinix asn", - "format": "int64", - "example": 65002 - }, - "bgpAuthKey": { - "type": "string", - "description": "BGP authorization key", - "example": "testAuthKey" - }, - "bfd": { - "$ref": "#/components/schemas/RoutingProtocolBFD" + "project": { + "$ref": "#/components/schemas/Project" }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on route filter configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } + } + } + }, + "RouteFiltersData": { + "type": "object", + "properties": { "href": { "type": "string", - "description": "Routing Protocol URI", + "description": "Route Filter URI", "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Filter type", + "enum": [ + "BGP_IPv4_PREFIX_FILTER", + "BGP_IPv6_PREFIX_FILTER" + ] }, "uuid": { "type": "string", - "description": "Routing protocol identifier", + "description": "Route Filter identifier", "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "name": { + "type": "string", + "example": "My-direct-route-1" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" }, "state": { + "$ref": "#/components/schemas/RouteFilterState" + }, + "change": { + "$ref": "#/components/schemas/RouteFiltersChange" + }, + "notMatchedRuleAction": { "type": "string", "enum": [ - "PROVISIONED", - "DEPROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "REPROVISIONING", - "FAILED" + "ALLOW", + "DENY" ] }, - "operation": { - "$ref": "#/components/schemas/RoutingProtocolOperation" + "connectionsCount": { + "type": "integer", + "example": 0 }, - "change": { - "$ref": "#/components/schemas/RoutingProtocolChange" + "project": { + "allOf": [ + { + "$ref": "#/components/schemas/Project" + }, + { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Project URI", + "format": "uri", + "example": "https://api.equinix.com/resourceManager/v1/projects/567" + } + } + } + ] + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on route filter configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } }, "changelog": { "$ref": "#/components/schemas/Changelog" } } }, - "RoutingProtocolDirectData": { + "RouteFiltersPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Filters request", + "items": { + "$ref": "#/components/schemas/ConnectionChangeOperation" + } + }, + "RouteFilterChangeDataResponse": { "type": "object", "properties": { - "type": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteFilterChangeData" + } + } + }, + "description": "List of Route Filter changes" + }, + "ChangeId_1": { + "type": "string", + "description": "Route Filters Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteFilterChangeData": { + "type": "object", + "properties": { + "status": { "type": "string", - "description": "Routing protocol type", + "description": "Current outcome of the change flow", "enum": [ - "DIRECT" + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - "name": { + "createdBy": { "type": "string", - "example": "My-direct-route-1" - }, - "directIpv4": { - "$ref": "#/components/schemas/DirectConnectionIpv4" - }, - "directIpv6": { - "$ref": "#/components/schemas/DirectConnectionIpv6" + "description": "Created by User Key" }, - "href": { + "createdDateTime": { "type": "string", - "description": "Routing Protocol URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + "description": "Set when change flow starts", + "format": "date-time" }, - "uuid": { + "updatedBy": { "type": "string", - "description": "Routing protocol identifier", - "format": "uuid", - "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + "description": "Updated by User Key" }, - "state": { + "updatedDateTime": { "type": "string", - "enum": [ - "PROVISIONED", - "DEPROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "REPROVISIONING", - "FAILED" - ] + "description": "Set when change object is updated", + "format": "date-time" }, - "operation": { - "$ref": "#/components/schemas/RoutingProtocolOperation" + "information": { + "type": "string", + "description": "Additional information" }, - "change": { - "$ref": "#/components/schemas/RoutingProtocolChange" + "data": { + "$ref": "#/components/schemas/RouteFiltersChangeOperation" + } + }, + "description": "Current state of latest Route Filter change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteFiltersChange" + } + ] + }, + "GetRouteFilterGetConnectionsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "changelog": { - "$ref": "#/components/schemas/Changelog" + "data": { + "type": "array", + "description": "List of Connections using a Route Filter", + "items": { + "$ref": "#/components/schemas/RouteFilterConnectionsData" + } } } }, - "BGPActions": { - "type": "string", - "description": "BGP action type", - "enum": [ - "CLEAR_BGPIPV4", - "CLEAR_BGPIPV6", - "CLEAR_BGPIPV4_INBOUND", - "CLEAR_BGPIPV6_INBOUND", - "RESET_BGPIPV4", - "RESET_BGPIPV6" - ] - }, - "BGPActionStates": { - "type": "string", - "description": "BGP action state", - "enum": [ - "PENDING", - "FAILED", - "SUCCEEDED" - ] + "GetRouteFilterRulesResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Filter Rules", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesData" + } + } + } }, - "RoutingProtocolChange": { - "required": [ - "type", - "uuid" - ], + "RouteFilterRulesBase": { "type": "object", "properties": { - "uuid": { + "name": { "type": "string", - "description": "Uniquely identifies a change" + "example": "Private-subnet-filter" }, - "type": { + "description": { "type": "string", - "description": "Type of change", - "enum": [ - "ROUTING_PROTOCOL_UPDATE", - "ROUTING_PROTOCOL_CREATION", - "ROUTING_PROTOCOL_DELETION" - ] + "description": "Customer-provided Route Filter Rule description" }, - "href": { + "prefix": { "type": "string", - "description": "Routing Protocol Change URI", - "format": "uri" + "example": "192.168.0.0/24" + }, + "prefixMatch": { + "type": "string", + "example": "orlonger", + "default": "orlonger" } - }, - "description": "Current state of latest Routing Protocol change" + } }, - "RoutingProtocolChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "RouteFilterRulesData": { "type": "object", "properties": { - "op": { + "href": { "type": "string", - "description": "Handy shortcut for operation name", + "description": "Route Filter Rules URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "type": { + "type": "string", + "description": "Route Filter type", "enum": [ - "add", - "replace", - "remove" + "BGP_IPv4_PREFIX_FILTER_RULE", + "BGP_IPv6_PREFIX_FILTER_RULE" ] }, - "path": { + "uuid": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/" - }, - "value": { - "$ref": "#/components/schemas/RoutingProtocolBase" - } - }, - "description": "Routing Protocol change operation data" - }, - "PaginationRequest": { - "type": "object", - "properties": { - "offset": { - "minimum": 0, - "type": "integer", - "description": "Index of the first element.", - "default": 0 - }, - "limit": { - "minimum": 1, - "type": "integer", - "description": "Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.", - "default": 20 - } - }, - "description": "Pagination request information" - }, - "SortDirection": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "SortBy": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/direction", - "/aSide/accessPoint/name", - "/aSide/accessPoint/type", - "/aSide/accessPoint/account/accountName", - "/aSide/accessPoint/location/metroName", - "/aSide/accessPoint/location/metroCode", - "/aSide/accessPoint/linkProtocol/vlanCTag", - "/aSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/name", - "/zSide/accessPoint/type", - "/zSide/accessPoint/account/accountName", - "/zSide/accessPoint/location/metroName", - "/zSide/accessPoint/location/metroCode", - "/zSide/accessPoint/linkProtocol/vlanCTag", - "/zSide/accessPoint/linkProtocol/vlanSTag", - "/zSide/accessPoint/authenticationKey", - "/bandwidth", - "/geoScope", - "/uuid", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime", - "/operation/equinixStatus", - "/operation/providerStatus", - "/redundancy/priority" - ] - }, - "SortCriteriaResponse": { - "type": "object", - "properties": { - "direction": { - "$ref": "#/components/schemas/SortDirection" - }, - "property": { - "$ref": "#/components/schemas/SortBy" - } - } - }, - "Price": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "An absolute URL that returns specified pricing data", - "format": "url" - }, - "type": { - "$ref": "#/components/schemas/ProductType" - }, - "code": { - "type": "string", - "description": "Equinix-assigned product code" + "description": "Route Filter Rule identifier", + "format": "uuid", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" }, "name": { "type": "string", - "description": "Full product name" + "example": "Private-subnet-filter-2" }, "description": { "type": "string", - "description": "Product description" + "description": "Customer-provided Route Filter Rule description" }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "prefixMatch": { + "type": "string", + "description": "prefix matching operator", + "example": "exact", + "default": "orlonger" }, - "charges": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceCharge" - } + "change": { + "$ref": "#/components/schemas/RouteFilterRulesChange" }, - "currency": { + "action": { "type": "string", - "description": "Product offering price currency" - }, - "termLength": { - "type": "integer", - "description": "In months. No value means unlimited", "enum": [ - 12, - 24, - 36 + "PERMIT", + "DENY" ] }, - "catgory": { - "$ref": "#/components/schemas/PriceCategory" - }, - "connection": { - "$ref": "#/components/schemas/VirtualConnectionPrice" - }, - "ipBlock": { - "$ref": "#/components/schemas/IpBlockPrice" - }, - "router": { - "$ref": "#/components/schemas/FabricCloudRouterPrice" + "prefix": { + "type": "string", + "example": "192.168.0.0/24" }, - "port": { - "$ref": "#/components/schemas/VirtualPortPrice" + "changelog": { + "$ref": "#/components/schemas/Changelog" } } }, - "ServiceProfileTypeEnum": { + "RouteFilterRuleId": { "type": "string", - "description": "Service profile type", - "example": "L2_PROFILE", - "enum": [ - "L2_PROFILE", - "L3_PROFILE" - ] + "description": "Route Filter Rule UUID", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" }, - "ServiceProfileVisibilityEnum": { + "RouteFilterRulesPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Filters Rule request", + "items": { + "$ref": "#/components/schemas/RouteFilterChangePrefixMatch" + } + }, + "RouteFilterRulesChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesChangeData" + } + } + }, + "description": "List of Route Filter Rule changes" + }, + "ChangeId_2": { "type": "string", - "enum": [ - "PRIVATE", - "PUBLIC" - ] + "description": "Route Filter Rule Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" }, - "SimplifiedLocation": { + "RouteFilterRulesChangeData": { "type": "object", "properties": { - "region": { + "status": { "type": "string", - "example": "AMER, APAC, EMEA" + "description": "Current outcome of the change flow", + "enum": [ + "COMPLETED", + "FAILED", + "REQUESTED" + ] }, - "metroName": { + "createdBy": { "type": "string", - "example": "Amsterdam" + "description": "Created by User Key" }, - "metroCode": { + "createdDateTime": { "type": "string", - "example": "AM" + "description": "Set when change flow starts", + "format": "date-time" }, - "metroHref": { + "updatedBy": { "type": "string", - "example": "https://api.equinix.com/fabric/v4/metros/AM" + "description": "Updated by User Key" }, - "ibx": { + "updatedDateTime": { "type": "string", - "example": "AM1" + "description": "Set when change object is updated", + "format": "date-time" + }, + "data": { + "$ref": "#/components/schemas/RouteFilterRulesChangeOperation" + } + }, + "description": "Current state of latest Route Filter Rules change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteFilterRulesChange" } - } - }, - "ServiceProfileStateEnum": { - "type": "string", - "description": "Equinix assigned state.", - "example": "ACTIVE", - "enum": [ - "ACTIVE", - "PENDING_APPROVAL", - "DELETED", - "REJECTED" ] }, - "ServiceTokenType": { - "type": "string", - "description": "Type of Service Token", - "enum": [ - "VC_TOKEN" - ] + "RouteFilterRulesPostRequest": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Route Filter Rule configuration", + "items": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + } + } + }, + "description": "Create Route Filter Rule POST request" }, - "ServiceTokenConnection": { - "required": [ - "type" - ], + "CloudRouterPostRequest": { "type": "object", "properties": { "type": { "type": "string", - "description": "Type of Connection", "enum": [ - "EVPL_VC" + "XF_ROUTER" ] }, - "href": { + "name": { "type": "string", - "description": "An absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true + "description": "Customer-provided Cloud Router name" }, - "uuid": { - "type": "string", - "description": "Equinix-assigned connection identifier", - "format": "uuid" + "location": { + "$ref": "#/components/schemas/SimplifiedLocationWithoutIBX" }, - "allowRemoteConnection": { - "type": "boolean", - "description": "Authorization to connect remotely", - "default": false + "package": { + "$ref": "#/components/schemas/CloudRouterPackageType" }, - "bandwidthLimit": { - "maximum": 100000, - "minimum": 0, - "type": "integer", - "description": "Connection bandwidth limit in Mbps" + "order": { + "$ref": "#/components/schemas/Order" }, - "supportedBandwidths": { + "project": { + "$ref": "#/components/schemas/Project" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "notifications": { "type": "array", - "description": "List of permitted bandwidths.", + "description": "Preferences for notifications on connection configuration or status changes", "items": { - "type": "integer" + "$ref": "#/components/schemas/SimplifiedNotification" } - }, - "aSide": { - "$ref": "#/components/schemas/ServiceTokenSide" - }, - "zSide": { - "$ref": "#/components/schemas/ServiceTokenSide" } }, - "description": "Service Token Connection Type Information" - }, - "ServiceTokenState": { - "type": "string", - "description": "Service token state", - "enum": [ - "ACTIVE", - "INACTIVE", - "EXPIRED", - "DELETED" - ] + "description": "Create Cloud Router" }, - "ServiceTokenChangeOperation": { - "required": [ - "op", - "path", - "value" - ], + "CloudRouter": { "type": "object", "properties": { - "op": { + "href": { "type": "string", - "description": "Handy shortcut for operation name", - "enum": [ - "replace", - "add", - "remove" - ] + "description": "Cloud Routers URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "path": { + "uuid": { "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/expirationDateTime" + "description": "Equinix-assigned access point identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "name": { + "type": "string", + "description": "Customer-provided Cloud Router name", + "format": "string", + "example": "test-fg-1" + }, + "state": { + "$ref": "#/components/schemas/CloudRouterAccessPointState" + }, + "equinixAsn": { + "type": "integer", + "description": "Equinix ASN", + "format": "int64", + "example": 30000 + }, + "bgpIpv4RoutesCount": { + "minimum": 0, + "type": "integer", + "description": "Access point used and maximum number of IPv4 BGP routes" + }, + "bgpIpv6RoutesCount": { + "minimum": 0, + "type": "integer", + "description": "Access point used and maximum number of IPv6 BGP routes" + }, + "connectionsCount": { + "minimum": 0, + "type": "integer", + "description": "Number of connections associated with this Access point" + }, + "distinctIpv4PrefixesCount": { + "minimum": 0, + "type": "integer", + "description": "Number of distinct ipv4 routes" + }, + "distinctIpv6PrefixesCount": { + "minimum": 0, + "type": "integer", + "description": "Number of distinct ipv6 routes" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + }, + "change": { + "$ref": "#/components/schemas/CloudRouterChange" } }, - "description": "Service Token change operation data" + "description": "Fabric Cloud Router object", + "allOf": [ + { + "$ref": "#/components/schemas/CloudRouterPostRequest" + } + ] }, - "ServiceTokenActions": { + "RouterId": { "type": "string", - "description": "Service Token action type", - "enum": [ - "RESEND_EMAIL_NOTIFICATION" - ] + "description": "Cloud Router UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "PortType": { + "CloudRouterUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Fabric Cloud Router Update Request", + "items": { + "$ref": "#/components/schemas/CloudRouterChangeOperation" + } + }, + "RouterId_1": { "type": "string", - "description": "Type of Port", - "enum": [ - "XF_PORT", - "IX_PORT" - ] + "description": "Router UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "PortState": { + "ActionState": { + "$ref": "#/components/schemas/CloudRouterActionState" + }, + "CloudRouterActionState": { "type": "string", - "description": "Port lifecycle state", + "description": "Cloud Router action state", "enum": [ - "PENDING", - "PROVISIONING", - "PROVISIONED", - "ACTIVE", - "DEPROVISIONING", - "DEPROVISIONED", - "INACTIVE", - "FAILED" + "DONE", + "FAILED", + "PENDING" ] }, - "PortOrder": { + "CloudRouterActionResponse": { + "required": [ + "changeLog", + "state", + "type", + "uuid" + ], "type": "object", "properties": { - "purchaseOrder": { - "$ref": "#/components/schemas/PortOrder_purchaseOrder" + "type": { + "$ref": "#/components/schemas/CloudRouterActionType" }, - "orderId": { + "uuid": { "type": "string", - "description": "Order Identification" + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "orderNumber": { + "description": { "type": "string", - "description": "Order Reference Number" + "example": "description" }, - "uuid": { - "type": "string", - "description": "Equinix-assigned order identifier", - "format": "uuid" + "state": { + "$ref": "#/components/schemas/CloudRouterActionState" }, - "signature": { - "$ref": "#/components/schemas/PortOrder_signature" + "changeLog": { + "$ref": "#/components/schemas/Changelog" } - } + }, + "description": "Cloud Router actions response object" }, - "PortOperation": { + "CloudRouterActionRequest": { + "required": [ + "type" + ], "type": "object", "properties": { - "operationalStatus": { - "type": "string", - "description": "Availability of a given physical port.", - "enum": [ - "UP", - "DOWN" - ] - }, - "connectionCount": { - "type": "integer", - "description": "Total number of connections." - }, - "opStatusChangedAt": { - "type": "string", - "description": "Date and time at which port availability changed.", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "type": { + "$ref": "#/components/schemas/CloudRouterActionType" } }, - "description": "Operational specifications for ports." + "description": "Cloud Router action request" }, - "PortDevice": { + "RouteTableEntrySearchRequest": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Device name" + "filter": { + "$ref": "#/components/schemas/RouteTableEntryFilters" }, - "redundancy": { - "$ref": "#/components/schemas/PortDeviceRedundancy" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntrySortCriteria" + } } }, - "description": "Port device" + "description": "Search requests containing criteria" }, - "PortInterface": { + "RouteTableEntryFilters": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Port interface type" - }, - "ifIndex": { - "type": "string", - "description": "Port interface index" + "and": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntryFilter" + } + } + } + }, + "RouteTableEntryFilter": { + "type": "object", + "anyOf": [ + { + "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" }, - "name": { - "type": "string", - "description": "Port interface name" + { + "$ref": "#/components/schemas/RouteTableEntryOrFilter" } - }, - "description": "Port interface" + ] }, - "PortDemarcationPoint": { + "RouteTableEntrySimpleExpression": { "type": "object", "properties": { - "cabinetUniqueSpaceId": { + "property": { "type": "string", - "description": "Port cabinet unique space id" + "description": "Possible field names to use on filters:\n * `/type` - Route table entry type\n * `/prefix` - Route table entry prefix\n * `/nextHop` - Route table entry nextHop\n * `/state` - Route table entry state\n * `/*` - all-category search\n", + "example": "/type" }, - "cageUniqueSpaceId": { + "operator": { "type": "string", - "description": "Port cage unique space id" - }, - "patchPanel": { - "type": "string", - "description": "Port patch panel" - }, - "patchPanelName": { - "type": "string", - "description": "Port patch panel", - "deprecated": true - }, - "patchPanelPortA": { - "type": "string", - "description": "Port patch panel port A" - }, - "patchPanelPortB": { - "type": "string", - "description": "Port patch panel port B" - }, - "connectorType": { - "type": "string", - "description": "Port connector type" + "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `~*` - case-insensitive like\n", + "example": "=" }, - "ibx": { - "type": "string", - "description": "Port ibx identifier" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "IPv4_BGP_ROUTE" + } } - }, - "description": "Customer physical Port" + } }, - "PortRedundancy": { + "RouteTableEntryOrFilter": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Access point redundancy" - }, - "group": { - "type": "string", - "description": "Port UUID of respective primary port" + "or": { + "maxItems": 3, + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteTableEntrySimpleExpression" + } + } + } + }, + "RouteTableEntrySortCriteria": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/RouteTableEntrySortDirection" }, - "priority": { - "$ref": "#/components/schemas/PortPriority" + "property": { + "$ref": "#/components/schemas/RouteTableEntrySortBy" } - }, - "description": "Port redundancy configuration" + } }, - "PortEncapsulation": { + "RouteTableEntrySortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "RouteTableEntrySortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime", + "/prefix", + "/nextHop", + "/connection/name", + "/type" + ] + }, + "RouteTableEntrySearchResponse": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Port encapsulation protocol type", - "enum": [ - "NULL", - "DOT1Q", - "QINQ", - "UNTAGGED" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "tagProtocolId": { - "type": "string", - "description": "Port encapsulation tag protocol identifier" + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/RouteTableEntry" + } + } + } + }, + "ValidateRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/ValidateRequest_filter" } }, - "description": "Port encapsulation configuration" + "description": "Validate connection auth api key or vlan" }, - "PortLag": { + "ValidateSubnetResponse": { "type": "object", "properties": { - "id": { - "type": "string", - "description": "id" - }, - "enabled": { - "type": "boolean", - "description": "enabled" - }, - "name": { - "type": "string", - "description": "name" - }, - "memberStatus": { - "type": "string", - "description": "member status" + "additionalInfo": { + "type": "array", + "description": "Additional information", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } } }, - "description": "Port Lag" + "description": "ValidateResponse" }, - "PortSettings": { + "CloudRouterSearchRequest": { "type": "object", "properties": { - "product": { - "type": "string", - "description": "Product name" - }, - "buyout": { - "type": "boolean" - }, - "viewPortPermission": { - "type": "boolean" - }, - "placeVcOrderPermission": { - "type": "boolean" - }, - "layer3Enabled": { - "type": "boolean" - }, - "productCode": { - "type": "string" - }, - "sharedPortType": { - "type": "boolean" + "filter": { + "$ref": "#/components/schemas/CloudRouterFilters" }, - "sharedPortProduct": { - "type": "string", - "enum": [ - "NETWORK_EDGE", - "VIRTUAL_GATEWAY", - "SMARTKEY", - "EDGE_METAL" - ] + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "packageType": { - "type": "string", - "description": "Type of Port Package", - "enum": [ - "STANDARD", - "UNTAGGED", - "UNLIMITED", - "FREE" - ] + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CloudRouterSortCriteria" + } } }, - "description": "Port configuration settings" + "description": "Search requests containing criteria" }, - "PortNotification": { - "required": [ - "registeredUsers", - "type" - ], + "CloudRouterFilters": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Notification Type", - "enum": [ - "NOTIFICATION", - "TECHNICAL", - "PEERING", - "ESCALATION" - ] - }, - "registeredUsers": { + "and": { + "maxItems": 8, "type": "array", - "description": "Array of registered users", "items": { - "type": "string" + "$ref": "#/components/schemas/CloudRouterFilter" } } } }, - "PortAdditionalInfo": { + "CloudRouterFilter": { "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Key" + "anyOf": [ + { + "$ref": "#/components/schemas/CloudRouterSimpleExpression" }, - "value": { - "type": "string", - "description": "Value" + { + "$ref": "#/components/schemas/CloudRouterOrFilter" } - }, - "description": "Additional information" + ] }, - "PortLoa": { + "CloudRouterSimpleExpression": { "type": "object", "properties": { - "uuid": { + "property": { "type": "string", - "description": "uuid" + "description": "Possible field names to use on filters:\n * `/project/projectId` - project id (mandatory)\n * `/name` - Fabric Cloud Router name\n * `/uuid` - Fabric Cloud Router uuid\n * `/state` - Fabric Cloud Router status\n * `/location/metroCode` - Fabric Cloud Router metro code\n * `/location/metroName` - Fabric Cloud Router metro name\n * `/package/code` - Fabric Cloud Router package\n * `/*` - all-category search\n", + "example": "/name" }, - "href": { + "operator": { "type": "string", - "description": "Loa uri.", - "format": "uri", - "readOnly": true + "description": "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `ILIKE` - case-insensitive like\n", + "example": "=" }, - "type": { - "type": "string", - "description": "Loa type", - "enum": [ - "CTR_LOA" - ] - } - }, - "description": "Port Loas" - }, - "PhysicalPortType": { - "type": "string", - "description": "Type of Port", - "enum": [ - "XF_PHYSICAL_PORT" - ] - }, - "PortTether": { - "type": "object", - "properties": { - "crossConnectId": { - "type": "string", - "description": "Port cross connect identifier" - }, - "cabinetNumber": { - "type": "string", - "description": "Port cabinet number" - }, - "systemName": { - "type": "string", - "description": "Port system name" - }, - "patchPanel": { - "type": "string", - "description": "Port patch panel" - }, - "patchPanelPortA": { - "type": "string", - "description": "Port patch panel port A" - }, - "patchPanelPortB": { - "type": "string", - "description": "Port patch panel port B" - }, - "ibx": { - "type": "string", - "description": "z-side/Equinix IBX" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "FabricCloudRouter-1" + } } - }, - "description": "Port physical connection" + } }, - "LinkProtocolResponse": { + "CloudRouterOrFilter": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "state": { - "$ref": "#/components/schemas/LinkProtocolState" - }, - "type": { - "$ref": "#/components/schemas/LinkProtocolRequestType" - }, - "vlanTag": { - "type": "integer", - "example": 20 - }, - "vlanTagMin": { - "type": "integer", - "example": 20 - }, - "vlanTagMax": { - "type": "integer", - "example": 200 - }, - "vlanSTag": { - "type": "integer", - "example": 20 - }, - "vlanCTag": { - "type": "integer", - "example": 20 - }, - "vlanCTagMin": { - "type": "integer", - "example": 20 - }, - "vlanCTagMax": { - "type": "integer", - "example": 200 - }, - "subInterface": { - "$ref": "#/components/schemas/SubInterface" - }, - "additionalInfo": { + "or": { + "maxItems": 3, "type": "array", "items": { - "$ref": "#/components/schemas/AdditionalInfo" + "$ref": "#/components/schemas/CloudRouterSimpleExpression" } + } + } + }, + "CloudRouterSortCriteria": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/CloudRouterSortDirection" }, - "connection": { - "$ref": "#/components/schemas/LinkProtocolConnection" - }, - "serviceToken": { - "$ref": "#/components/schemas/LinkProtocolServiceToken" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "property": { + "$ref": "#/components/schemas/CloudRouterSortBy" } - }, - "description": "Link Protocol response" + } }, - "PortSortDirection": { + "CloudRouterSortDirection": { "type": "string", "description": "Sorting direction", "default": "DESC", @@ -14006,5124 +14909,7578 @@ "ASC" ] }, - "PortSortBy": { + "CloudRouterSortBy": { "type": "string", "description": "Possible field names to use on sorting", - "default": "/device/name", + "default": "/changeLog/updatedDateTime", "enum": [ - "/device/name" + "/name", + "/uuid", + "/state", + "/location/metroCode", + "/location/metroName", + "/package/code", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" ] }, - "SimplifiedLocationWithoutIBX": { - "required": [ - "metroCode" - ], + "SearchResponse": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "The Canonical URL at which the resource resides." - }, - "region": { - "type": "string", - "example": "AMER, APAC, EMEA" - }, - "metroName": { - "type": "string", - "example": "Amsterdam" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "metroCode": { - "type": "string", - "example": "AM" + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/CloudRouter" + } } } }, - "CloudRouterPackageType": { - "required": [ - "code" - ], + "PackageResponse": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Fabric Cloud Router URI", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" - }, - "type": { - "type": "string", - "description": "Cloud Router package type", - "example": "ROUTER_PACKAGE", - "enum": [ - "ROUTER_PACKAGE" - ] + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "code": { - "type": "string", - "description": "Cloud Router package code", - "example": "LAB", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] + "data": { + "type": "array", + "description": "Data returned from the API call.", + "items": { + "$ref": "#/components/schemas/CloudRouterPackage" + } } - }, - "description": "Fabric Cloud Router Package Type" + } }, - "CloudRouterAccessPointState": { + "RouterPackageCode": { "type": "string", - "description": "Access point lifecycle state", + "description": "Router package code", "enum": [ - "PROVISIONED", - "PROVISIONING", - "DEPROVISIONING", - "DEPROVISIONED", - "LOCKED", - "NOT_PROVISIONED", - "NOT_DEPROVISIONED" + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] }, - "CloudRouterChange": { - "required": [ - "type", - "updatedDateTime" - ], + "CloudRouterPackage": { "type": "object", "properties": { - "uuid": { + "href": { "type": "string", - "description": "Uniquely identifies a change" + "description": "Cloud Router package URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" }, "type": { "type": "string", - "description": "Type of change", - "enum": [ - "ROUTER_UPDATE", - "ROUTER_PACKAGE_UPDATE" - ] - }, - "status": { - "type": "string", - "description": "Current outcome of the change flow", + "description": "Type of Router package", + "example": "ROUTER_PACKAGE", "enum": [ - "COMPLETED", - "FAILED", - "REQUESTED" + "ROUTER_PACKAGE" ] }, - "createdDateTime": { - "type": "string", - "description": "Set when change flow starts", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "code": { + "$ref": "#/components/schemas/code" }, - "updatedDateTime": { + "description": { "type": "string", - "description": "Set when change object is updated", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "Fabric Cloud Router Package description" }, - "information": { - "type": "string", - "description": "Additional information" + "totalIPv4RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "Cloud Router package BGP IPv4 routes limit", + "example": 50 }, - "data": { - "$ref": "#/components/schemas/CloudRouterChangeOperation" - } - }, - "description": "Current state of latest CloudRouter change" - }, - "CloudRouterChangeOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { + "totalIPv6RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "Cloud Router package BGP IPv6 routes limit", + "example": 50 + }, + "staticIPv4RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package static IPv4 routes limit", + "example": 3 + }, + "staticIPv6RoutesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package static IPv6 routes limit" + }, + "naclsMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package NACLs limit", + "example": 2 + }, + "naclRulesMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package NACLs rules limit", + "example": 5 + }, + "haSupported": { + "type": "boolean", + "description": "CloudRouter package high-available configuration support", + "example": true + }, + "routeFilterSupported": { + "type": "boolean", + "description": "CloudRouter package route filter support" + }, + "natType": { "type": "string", - "description": "Handy shortcut for operation name", + "description": "CloudRouter package NAT supported type", + "example": "STATIC_NAT", "enum": [ - "replace", - "add", - "remove" + "STATIC_NAT" ] }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter" + "vcCountMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max Connection limit", + "example": 10 }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "crCountMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max CloudRouter limit", + "example": 3 + }, + "vcBandwidthMax": { + "minimum": 0, + "type": "integer", + "description": "CloudRouter package Max Bandwidth limit", + "example": 50 + }, + "changeLog": { + "$ref": "#/components/schemas/PackageChangeLog" } }, - "description": "Fabric Cloud Router change operation data" - }, - "CloudRouterActionType": { - "type": "string", - "description": "Cloud Router action type", - "enum": [ - "BGP_SESSION_STATUS_UPDATE", - "ROUTE_TABLE_ENTRY_UPDATE" - ] + "description": "Fabric Cloud Router Package" }, - "RouteTableEntry": { - "required": [ - "changeLog", - "state", - "type" - ], + "HealthResponse": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/RouteTableEntryType" - }, - "protocolType": { - "$ref": "#/components/schemas/RouteTableEntryProtocolType" - }, - "state": { - "$ref": "#/components/schemas/RouteTableEntryState" - }, - "age": { + "href": { "type": "string", - "example": "PT5M30S" + "description": "The Canonical URL at which the resource resides." }, - "prefix": { + "version": { "type": "string", - "example": "192.168.10.0/24" + "description": "Indicator of a version" }, - "nextHop": { + "release": { "type": "string", - "example": "10.10.10.5" - }, - "metric": { - "type": "integer", - "example": 5 + "description": "release details." }, - "localPreference": { - "type": "integer", - "example": 200 + "state": { + "type": "string", + "description": "status of a service" }, - "asPath": { + "apiServices": { + "$ref": "#/components/schemas/ApiServices" + } + }, + "description": "GET Services Health" + }, + "ConnectionResponse": { + "type": "object", + "properties": { + "additionalInfo": { "type": "array", + "description": "Additional information", "items": { - "type": "integer" + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" } }, - "connection": { - "$ref": "#/components/schemas/RouteTableEntry_connection" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "data": { + "type": "array", + "description": "Connection response data", + "items": { + "$ref": "#/components/schemas/Connection" + } } }, - "description": "Route table entry object" - }, - "code": { - "type": "string", - "description": "Cloud Router package code", - "example": "LAB", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] + "description": "ValidateResponse" }, - "PackageChangeLog": { + "Pagination": { + "required": [ + "limit", + "total" + ], "type": "object", "properties": { - "createdDateTime": { + "offset": { + "minimum": 0, + "type": "integer", + "description": "Index of the first item returned in the response. The default is 0.", + "default": 0 + }, + "limit": { + "minimum": 0, + "type": "integer", + "description": "Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.", + "default": 20 + }, + "total": { + "minimum": 0, + "type": "integer", + "description": "Total number of elements returned." + }, + "next": { "type": "string", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "URL relative to the next item in the response." }, - "updatedDateTime": { + "previous": { "type": "string", - "format": "date-time", - "example": "2020-11-06T07:00:00Z" + "description": "URL relative to the previous item in the response." } }, - "description": "Cloud Router package change log" + "description": "Pagination response information" }, - "ApiServices": { + "NetworkPostRequest": { + "required": [ + "name", + "notifications", + "scope", + "type" + ], "type": "object", "properties": { - "route": { - "type": "string", - "description": "service routes" + "type": { + "$ref": "#/components/schemas/NetworkType" }, - "status": { + "name": { "type": "string", - "description": "service status" + "description": "Customer-provided network name" }, - "changedDateTime": { - "type": "string", - "description": "service status change date" + "scope": { + "$ref": "#/components/schemas/NetworkScope" + }, + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + }, + "project": { + "$ref": "#/components/schemas/Project" + }, + "notifications": { + "type": "array", + "description": "Preferences for notifications on network configuration or status changes", + "items": { + "$ref": "#/components/schemas/SimplifiedNotification" + } } }, - "description": "Available services details" + "description": "Create Network" }, - "NetworkType": { - "type": "string", - "description": "Network type", - "enum": [ - "EVPLAN", - "EPLAN", - "IPWAN" - ] - }, - "NetworkScope": { - "type": "string", - "description": "Network scope", - "enum": [ - "REGIONAL", - "GLOBAL" + "Network": { + "type": "object", + "description": "Network specification", + "allOf": [ + { + "required": [ + "changeLog", + "href", + "state", + "uuid" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "state": { + "$ref": "#/components/schemas/NetworkState" + }, + "connectionsCount": { + "type": "number", + "description": "number of connections created on the network" + }, + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + }, + "change": { + "$ref": "#/components/schemas/SimplifiedNetworkChange" + }, + "operation": { + "$ref": "#/components/schemas/NetworkOperation" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + }, + "links": { + "type": "array", + "description": "Network sub-resources links", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/Link" + } + } + } + }, + { + "$ref": "#/components/schemas/NetworkPostRequest" + } ] }, - "NetworkState": { + "NetworkId": { "type": "string", - "description": "Network status", - "example": "ACTIVE", - "enum": [ - "ACTIVE", - "INACTIVE", - "DELETED" - ] + "description": "Network UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" }, - "SimplifiedNetworkChange": { + "NetworkUpdateRequest": { + "minItems": 1, + "type": "array", + "description": "Fabric Network Update Request", + "items": { + "$ref": "#/components/schemas/NetworkChangeOperation" + } + }, + "NetworkSearchRequest": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" + "filter": { + "$ref": "#/components/schemas/NetworkFilter" }, - "uuid": { - "type": "string", - "description": "Uniquely identifies a change", - "format": "uuid", - "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + "pagination": { + "$ref": "#/components/schemas/PaginationRequest" }, - "type": { - "$ref": "#/components/schemas/NetworkChangeType" - } - }, - "description": "Current state of latest network change" - }, - "NetworkOperation": { - "type": "object", - "properties": { - "equinixStatus": { - "$ref": "#/components/schemas/NetworkEquinixStatus" + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkSortCriteria" + } } }, - "description": "Network operational data" + "description": "Search requests containing criteria" }, - "Link": { + "NetworkFilter": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Resource URI", - "format": "uri", - "readOnly": true - }, - "rel": { - "type": "string", - "description": "OperationId from Swagger hub spec" + "and": { + "$ref": "#/components/schemas/NetworkSimpleExpression" }, - "method": { - "type": "string", - "description": "Http method type" + "or": { + "$ref": "#/components/schemas/NetworkSimpleExpression" }, - "contentType": { - "type": "string", - "description": "Content type for the response" + "property": { + "$ref": "#/components/schemas/NetworkSearchFieldName" }, - "authenticate": { - "type": "boolean", - "description": "Authentication required or not" - } - } - }, - "NetworkChangeOperation": { - "required": [ - "op", - "path", - "value" - ], - "type": "object", - "properties": { - "op": { + "operator": { "type": "string", - "description": "Handy shortcut for operation name", + "example": "=", "enum": [ - "replace", - "add", - "remove" + "=", + "!=", + ">", + ">=", + "<", + "<=", + "BETWEEN", + "NOT BETWEEN", + "LIKE", + "NOT LIKE", + "ILIKE", + "NOT ILIKE", + "IN", + "NOT IN" ] }, - "path": { - "type": "string", - "description": "path inside document leading to updated parameter", - "example": "/name" - }, - "value": { - "type": "object", - "description": "new value for updated parameter" + "values": { + "type": "array", + "items": { + "type": "string", + "example": "Network-1" + } } - }, - "description": "Network change operation data" + } }, - "NetworkSortCriteriaResponse": { + "NetworkSimpleExpression": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkFilter" + } + }, + "NetworkSearchFieldName": { + "type": "string", + "description": "Possible field names to use on filters", + "example": "/name", + "enum": [ + "/name", + "/uuid", + "/scope", + "/type", + "/operation/equinixStatus", + "/location/region", + "/project/projectId", + "/account/globalCustId", + "/account/orgId", + "/deletedDate", + "/*" + ] + }, + "NetworkSortCriteria": { "type": "object", "properties": { "direction": { - "$ref": "#/components/schemas/NetworkSortDirectionResponse" + "$ref": "#/components/schemas/NetworkSortDirection" }, "property": { - "$ref": "#/components/schemas/NetworkSortByResponse" + "$ref": "#/components/schemas/NetworkSortBy" } } }, - "NetworkChangeType": { + "NetworkSortDirection": { "type": "string", - "description": "Type of change", + "description": "Sorting direction", + "default": "DESC", "enum": [ - "NETWORK_CREATION", - "NETWORK_UPDATE", - "NETWORK_DELETION" + "DESC", + "ASC" ] }, - "NetworkChangeStatus": { + "NetworkSortBy": { "type": "string", - "description": "Current outcome of the change flow", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", "enum": [ - "APPROVED", - "COMPLETED", - "FAILED", - "REJECTED", - "REQUESTED", - "SUBMITTED_FOR_APPROVAL" + "/name", + "/uuid", + "/scope", + "/operation/equinixStatus", + "/location/region", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" ] }, - "fabricConnectionUuid": { - "title": "fabricConnectionUuid", - "required": [ - "uuid" - ], + "NetworkSearchResponse": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "uuid of the Fabric L2 connection", - "format": "uuid" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "href": { - "type": "string", - "description": "the href for the L2 connection", - "format": "uri" + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkSortCriteriaResponse" + } }, - "type": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Network" + } } }, - "description": "UUID of the Fabric Connection Instance", - "example": { - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" - } + "description": "List of networks" }, - "ipv4": { - "title": "ipv4", + "NetworkConnections": { "type": "object", "properties": { - "primary": { - "type": "string", - "format": "ipv4" - }, - "secondary": { - "type": "string", - "format": "ipv4" - }, - "networkMask": { - "type": "string", - "format": "ipv4" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "defaultGateway": { - "type": "string", - "format": "ipv4" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Connection" + } } }, - "description": "EPT service network information", - "example": { - "primary": "10.0.0.1", - "secondary": "10.0.0.2", - "networkMask": "255.255.255.240", - "defaultGateway": "10.0.0.3" - } + "description": "List of network changes" }, - "account": { - "required": [ - "accountNumber" - ], + "NetworkChangeResponse": { "type": "object", "properties": { - "accountNumber": { - "type": "integer" - }, - "isResellerAccount": { - "type": "boolean" - }, - "orgId": { - "type": "string" + "pagination": { + "$ref": "#/components/schemas/Pagination" }, - "globalOrgId": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkChange" + } } }, - "description": "Account model, includes account number and flag to indicate if this account is reseller", - "example": { - "accountNumber": 123456 - } + "description": "List of network changes" }, - "advanceConfiguration": { + "ChangeId_3": { + "type": "string", + "description": "Network Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "NetworkChange": { "type": "object", "properties": { - "ntp": { - "$ref": "#/components/schemas/ntpAdvanceConfiguration" + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" }, - "ptp": { - "$ref": "#/components/schemas/ptpAdvanceConfiguration" + "uuid": { + "type": "string", + "description": "Uniquely identifies a change", + "format": "uuid", + "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "type": { + "$ref": "#/components/schemas/NetworkChangeType" + }, + "status": { + "$ref": "#/components/schemas/NetworkChangeStatus" + }, + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NetworkChangeOperation" + } } }, - "description": "Advance Configuration for NTP/PTP" + "description": "Current state of latest network change" }, - "packageRequest": { - "title": "package", + "ServiceId": { + "type": "string", + "description": "Precision Time Service UUID", + "format": "uuid", + "example": "557400f8-d360-11e9-bb65-2a2ae2dbcce4" + }, + "precisionTimeServiceCreateResponse": { + "title": "precisionTimeServiceResponse", "required": [ - "code" + "href", + "ipv4", + "package", + "state", + "type", + "uuid" ], "type": "object", "properties": { + "type": { + "type": "string", + "enum": [ + "NTP", + "PTP" + ] + }, "href": { "type": "string", "format": "uri" }, - "code": { + "uuid": { + "type": "string", + "description": "uuid of the ept service", + "format": "uuid" + }, + "name": { "type": "string", + "description": "name of the ept service" + }, + "description": { + "type": "string" + }, + "state": { + "type": "string", + "description": "indicate service state", "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" + "PROVISIONED", + "PROVISIONING", + "PROVISIONING_FAILED", + "CONFIGURING", + "CANCELLED", + "DEPROVISIONING_FAILED", + "PENDING_CONFIGURATION", + "DEPROVISIONED", + "CONFIGURING_FAILED", + "DEPROVISIONING" ] + }, + "package": { + "$ref": "#/components/schemas/PackageResponse" + }, + "connections": { + "maxItems": 2, + "minItems": 1, + "uniqueItems": true, + "type": "array", + "description": "fabric l2 connections used for the ept service", + "items": { + "$ref": "#/components/schemas/fabricConnectionUuid" + } + }, + "ipv4": { + "$ref": "#/components/schemas/ipv4" + }, + "account": { + "$ref": "#/components/schemas/account" + }, + "advanceConfiguration": { + "$ref": "#/components/schemas/advanceConfiguration" + }, + "project": { + "$ref": "#/components/schemas/Project" } }, - "description": "EPT Package Request", - "example": { - "code": "NTP_STANDARD" - } + "description": "EPT service instance" }, - "connectionLink": { + "precisionTimeChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "href": { + "op": { "type": "string", - "format": "uri", - "example": "https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections" + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] }, - "type": { + "path": { "type": "string", + "description": "path inside document leading to updated parameter", "enum": [ - "EVPL_VC" + "/ipv4", + "/name", + "/advanceConfiguration/ntp", + "/advanceConfiguration/ptp", + "/package" ] }, - "uuid": { - "type": "string", - "format": "uuid" + "value": { + "type": "object", + "description": "new value for updated parameter" } - } + }, + "description": "Fabric Precision Timing change operation data" }, - "ConnectionPriority": { - "type": "string", - "description": "Connection priority in redundancy group", - "enum": [ - "PRIMARY", - "SECONDARY" - ] - }, - "AccessPoint": { + "precisionTimeServiceRequest": { + "title": "precisionTimeServiceRequest", + "required": [ + "connections", + "ipv4", + "name", + "package", + "type" + ], "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/AccessPointType" + "type": "string", + "description": "Indicate the entity is EPT service", + "enum": [ + "NTP", + "PTP" + ] }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "name": { + "type": "string" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "description": { + "type": "string" }, - "port": { - "$ref": "#/components/schemas/SimplifiedPort" + "package": { + "$ref": "#/components/schemas/packageRequest" }, - "profile": { - "$ref": "#/components/schemas/SimplifiedServiceProfile" + "connections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/fabricConnectionUuid" + } }, - "router": { - "$ref": "#/components/schemas/CloudRouter" + "ipv4": { + "$ref": "#/components/schemas/ipv4" }, - "linkProtocol": { - "$ref": "#/components/schemas/SimplifiedLinkProtocol" + "advanceConfiguration": { + "$ref": "#/components/schemas/advanceConfiguration" }, - "virtualDevice": { - "$ref": "#/components/schemas/VirtualDevice" + "project": { + "$ref": "#/components/schemas/Project" + } + }, + "description": "EPT service instance" + }, + "ConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "EVPL_VC", + "EPL_VC", + "EC_VC", + "IP_VC", + "ACCESS_EPL_VC", + "EIA_VC", + "EVPLAN_VC", + "EPLAN_VC", + "IPWAN_VC" + ] + }, + "Order": { + "type": "object", + "properties": { + "purchaseOrderNumber": { + "type": "string", + "description": "Purchase order number" }, - "interface": { - "$ref": "#/components/schemas/Interface" + "billingTier": { + "type": "string", + "description": "Billing tier for connection bandwidth" }, - "network": { - "$ref": "#/components/schemas/SimplifiedNetwork" + "orderId": { + "type": "string", + "description": "Order Identification" }, - "sellerRegion": { + "orderNumber": { "type": "string", - "description": "Access point seller region" + "description": "Order Reference Number" + } + } + }, + "SimplifiedNotification": { + "required": [ + "emails", + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Notification Type", + "example": "BANDWIDTH_ALERT", + "enum": [ + "NOTIFICATION", + "BANDWIDTH_ALERT", + "CONNECTION_APPROVAL", + "PROFILE_LIFECYCLE", + "ALL", + "SALES_REP_NOTIFICATIONS" + ] }, - "peeringType": { - "$ref": "#/components/schemas/PeeringType" + "sendInterval": { + "type": "string" }, - "authenticationKey": { - "type": "string", - "description": "Access point authentication key" + "emails": { + "type": "array", + "description": "Array of contact emails", + "items": { + "type": "string", + "format": "email" + } }, - "providerConnectionId": { + "registeredUsers": { + "type": "array", + "description": "Array of registered users", + "items": { + "type": "string" + } + } + } + }, + "ConnectionRedundancy": { + "type": "object", + "properties": { + "group": { "type": "string", - "description": "Provider assigned Connection Id" + "description": "Redundancy group identifier (UUID of primary connection)" + }, + "priority": { + "$ref": "#/components/schemas/ConnectionPriority" } }, - "description": "Access point object" + "description": "Connection redundancy configuration" }, - "ConnectionCompanyProfile": { + "ConnectionSide": { "type": "object", "properties": { - "id": { - "type": "number", - "description": "company profile identifier", - "example": 1 + "serviceToken": { + "$ref": "#/components/schemas/ServiceToken" }, - "name": { - "type": "string", - "description": "company profile name", - "example": "Company-1" + "accessPoint": { + "$ref": "#/components/schemas/AccessPoint" }, - "globalOrgId": { - "type": "string", - "description": "global customer organization value" + "companyProfile": { + "$ref": "#/components/schemas/ConnectionCompanyProfile" + }, + "invitation": { + "$ref": "#/components/schemas/ConnectionInvitation" + }, + "additionalInfo": { + "type": "array", + "description": "Any additional information, which is not part of connection metadata or configuration", + "items": { + "$ref": "#/components/schemas/ConnectionSideAdditionalInfo" + } } }, - "description": "Connection Company Profile Details" + "description": "Connection configuration object for each side of multi-segment connection" }, - "ConnectionInvitation": { + "Project": { + "required": [ + "projectId" + ], "type": "object", "properties": { - "email": { + "projectId": { "type": "string", - "description": "invitee email", - "example": "test@equinix.com" - }, - "message": { + "description": "Subscriber-assigned project ID", + "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" + } + } + }, + "ConnectionSideAdditionalInfo": { + "type": "object", + "properties": { + "key": { "type": "string", - "description": "invitation message", - "example": "Hello, Please accept my invitation" + "description": "Key" }, - "ctrDraftOrderId": { + "value": { "type": "string", - "description": "draft order id for invitation" + "description": "Value" } }, - "description": "Connection Invitation Details" + "description": "Additional information" }, - "ProviderStatus": { + "ConnectionState": { "type": "string", - "description": "Connection provider readiness status", + "description": "Connection status", "enum": [ - "AVAILABLE", + "ACTIVE", + "CANCELLED", "DEPROVISIONED", "DEPROVISIONING", + "DRAFT", "FAILED", - "NOT_AVAILABLE", - "PENDING_APPROVAL", + "PENDING", "PROVISIONED", "PROVISIONING", - "REJECTED", - "PENDING_BGP", - "OUT_OF_BANDWIDTH", - "DELETED", - "ERROR", - "ERRORED", - "NOTPROVISIONED", - "NOT_PROVISIONED", - "ORDERING", - "DELETING", - "PENDING DELETE", - "N/A" + "REPROVISIONING", + "" ] }, - "EquinixStatus": { - "type": "string", - "description": "Connection status", - "enum": [ - "REJECTED_ACK", - "REJECTED", - "PENDING_DELETE", - "PROVISIONED", - "BEING_REPROVISIONED", - "BEING_DEPROVISIONED", - "BEING_PROVISIONED", - "CREATED", - "ERRORED", - "PENDING_DEPROVISIONING", - "APPROVED", - "ORDERING", - "PENDING_APPROVAL", - "NOT_PROVISIONED", - "DEPROVISIONING", - "NOT_DEPROVISIONED", - "PENDING_AUTO_APPROVAL", - "PROVISIONING", - "PENDING_BGP_PEERING", - "PENDING_PROVIDER_VLAN", - "DEPROVISIONED", - "DELETED", - "PENDING_BANDWIDTH_APPROVAL", - "AUTO_APPROVAL_FAILED", - "UPDATE_PENDING", - "DELETED_API", - "MODIFIED", - "PENDING_PROVIDER_VLAN_ERROR", - "DRAFT", - "CANCELLED", - "PENDING_INTERFACE_CONFIGURATION" - ] - }, - "RoutingProtocolOperation": { - "type": "object", - "properties": { - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "ProductType": { - "type": "string", - "description": "Product type", - "enum": [ - "VIRTUAL_CONNECTION_PRODUCT", - "IP_BLOCK_PRODUCT", - "VIRTUAL_PORT_PRODUCT", - "CLOUD_ROUTER_PRODUCT" - ] - }, - "PriceCharge": { + "Change": { + "required": [ + "createdDateTime", + "type" + ], "type": "object", "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, "type": { "type": "string", - "description": "Price charge type", + "description": "Type of change", "enum": [ - "MONTHLY_RECURRING", - "NON_RECURRING" + "CONNECTION_CREATION", + "CONNECTION_UPDATE", + "CONNECTION_DELETION", + "CONNECTION_PROVIDER_STATUS_REQUEST" ] }, - "price": { - "minimum": 0, - "type": "number", - "description": "Offering price", - "format": "double" - } - }, - "description": "Price Charge" - }, - "PriceCategory": { - "type": "string", - "description": "Price category", - "enum": [ - "COUNTRY", - "CUSTOMER" - ] - }, - "VirtualConnectionPrice": { - "type": "object", - "properties": { - "uuid": { + "status": { "type": "string", - "description": "Either uuid or rest of attributes are required", - "format": "uuid" + "description": "Current outcome of the change flow", + "enum": [ + "APPROVED", + "COMPLETED", + "FAILED", + "REJECTED", + "REQUESTED", + "SUBMITTED_FOR_APPROVAL" + ] }, - "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceConnectionType" + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "bandwidth": { - "minimum": 0, - "type": "integer" + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - "aSide": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide" + "information": { + "type": "string", + "description": "Additional information" }, - "zSide": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide" + "data": { + "$ref": "#/components/schemas/ConnectionChangeOperation" } }, - "description": "Virtual Connection Product configuration" + "description": "Current state of latest connection change" }, - "IpBlockPrice": { + "ConnectionOperation": { "type": "object", "properties": { - "uuid": { - "type": "string", - "description": "Either uuid or rest of attributes are required", - "format": "uuid" + "providerStatus": { + "$ref": "#/components/schemas/ProviderStatus" }, - "type": { - "$ref": "#/components/schemas/IpBlockType" + "equinixStatus": { + "$ref": "#/components/schemas/EquinixStatus" }, - "prefixLength": { - "type": "integer" + "operationalStatus": { + "type": "string", + "description": "Connection operational status", + "enum": [ + "UP", + "DOWN" + ] }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Error" + } + }, + "opStatusChangedAt": { + "type": "string", + "description": "When connection transitioned into current operational status", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "IP Block Product configuration" + "description": "Connection type-specific operational data" }, - "FabricCloudRouterPrice": { + "SimplifiedAccount": { "type": "object", "properties": { - "uuid": { + "accountNumber": { + "type": "integer", + "description": "Account number", + "format": "int64" + }, + "accountName": { "type": "string", - "description": "Unique identifier assigned to the Cloud Router", - "format": "uuid" + "description": "Account name" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "orgId": { + "type": "integer", + "description": "Customer organization identifier", + "format": "int64" }, - "package": { - "$ref": "#/components/schemas/FabricCloudRouterPackages" - } - }, - "description": "Cloud Router Product configuration" - }, - "VirtualPortPrice": { - "type": "object", - "properties": { - "uuid": { + "organizationName": { "type": "string", - "description": "Unique identifier assigned to the virtual port. Either the uuid or the remaining attributes must be supplied.", - "format": "uuid" + "description": "Customer organization name" }, - "type": { - "$ref": "#/components/schemas/VirtualPortType" + "globalOrgId": { + "type": "string", + "description": "Global organization identifier" }, - "location": { - "$ref": "#/components/schemas/VirtualPortLocation" + "globalOrganizationName": { + "type": "string", + "description": "Global organization name" }, - "lag": { - "$ref": "#/components/schemas/LinkAggregationGroup" + "ucmId": { + "type": "string", + "description": "Account ucmId" }, - "physicalPortsQuantity": { - "type": "integer", - "description": "Number of physical ports requested. The defaults is 1.", - "default": 1 + "globalCustId": { + "type": "string", + "description": "Account name" }, - "bandwidth": { + "resellerAccountNumber": { "type": "integer", - "description": "Aggregated data transfer capacity, expressed as follows
-> Mbps, megabits (1 million bits) per second
-> Gbps, gigabits (1 billion bits) per second
Bandwidth must be divisible by physicalPortsQuantity." - }, - "redundancy": { - "$ref": "#/components/schemas/VirtualPortRedundancy" + "description": "Reseller account number", + "format": "int64" }, - "connectivitySource": { - "$ref": "#/components/schemas/ConnectivitySource" + "resellerAccountName": { + "type": "string", + "description": "Reseller account name" }, - "serviceType": { - "$ref": "#/components/schemas/VirtualPortServiceType" + "resellerUcmId": { + "type": "string", + "description": "Reseller account ucmId" }, - "settings": { - "$ref": "#/components/schemas/VirtualPortConfiguration" - } - }, - "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." - }, - "ServiceTokenSide": { - "type": "object", - "properties": { - "accessPointSelectors": { - "type": "array", - "description": "List of AccessPointSelectors", - "items": { - "$ref": "#/components/schemas/AccessPointSelector" - } + "resellerOrgId": { + "type": "integer", + "description": "Reseller customer organization identifier", + "format": "int64" } - }, - "description": "Connection link protocol configuration" + } }, - "PortDeviceRedundancy": { + "Changelog": { "type": "object", "properties": { - "group": { + "createdBy": { "type": "string", - "description": "Device redundancy group" + "description": "Created by User Key", + "example": "johnsmith" }, - "priority": { + "createdByFullName": { "type": "string", - "description": "Device redundancy priority", - "enum": [ - "PRIMARY", - "SECONDARY" - ] + "description": "Created by User Full Name", + "example": "John Smith" + }, + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address", + "example": "john.smith@example.com" + }, + "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" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name", + "example": "John Smith" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address", + "example": "john.smith@example.com" + }, + "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" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name", + "example": "John Smith" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address", + "example": "john.smith@example.com" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "Device redundancy" - }, - "PortPriority": { - "type": "string", - "description": "Port priority in redundancy group", - "enum": [ - "PRIMARY", - "SECONDARY" - ] - }, - "LinkProtocolState": { - "type": "string", - "description": "Network status", - "enum": [ - "RESERVED", - "RELEASED" - ] - }, - "LinkProtocolRequestType": { - "type": "string", - "description": "Type of Link Protocol", - "enum": [ - "UNTAGGED", - "DOT1Q", - "QINQ", - "EVPN_VXLAN", - "UNTAGGEDEPL" - ] + "description": "Change log" }, - "SubInterface": { + "Error": { + "required": [ + "errorCode", + "errorMessage" + ], "type": "object", "properties": { - "type": { - "type": "string", - "description": "type of connection vlan", - "enum": [ - "VNI", - "VXLAN", - "VLAN" - ] + "errorCode": { + "pattern": "^EQ-\\d{7}$", + "type": "string" }, - "name": { - "type": "string", - "description": "name of subinterafce of a port" + "errorMessage": { + "type": "string" }, - "unit": { - "type": "integer", - "example": 200 + "correlationId": { + "type": "string" + }, + "details": { + "type": "string" + }, + "help": { + "type": "string" + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceError_additionalInfo" + } } }, - "description": "Sub Interface information" + "description": "Error Response with details" }, - "AdditionalInfo": { + "ConnectionChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "key": { + "op": { "type": "string", - "description": "Key" + "description": "Handy shortcut for operation name", + "example": "add" }, - "value": { + "path": { "type": "string", - "description": "Value" + "description": "path inside document leading to updated parameter", + "example": "/ipv6" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } }, - "description": "Additional information" + "description": "Connection change operation data" }, - "LinkProtocolConnection": { + "Actions": { + "type": "string", + "description": "Connection action type", + "enum": [ + "CONNECTION_CREATION_ACCEPTANCE", + "CONNECTION_CREATION_REJECTION", + "CONNECTION_UPDATE_ACCEPTANCE", + "CONNECTION_UPDATE_REJECTION", + "CONNECTION_DELETION_ACCEPTANCE", + "CONNECTION_REJECTION_ACCEPTANCE", + "CONNECTION_UPDATE_REQUEST", + "MIGRATION_EVPL_VC", + "CONNECTION_PROVIDER_STATUS_REQUEST", + "ACCEPT_HOSTED_CONNECTION", + "CANCEL_EVPL_VC_DRAFT_ORDERS" + ] + }, + "ConnectionAcceptanceData": { "type": "object", "properties": { - "href": { - "type": "string", - "description": "Connection URI", - "format": "uri", - "readOnly": true - }, - "uuid": { + "zSide": { + "$ref": "#/components/schemas/ConnectionSide" + } + }, + "description": "Connection acceptance data" + }, + "BGPConnectionIpv4": { + "required": [ + "customerPeerIp", + "enabled" + ], + "type": "object", + "properties": { + "customerPeerIp": { "type": "string", - "format": "string", - "example": "cd67f685-41b0-1b07-6de0-320a5c00abe" + "description": "Customer side peering ip", + "example": "10.1.1.2" }, - "type": { + "equinixPeerIp": { "type": "string", - "example": "EVPL_VC" + "description": "Equinix side peering ip", + "example": "10.1.1.3" }, - "bandwidth": { - "type": "integer", - "format": "int64", - "example": 100 + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session" } - }, - "description": "Connection details of Link Protocol" + } }, - "LinkProtocolServiceToken": { + "BGPConnectionIpv6": { + "required": [ + "customerPeerIp", + "enabled" + ], "type": "object", "properties": { - "href": { + "customerPeerIp": { "type": "string", - "description": "Service Token URI", - "format": "uri", - "readOnly": true + "description": "Customer side peering ip", + "example": "2001:db8:c59b::1" }, - "uuid": { + "equinixPeerIp": { "type": "string", - "format": "uuid", - "example": "cd67f685-41b0-1b07-6de0-0320a5c00abe" + "description": "Equinix side peering ip", + "example": "2001:db8:c59b::1" }, - "type": { - "type": "string", - "example": "TOKEN" + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session" + } + } + }, + "RoutingProtocolBFD": { + "required": [ + "enabled" + ], + "type": "object", + "properties": { + "enabled": { + "type": "boolean" }, - "bandwidth": { - "type": "integer", - "format": "int64", - "example": 1000 + "interval": { + "type": "string", + "example": "100" } - }, - "description": "Service Token details of Link Protocol" + } }, - "RouteTableEntryType": { - "type": "string", - "description": "Route table entry type", - "enum": [ - "IPv4_BGP_ROUTE", - "IPv4_STATIC_ROUTE", - "IPv4_DIRECT_ROUTE", - "IPv6_BGP_ROUTE", - "IPv6_STATIC_ROUTE", - "IPv6_DIRECT_ROUTE" - ] - }, - "RouteTableEntryProtocolType": { - "type": "string", - "description": "Route table entry protocol type", - "enum": [ - "BGP", - "STATIC", - "DIRECT" - ] - }, - "RouteTableEntryState": { - "type": "string", - "description": "Route table entry state", - "enum": [ - "ACTIVE" - ] - }, - "NetworkEquinixStatus": { - "type": "string", - "description": "Network status", - "enum": [ - "PROVISIONING", - "PROVISIONED", - "NOT_PROVISIONED", - "DEPROVISIONING", - "DEPROVISIONED", - "NOT_DEPROVISIONED" - ] - }, - "NetworkSortDirectionResponse": { - "type": "string", - "description": "Sorting direction", - "default": "DESC", - "enum": [ - "DESC", - "ASC" - ] - }, - "NetworkSortByResponse": { - "type": "string", - "description": "Possible field names to use on sorting", - "default": "/changeLog/updatedDateTime", - "enum": [ - "/name", - "/type", - "/uuid", - "/state", - "/scope", - "/location/region", - "/changeLog/createdDateTime", - "/changeLog/updatedDateTime" - ] + "DirectConnectionIpv4": { + "type": "object", + "properties": { + "equinixIfaceIp": { + "type": "string", + "description": "Equinix side Interface IP address", + "example": "192.168.100.0/30" + } + } }, - "ntpAdvanceConfiguration": { - "type": "array", - "items": { - "$ref": "#/components/schemas/md5" + "DirectConnectionIpv6": { + "required": [ + "equinixIfaceIp" + ], + "type": "object", + "properties": { + "equinixIfaceIp": { + "type": "string", + "description": "Equinix side Interface IP address", + "example": "2001:db8:c59b::/1" + } } }, - "ptpAdvanceConfiguration": { + "RoutingProtocolBGPData": { "type": "object", "properties": { - "timeScale": { + "type": { "type": "string", - "description": "Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol.", - "example": "ARB", + "description": "Routing protocol type", "enum": [ - "ARB", - "PTP" + "BGP" ] }, - "domain": { - "maximum": 127, - "minimum": 0, - "type": "integer", - "example": 0 + "name": { + "type": "string", + "example": "My-BGP-route-1" }, - "priority1": { - "maximum": 248, - "minimum": 0, - "type": "integer", - "example": 0 + "bgpIpv4": { + "$ref": "#/components/schemas/BGPConnectionIpv4" }, - "priority2": { - "maximum": 248, - "minimum": 0, - "type": "integer", - "example": 0 + "bgpIpv6": { + "$ref": "#/components/schemas/BGPConnectionIpv6" }, - "logAnnounceInterval": { + "customerAsn": { "type": "integer", - "description": "The mean time interval between Announce messages. A shorter interval makes ptp4l react faster to the changes in the master-slave hierarchy. The interval should be the same in the whole domain. It's specified as a power of two in seconds. The default is 1 (2 seconds).", - "example": 0 + "description": "Customer asn", + "format": "int64", + "example": 65002 }, - "logSyncInterval": { + "equinixAsn": { "type": "integer", - "description": "The mean time interval between Sync messages. A shorter interval may improve accuracy of the local clock. It's specified as a power of two in seconds. The default is 0 (1 second).", - "example": 0 + "description": "Equinix asn", + "format": "int64", + "example": 65002 }, - "logDelayReqInterval": { - "type": "integer", - "example": 0 + "bgpAuthKey": { + "type": "string", + "description": "BGP authorization key", + "example": "testAuthKey" }, - "transportMode": { + "bfd": { + "$ref": "#/components/schemas/RoutingProtocolBFD" + }, + "href": { + "type": "string", + "description": "Routing Protocol URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" + }, + "uuid": { + "type": "string", + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" + }, + "state": { "type": "string", "enum": [ - "Multicast", - "Unicast", - "Hybrid" + "PROVISIONED", + "DEPROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "REPROVISIONING", + "FAILED" ] }, - "grantTime": { - "maximum": 7200, - "minimum": 30, - "type": "integer", - "description": "Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200.", - "example": 300 + "operation": { + "$ref": "#/components/schemas/RoutingProtocolOperation" + }, + "change": { + "$ref": "#/components/schemas/RoutingProtocolChange" + }, + "changelog": { + "$ref": "#/components/schemas/Changelog" } } }, - "AccessPointType": { - "type": "string", - "description": "Access point type", - "enum": [ - "VD", - "VG", - "SP", - "IGW", - "COLO", - "SUBNET", - "CLOUD_ROUTER", - "NETWORK" - ] - }, - "SimplifiedPort": { + "RoutingProtocolDirectData": { "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/PortType" - }, - "id": { - "type": "integer", - "description": "Equinix assigned response attribute for Port Id" - }, - "href": { - "type": "string", - "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", - "format": "uri", - "readOnly": true - }, - "uuid": { "type": "string", - "description": "Equinix assigned response attribute for port identifier", - "format": "uuid" + "description": "Routing protocol type", + "enum": [ + "DIRECT" + ] }, "name": { "type": "string", - "description": "Equinix assigned response attribute for Port name" + "example": "My-direct-route-1" }, - "description": { - "type": "string", - "description": "Equinix assigned response attribute for Port description" + "directIpv4": { + "$ref": "#/components/schemas/DirectConnectionIpv4" }, - "physicalPortsSpeed": { - "minimum": 0, - "type": "integer", - "description": "Physical Ports Speed in Mbps" + "directIpv6": { + "$ref": "#/components/schemas/DirectConnectionIpv6" }, - "connectionsCount": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Connection count" + "href": { + "type": "string", + "description": "Routing Protocol URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/69762051-85ed-4d13-b6b4-e32e93c672b5" }, - "project": { - "$ref": "#/components/schemas/Project" + "uuid": { + "type": "string", + "description": "Routing protocol identifier", + "format": "uuid", + "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, "state": { - "$ref": "#/components/schemas/PortState" - }, - "cvpId": { "type": "string", - "description": "Equinix assigned response attribute for Unique ID for a virtual port." + "enum": [ + "PROVISIONED", + "DEPROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "REPROVISIONING", + "FAILED" + ] }, "operation": { - "$ref": "#/components/schemas/PortOperation" + "$ref": "#/components/schemas/RoutingProtocolOperation" }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" + "change": { + "$ref": "#/components/schemas/RoutingProtocolChange" }, - "serviceType": { + "changelog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "BGPActions": { + "type": "string", + "description": "BGP action type", + "enum": [ + "CLEAR_BGPIPV4", + "CLEAR_BGPIPV6", + "CLEAR_BGPIPV4_INBOUND", + "CLEAR_BGPIPV6_INBOUND", + "RESET_BGPIPV4", + "RESET_BGPIPV6" + ] + }, + "BGPActionStates": { + "type": "string", + "description": "BGP action state", + "enum": [ + "PENDING", + "FAILED", + "SUCCEEDED" + ] + }, + "RoutingProtocolChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { "type": "string", - "description": "Port service Type", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", "enum": [ - "EPL", - "MSP" + "ROUTING_PROTOCOL_UPDATE", + "ROUTING_PROTOCOL_CREATION", + "ROUTING_PROTOCOL_DELETION" ] }, - "bandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port bandwidth in Mbps" + "href": { + "type": "string", + "description": "Routing Protocol Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Routing Protocol change" + }, + "RoutingProtocolChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "add", + "replace", + "remove" + ] }, - "availableBandwidth": { - "minimum": 0, - "type": "integer", - "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/" }, - "usedBandwidth": { + "value": { + "$ref": "#/components/schemas/RoutingProtocolBase" + } + }, + "description": "Routing Protocol change operation data" + }, + "PaginationRequest": { + "type": "object", + "properties": { + "offset": { "minimum": 0, "type": "integer", - "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" - }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" - }, - "device": { - "$ref": "#/components/schemas/PortDevice" - }, - "interface": { - "$ref": "#/components/schemas/PortInterface" - }, - "tether": { - "$ref": "#/components/schemas/PortTether" - }, - "demarcationPoint": { - "$ref": "#/components/schemas/PortDemarcationPoint" - }, - "redundancy": { - "$ref": "#/components/schemas/PortRedundancy" - }, - "encapsulation": { - "$ref": "#/components/schemas/PortEncapsulation" - }, - "lagEnabled": { - "type": "boolean", - "description": "If LAG enabled" - }, - "settings": { - "$ref": "#/components/schemas/PortSettings" + "description": "Index of the first element.", + "default": 0 }, - "physicalPortQuantity": { + "limit": { + "minimum": 1, "type": "integer", - "description": "Number of physical ports" - }, - "additionalInfo": { - "type": "array", - "description": "Port additional information", - "items": { - "$ref": "#/components/schemas/PortAdditionalInfo" - } - }, - "physicalPorts": { - "type": "array", - "description": "Physical ports that implement this port", - "items": { - "$ref": "#/components/schemas/PhysicalPort" - } + "description": "Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.", + "default": 20 } }, - "description": "Port specification" + "description": "Pagination request information" }, - "SimplifiedLinkProtocol": { + "SortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "SortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/name", + "/direction", + "/aSide/accessPoint/name", + "/aSide/accessPoint/type", + "/aSide/accessPoint/account/accountName", + "/aSide/accessPoint/location/metroName", + "/aSide/accessPoint/location/metroCode", + "/aSide/accessPoint/linkProtocol/vlanCTag", + "/aSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/name", + "/zSide/accessPoint/type", + "/zSide/accessPoint/account/accountName", + "/zSide/accessPoint/location/metroName", + "/zSide/accessPoint/location/metroCode", + "/zSide/accessPoint/linkProtocol/vlanCTag", + "/zSide/accessPoint/linkProtocol/vlanSTag", + "/zSide/accessPoint/authenticationKey", + "/bandwidth", + "/geoScope", + "/uuid", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime", + "/operation/equinixStatus", + "/operation/providerStatus", + "/redundancy/priority" + ] + }, + "SortCriteriaResponse": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "vlanTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanTag value specified for DOT1Q connections" - }, - "vlanSTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanSTag value specified for QINQ connections" + "direction": { + "$ref": "#/components/schemas/SortDirection" }, - "vlanCTag": { - "maximum": 4092, - "minimum": 2, - "type": "integer", - "description": "vlanCTag value specified for QINQ connections" + "property": { + "$ref": "#/components/schemas/SortBy" } - }, - "description": "Connection link protocol Configuration" + } }, - "VirtualDevice": { + "Price": { "type": "object", "properties": { "href": { "type": "string", - "description": "Virtual Device URI", - "format": "uri", - "readOnly": true + "description": "An absolute URL that returns specified pricing data", + "format": "url" }, - "uuid": { + "type": { + "$ref": "#/components/schemas/ProductType" + }, + "code": { "type": "string", - "description": "Equinix-assigned Virtual Device identifier", - "format": "uuid" + "description": "Equinix-assigned product code" }, "name": { "type": "string", - "description": "Customer-assigned Virtual Device name" + "description": "Full product name" }, - "type": { + "description": { "type": "string", - "description": "Virtual Device type", - "enum": [ - "EDGE" - ] + "description": "Product description" }, "account": { "$ref": "#/components/schemas/SimplifiedAccount" - } - }, - "description": "Virtual Device AccessPoint Information" - }, - "Interface": { - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Virtual Interface URI", - "format": "uri", - "readOnly": true }, - "uuid": { - "type": "string", - "description": "Equinix-assigned Virtual Device Interface identifier", - "format": "uuid" - }, - "id": { - "type": "integer", - "description": "Interface id" + "charges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceCharge" + } }, - "type": { + "currency": { "type": "string", - "description": "Virtual Device Interface type", + "description": "Product offering price currency" + }, + "termLength": { + "type": "integer", + "description": "In months. No value means unlimited", "enum": [ - "CLOUD", - "NETWORK" + 12, + 24, + 36 ] - } - }, - "description": "Virtual Device Interface Information" - }, - "SimplifiedNetwork": { - "required": [ - "uuid" - ], - "type": "object", - "properties": { - "href": { - "type": "string", - "description": "Network URI", - "format": "uri", - "readOnly": true, - "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "uuid": { - "type": "string", - "description": "Equinix-assigned network identifier", - "format": "uuid", - "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" - }, - "name": { - "type": "string", - "description": "Customer-assigned network name", - "example": "My EVPLAN Network" }, - "state": { - "$ref": "#/components/schemas/NetworkState" - }, - "account": { - "$ref": "#/components/schemas/SimplifiedAccount" - }, - "change": { - "$ref": "#/components/schemas/SimplifiedNetworkChange" - }, - "operation": { - "$ref": "#/components/schemas/NetworkOperation" - }, - "changeLog": { - "$ref": "#/components/schemas/Changelog" + "catgory": { + "$ref": "#/components/schemas/PriceCategory" }, - "links": { - "type": "array", - "description": "Network sub-resources links", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/Link" - } + "connection": { + "$ref": "#/components/schemas/VirtualConnectionPrice" }, - "type": { - "$ref": "#/components/schemas/NetworkType" + "ipBlock": { + "$ref": "#/components/schemas/IpBlockPrice" }, - "scope": { - "$ref": "#/components/schemas/NetworkScope" + "router": { + "$ref": "#/components/schemas/FabricCloudRouterPrice" }, - "location": { - "$ref": "#/components/schemas/SimplifiedLocation" + "port": { + "$ref": "#/components/schemas/VirtualPortPrice" } - }, - "description": "Network specification" + } }, - "PeeringType": { + "ServiceProfileTypeEnum": { "type": "string", - "description": "Access point peering type", + "description": "Service profile type", + "example": "L2_PROFILE", "enum": [ - "PRIVATE", - "MICROSOFT", - "PUBLIC", - "MANUAL" + "L2_PROFILE", + "L3_PROFILE" ] }, - "VirtualConnectionPriceConnectionType": { + "ServiceProfileVisibilityEnum": { "type": "string", - "description": "Virtual Connection type", "enum": [ - "EVPL_VC", - "EPL_VC", - "EC_VC", - "IP_VC", - "VD_CHAIN_VC", - "ACCESS_EPL_VC", - "EVPLAN_VC", - "EPLAN_VC", - "IPWAN_VC" + "PRIVATE", + "PUBLIC" ] }, - "VirtualConnectionPriceASide": { - "type": "object", - "properties": { - "accessPoint": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint" - } - } - }, - "VirtualConnectionPriceZSide": { + "SimplifiedLocation": { "type": "object", "properties": { - "accessPoint": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint" + "region": { + "type": "string", + "example": "AMER, APAC, EMEA" + }, + "metroName": { + "type": "string", + "example": "Amsterdam" + }, + "metroCode": { + "type": "string", + "example": "AM" + }, + "metroHref": { + "type": "string", + "example": "https://api.equinix.com/fabric/v4/metros/AM" + }, + "ibx": { + "type": "string", + "example": "AM1" } } }, - "IpBlockType": { + "ServiceProfileStateEnum": { "type": "string", - "description": "IP Block type", + "description": "Equinix assigned state.", + "example": "ACTIVE", "enum": [ - "IPv4", - "IPv6" + "ACTIVE", + "PENDING_APPROVAL", + "DELETED", + "REJECTED" ] }, - "PriceLocation": { - "type": "object", - "properties": { - "metroCode": { - "type": "string" - } - } + "ServiceTokenType": { + "type": "string", + "description": "Type of Service Token", + "enum": [ + "VC_TOKEN" + ] }, - "FabricCloudRouterPackages": { + "ServiceTokenConnection": { + "required": [ + "type" + ], "type": "object", "properties": { - "code": { - "$ref": "#/components/schemas/FabricCloudRouterCode" + "type": { + "type": "string", + "description": "Type of Connection", + "enum": [ + "EVPL_VC" + ] + }, + "href": { + "type": "string", + "description": "An absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier", + "format": "uuid" + }, + "allowRemoteConnection": { + "type": "boolean", + "description": "Authorization to connect remotely", + "default": false + }, + "bandwidthLimit": { + "maximum": 100000, + "minimum": 0, + "type": "integer", + "description": "Connection bandwidth limit in Mbps" + }, + "supportedBandwidths": { + "type": "array", + "description": "List of permitted bandwidths.", + "items": { + "type": "integer" + } + }, + "aSide": { + "$ref": "#/components/schemas/ServiceTokenSide" + }, + "zSide": { + "$ref": "#/components/schemas/ServiceTokenSide" } }, - "description": "Cloud Router package" + "description": "Service Token Connection Type Information" }, - "VirtualPortType": { + "ServiceTokenState": { "type": "string", - "description": "Port type.", + "description": "Service token state", "enum": [ - "XF_PORT" + "ACTIVE", + "INACTIVE", + "EXPIRED", + "DELETED" ] }, - "VirtualPortLocation": { + "ServiceTokenChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "ibx": { + "op": { "type": "string", - "description": "Code assigned to the Equinix International Business Exchange (IBX) data center from which the port is ordered.
The port might be in a different location." + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] + }, + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/expirationDateTime" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } }, - "description": "Geographic data for the port." + "description": "Service Token change operation data" }, - "LinkAggregationGroup": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Parameter showing whether LAG configuration is mandatory. The default is false.", - "default": false - } - }, - "description": "Link aggregation group (LAG) preferences and settings." - }, - "VirtualPortRedundancy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Parameter showing whether redundancy is mandatory. The default is false.", - "default": false - } - }, - "description": "Specifications for redundant connections, which improve service continuity by routing traffic to secondary ports when primary ports are unavailable.
Redundancy increases resilience and boosts site reliability scores." + "ServiceTokenActions": { + "type": "string", + "description": "Service Token action type", + "enum": [ + "RESEND_EMAIL_NOTIFICATION" + ] }, - "ConnectivitySource": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/ConnectivitySourceType" - } - }, - "description": "Physical or virtual port that houses the connection." + "PortType": { + "type": "string", + "description": "Type of Port", + "enum": [ + "XF_PORT", + "IX_PORT" + ] }, - "VirtualPortServiceType": { + "PortState": { "type": "string", - "description": "Port service type. The default is managed-service provider (MSP).", - "default": "MSP", + "description": "Port lifecycle state", "enum": [ - "MSP", - "EPL" + "PENDING", + "PROVISIONING", + "PROVISIONED", + "ACTIVE", + "DEPROVISIONING", + "DEPROVISIONED", + "INACTIVE", + "FAILED" ] }, - "VirtualPortConfiguration": { + "PortOrder": { "type": "object", "properties": { - "buyout": { - "type": "boolean", - "description": "Buyout (true) or standard (false) configuration of the port at this access point.
Buyout ports offer free, unlimited connections. Standard ports do not. The default is false.", - "default": false + "purchaseOrder": { + "$ref": "#/components/schemas/PortOrder_purchaseOrder" + }, + "orderId": { + "type": "string", + "description": "Order Identification" + }, + "orderNumber": { + "type": "string", + "description": "Order Reference Number" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned order identifier", + "format": "uuid" + }, + "signature": { + "$ref": "#/components/schemas/PortOrder_signature" } - }, - "description": "Port configuration." + } }, - "AccessPointSelector": { + "PortOperation": { "type": "object", "properties": { - "type": { + "operationalStatus": { "type": "string", - "description": "Type of Access point", + "description": "Availability of a given physical port.", "enum": [ - "COLO" + "UP", + "DOWN" ] }, - "port": { - "$ref": "#/components/schemas/SimplifiedMetadataEntity" + "connectionCount": { + "type": "integer", + "description": "Total number of connections." }, - "linkProtocol": { - "$ref": "#/components/schemas/LinkProtocol" + "opStatusChangedAt": { + "type": "string", + "description": "Date and time at which port availability changed.", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } }, - "description": "List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability." + "description": "Operational specifications for ports." }, - "md5": { + "PortDevice": { "type": "object", "properties": { - "type": { + "name": { "type": "string", - "enum": [ - "ASCII", - "HEX" - ] - }, - "id": { - "type": "string" + "description": "Device name" }, - "password": { - "type": "string" + "redundancy": { + "$ref": "#/components/schemas/PortDeviceRedundancy" } - } - }, - "LinkProtocolType": { - "type": "string", - "description": "Type of Link Protocol", - "enum": [ - "UNTAGGED", - "DOT1Q", - "QINQ", - "EVPN_VXLAN" - ] - }, - "VirtualConnectionPriceAccessPointType": { - "type": "string", - "description": "Virtual Connection access point type", - "enum": [ - "VD", - "SP", - "COLO", - "CLOUD_ROUTER", - "CHAINGROUP", - "NETWORK" - ] - }, - "VirtualConnectionBridgePackageCode": { - "type": "string", - "description": "Virtual Connection bridge package code", - "enum": [ - "REGIONAL", - "GLOBAL" - ] - }, - "FabricCloudRouterCode": { - "type": "string", - "description": "Cloud Router code", - "enum": [ - "LAB", - "BASIC", - "PRO", - "PREMIUM" - ] - }, - "ConnectivitySourceType": { - "type": "string", - "description": "Type of connectivity. COLO, colocation; BMMR, building meet-me room. The default is COLO.
A building meet-me room (BMMR) is a room within the same building where an Equinix IBX customer can connect with a non-Equinix IBX customer.", - "default": "COLO", - "enum": [ - "COLO", - "BMMR", - "REMOTE" - ] + }, + "description": "Port device" }, - "SimplifiedMetadataEntity": { + "PortInterface": { "type": "object", "properties": { - "href": { + "type": { "type": "string", - "description": "url to entity", - "format": "uri" + "description": "Port interface type" }, - "uuid": { + "ifIndex": { "type": "string", - "description": "Equinix assigned Identifier", - "format": "uuid" + "description": "Port interface index" }, - "type": { + "name": { "type": "string", - "description": "Type of Port" + "description": "Port interface name" } }, - "description": "Configuration details for port used at the access point." + "description": "Port interface" }, - "LinkProtocol": { - "required": [ - "type" - ], + "PortDemarcationPoint": { "type": "object", - "description": "Connection link protocol Configuration", - "discriminator": { - "propertyName": "type", - "mapping": { - "UNTAGGED": "#/components/schemas/LinkProtocolUntagged", - "DOT1Q": "#/components/schemas/LinkProtocolDot1q", - "QINQ": "#/components/schemas/LinkProtocolQinq", - "EVPN_VXLAN": "#/components/schemas/LinkProtocolEvpnVxlan" - } - }, - "oneOf": [ - { - "$ref": "#/components/schemas/LinkProtocolUntagged" + "properties": { + "cabinetUniqueSpaceId": { + "type": "string", + "description": "Port cabinet unique space id" }, - { - "$ref": "#/components/schemas/LinkProtocolDot1q" + "cageUniqueSpaceId": { + "type": "string", + "description": "Port cage unique space id" }, - { - "$ref": "#/components/schemas/LinkProtocolQinq" + "patchPanel": { + "type": "string", + "description": "Port patch panel" }, - { - "$ref": "#/components/schemas/LinkProtocolEvpnVxlan" - } - ] - }, - "LinkProtocolUntagged": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" + "patchPanelName": { + "type": "string", + "description": "Port patch panel", + "deprecated": true }, - "ipv4": { - "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + "patchPanelPortA": { + "type": "string", + "description": "Port patch panel port A" }, - "ipv6": { - "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + "patchPanelPortB": { + "type": "string", + "description": "Port patch panel port B" + }, + "connectorType": { + "type": "string", + "description": "Port connector type" + }, + "ibx": { + "type": "string", + "description": "Port ibx identifier" } }, - "description": "Connection link protocol configuration - UNTAGGED" + "description": "Customer physical Port" }, - "LinkProtocolDot1q": { - "required": [ - "vlanTag" - ], + "PortRedundancy": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "tagProtocolId": { - "type": "string", - "description": "Tag protocol identifier" + "enabled": { + "type": "boolean", + "description": "Access point redundancy" }, - "vlanTag": { + "group": { "type": "string", - "description": "VLAN tag" - }, - "vlanTagMin": { - "type": "integer", - "description": "VLAN tag Min value specified for DOT1Q connections" + "description": "Port UUID of respective primary port" }, - "vlanTagMax": { - "type": "integer", - "description": "VLAN tag Max value specified for DOT1Q connections" + "priority": { + "$ref": "#/components/schemas/PortPriority" } }, - "description": "Connection link protocol configuration - DOT1Q" + "description": "Port redundancy configuration" }, - "LinkProtocolQinq": { - "required": [ - "innerTagProtocolId", - "outerTagProtocolId", - "vlanCTag", - "vlanSTag" - ], + "PortEncapsulation": { "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/LinkProtocolType" - }, - "innerTagProtocolId": { - "type": "integer", - "description": "Inner tag protocol identifier" - }, - "outerTagProtocolId": { - "type": "integer", - "description": "Outer tag protocol identifier" - }, - "vlanCTag": { - "type": "integer", - "description": "Inner tag, i.e., C-VLAN tag" - }, - "vlanSTag": { - "type": "integer", - "description": "Outer tag, i.e., S-VLAN tag" - }, - "vlanCTagMin": { - "type": "integer", - "description": "Outer tag Min value specified for QINQ connections" - }, - "vlanCTagMax": { - "type": "integer", - "description": "Outer tag Max value specified for QINQ connections" + "type": "string", + "description": "Port encapsulation protocol type", + "enum": [ + "NULL", + "DOT1Q", + "QINQ", + "UNTAGGED" + ] }, - "subInterface": { - "type": "integer", - "description": "Subinterface identifier" + "tagProtocolId": { + "type": "string", + "description": "Port encapsulation tag protocol identifier" } }, - "description": "Connection link protocol configuration - QINQ" + "description": "Port encapsulation configuration" }, - "LinkProtocolEvpnVxlan": { - "required": [ - "type5vni", - "vnid" - ], + "PortLag": { "type": "object", "properties": { - "type": { - "$ref": "#/components/schemas/LinkProtocolType" + "id": { + "type": "string", + "description": "id" }, - "vnid": { - "maximum": 40000, - "minimum": 20001, - "type": "integer", - "description": "Virtual Network Identifier" + "enabled": { + "type": "boolean", + "description": "enabled" }, - "type5vni": { - "type": "integer", - "description": "Type 5 VNI identifier" + "name": { + "type": "string", + "description": "name" + }, + "memberStatus": { + "type": "string", + "description": "member status" } }, - "description": "Connection link protocol configuration - EVPN_VXLAN" + "description": "Port Lag" }, - "LinkProtocolIpv4Ipv6Config": { + "PortSettings": { "type": "object", "properties": { - "linkPrefix": { + "product": { "type": "string", - "description": "Link subnet prefix" + "description": "Product name" }, - "localIfaceIp": { + "buyout": { + "type": "boolean" + }, + "viewPortPermission": { + "type": "boolean" + }, + "placeVcOrderPermission": { + "type": "boolean" + }, + "layer3Enabled": { + "type": "boolean" + }, + "productCode": { + "type": "string" + }, + "sharedPortType": { + "type": "boolean" + }, + "sharedPortProduct": { "type": "string", - "description": "Prefix datatype when linkPrefix not specified" + "enum": [ + "NETWORK_EDGE", + "VIRTUAL_GATEWAY", + "SMARTKEY", + "EDGE_METAL" + ] }, - "remoteIfaceIp": { + "packageType": { "type": "string", - "description": "Equinix-side link interface address" + "description": "Type of Port Package", + "enum": [ + "STANDARD", + "UNTAGGED", + "UNLIMITED", + "FREE" + ] } }, - "description": "IPv4 or IPv6 specific configuration" + "description": "Port configuration settings" }, - "PriceError_additionalInfo": { + "PortNotification": { + "required": [ + "registeredUsers", + "type" + ], "type": "object", "properties": { - "property": { - "type": "string" - }, - "reason": { - "type": "string" - } - } - }, - "ValidateSubnetRequest_filter_and": { - "properties": { - "property": { - "type": "string", - "description": "Path to property" - }, - "operator": { + "type": { "type": "string", - "description": "Type of operation" + "description": "Notification Type", + "enum": [ + "NOTIFICATION", + "TECHNICAL", + "PEERING", + "ESCALATION" + ] }, - "values": { + "registeredUsers": { "type": "array", - "description": "Values for the given property", + "description": "Array of registered users", "items": { "type": "string" } } } }, - "ValidateSubnetRequest_filter": { + "PortAdditionalInfo": { "type": "object", "properties": { - "and": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValidateSubnetRequest_filter_and" - } + "key": { + "type": "string", + "description": "Key" + }, + "value": { + "type": "string", + "description": "Value" } }, - "description": "Filters" + "description": "Additional information" }, - "PortOrder_purchaseOrder": { + "PortLoa": { "type": "object", "properties": { - "number": { - "type": "string", - "description": "purchase order number" - }, - "amount": { - "type": "string", - "description": "purchase order amount" - }, - "startDate": { - "type": "string", - "format": "datetime" - }, - "endDate": { + "uuid": { "type": "string", - "format": "datetime" + "description": "uuid" }, - "attachmentId": { + "href": { "type": "string", - "format": "uuid" + "description": "Loa uri.", + "format": "uri", + "readOnly": true }, - "selectionType": { + "type": { "type": "string", + "description": "Loa type", "enum": [ - "EXEMPTION", - "EXISTING", - "NEW", - "BLANKET" + "CTR_LOA" ] } }, - "description": "purchase order" + "description": "Port Loas" }, - "PortOrder_signature_delegate": { + "PhysicalPortType": { + "type": "string", + "description": "Type of Port", + "enum": [ + "XF_PHYSICAL_PORT" + ] + }, + "PortTether": { "type": "object", "properties": { - "firstName": { + "crossConnectId": { "type": "string", - "description": "name of delegate" + "description": "Port cross connect identifier" }, - "lastName": { + "cabinetNumber": { "type": "string", - "description": "last Name of delegate" + "description": "Port cabinet number" }, - "email": { + "systemName": { "type": "string", - "description": "email of delegate" - } + "description": "Port system name" + }, + "patchPanel": { + "type": "string", + "description": "Port patch panel" + }, + "patchPanelPortA": { + "type": "string", + "description": "Port patch panel port A" + }, + "patchPanelPortB": { + "type": "string", + "description": "Port patch panel port B" + }, + "ibx": { + "type": "string", + "description": "z-side/Equinix IBX" + } }, - "description": "delegate oder details" + "description": "Port physical connection" }, - "PortOrder_signature": { + "LinkProtocolResponse": { "type": "object", "properties": { - "signatory": { + "uuid": { "type": "string", - "description": "Port signature Type", - "enum": [ - "DELEGATE", - "SELF", - "ACCOUNT_SUPPORT" - ] + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "delegate": { - "$ref": "#/components/schemas/PortOrder_signature_delegate" + "state": { + "$ref": "#/components/schemas/LinkProtocolState" + }, + "type": { + "$ref": "#/components/schemas/LinkProtocolRequestType" + }, + "vlanTag": { + "type": "integer", + "example": 20 + }, + "vlanTagMin": { + "type": "integer", + "example": 20 + }, + "vlanTagMax": { + "type": "integer", + "example": 200 + }, + "vlanSTag": { + "type": "integer", + "example": 20 + }, + "vlanCTag": { + "type": "integer", + "example": 20 + }, + "vlanCTagMin": { + "type": "integer", + "example": 20 + }, + "vlanCTagMax": { + "type": "integer", + "example": 200 + }, + "subInterface": { + "$ref": "#/components/schemas/SubInterface" + }, + "additionalInfo": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdditionalInfo" + } + }, + "connection": { + "$ref": "#/components/schemas/LinkProtocolConnection" + }, + "serviceToken": { + "$ref": "#/components/schemas/LinkProtocolServiceToken" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" } }, - "description": "Port signature Type" + "description": "Link Protocol response" }, - "RouteTableEntry_connection": { + "PortSortDirection": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "PortSortBy": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/device/name", + "enum": [ + "/device/name" + ] + }, + "RouteFilterState": { + "type": "string", + "description": "Route Filter status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteFiltersChange": { + "required": [ + "type", + "uuid" + ], "type": "object", "properties": { "uuid": { "type": "string", - "example": "81331c52-04c0-4656-a4a7-18c52669348f" + "description": "Uniquely identifies a change" }, - "name": { + "type": { "type": "string", - "example": "connection_1" - } - } - }, - "VirtualConnectionPriceASide_accessPoint_port_settings": { - "type": "object", - "properties": { - "buyout": { - "type": "boolean", - "default": false + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_UPDATE", + "BGP_IPv4_PREFIX_FILTER_CREATION", + "BGP_IPv4_PREFIX_FILTER_DELETION", + "BGP_IPv6_PREFIX_FILTER_UPDATE", + "BGP_IPv6_PREFIX_FILTER_CREATION", + "BGP_IPv6_PREFIX_FILTER_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Filter Change URI", + "format": "uri" } - } + }, + "description": "Current state of latest Route Filter change" }, - "VirtualConnectionPriceASide_accessPoint_port": { + "RouteFiltersChangeOperation": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "settings": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port_settings" + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "add", + "replace", + "remove" + ] + }, + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/" + }, + "value": { + "$ref": "#/components/schemas/RouteFiltersBase" } - } + }, + "description": "Route Filter change operation data" }, - "VirtualConnectionPriceASide_accessPoint": { + "RouteFilterConnectionsData": { "type": "object", "properties": { - "uuid": { + "href": { "type": "string", - "format": "uuid" + "description": "Connection URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f" }, "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" + "$ref": "#/components/schemas/ConnectionType" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "uuid": { + "type": "string", + "description": "Route Filter identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, - "port": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" + "name": { + "type": "string", + "example": "connection-1" } } }, - "VirtualConnectionPriceZSide_accessPoint_profile": { + "RouteFilterRulesChange": { + "required": [ + "type", + "uuid" + ], "type": "object", "properties": { "uuid": { "type": "string", - "format": "uuid" - } - } - }, - "VirtualConnectionPriceZSide_accessPoint_bridge_package": { - "type": "object", - "properties": { - "code": { - "$ref": "#/components/schemas/VirtualConnectionBridgePackageCode" + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv6_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Filter Change URI", + "format": "uri" } - } + }, + "description": "Current state of latest Route Filter Rule change" }, - "VirtualConnectionPriceZSide_accessPoint_bridge": { + "RouteFilterChangePrefixMatch": { + "required": [ + "op", + "path", + "value" + ], "type": "object", "properties": { - "package": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge_package" + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/prefixMatch" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" } - } + }, + "description": "Route Filter Rule change operation data" }, - "VirtualConnectionPriceZSide_accessPoint": { + "RouteFilterRulesChangeOperation": { + "required": [ + "action", + "name", + "prefix", + "type" + ], "type": "object", "properties": { - "uuid": { + "name": { "type": "string", - "format": "uuid" + "description": "name of route filter rule", + "example": "Private-subnet-filter" }, - "type": { - "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" + "description": { + "type": "string", + "description": "cust provided description" }, - "location": { - "$ref": "#/components/schemas/PriceLocation" + "type": { + "type": "string", + "description": "type of filter rule", + "enum": [ + "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "BGP_IPv6_PREFIX_FILTER_RULE_UPDATE", + "BGP_IPv6_PREFIX_FILTER_RULE_CREATION", + "BGP_IPv6_PREFIX_FILTER_RULE_DELETION" + ] }, - "port": { - "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" + "prefix": { + "type": "string", + "description": "given prefix (does not change)" }, - "profile": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_profile" - }, - "bridge": { - "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge" - } - } - } - }, - "examples": { - "400": { - "value": [ - { - "errorCode": "EQ-3142102", - "errorMessage": "Connection has duplicate buyer-side VLAN ID for port or the same VLAN ID is in the process of being deleted and should be freed up soon", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/linkProtocol" - } + "action": { + "type": "string", + "description": "change to be made", + "enum": [ + "PERMIT", + "DENY" ] + } + }, + "description": "Route Filter change operation data" + }, + "SimplifiedLocationWithoutIBX": { + "required": [ + "metroCode" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The Canonical URL at which the resource resides." }, - { - "errorCode": "EQ-3142535", - "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", - "details": "Please enter bandwidth less than the Speed limit on ServiceToken", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/serviceToken/uuid" - } - ] + "region": { + "type": "string", + "example": "AMER, APAC, EMEA" }, - { - "errorCode": "EQ-3142536", - "errorMessage": "Remote connection cannot be created with the provided ServiceToken", - "details": "Only local Connection can be created using this ServiceToken", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/port/uuid" - } - ] + "metroName": { + "type": "string", + "example": "Amsterdam" }, - { - "errorCode": "EQ-3142701", - "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", - "details": "not an authorized user", - "correlationId": "test" + "metroCode": { + "type": "string", + "example": "AM" + } + } + }, + "CloudRouterPackageType": { + "required": [ + "code" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Fabric Cloud Router URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routerPackages/LAB" }, - { - "errorCode": "EQ-3142501", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "aSide/accessPoint/port/uuid" - } + "type": { + "type": "string", + "description": "Cloud Router package type", + "example": "ROUTER_PACKAGE", + "enum": [ + "ROUTER_PACKAGE" ] }, - { - "errorCode": "EQ-3142509", - "errorMessage": "Connection already deleted", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "uuid" - } + "code": { + "type": "string", + "description": "Cloud Router package code", + "example": "LAB", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] + } + }, + "description": "Fabric Cloud Router Package Type" + }, + "CloudRouterAccessPointState": { + "type": "string", + "description": "Access point lifecycle state", + "enum": [ + "PROVISIONED", + "PROVISIONING", + "DEPROVISIONING", + "DEPROVISIONED", + "LOCKED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "CloudRouterChange": { + "required": [ + "type", + "updatedDateTime" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" }, - { - "errorCode": "EQ-3142510", - "errorMessage": "Connection is in transient state", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "uuid" - } + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "ROUTER_UPDATE", + "ROUTER_PACKAGE_UPDATE" ] }, - { - "errorCode": "EQ-3142221", - "errorMessage": "The primary and secondary token provided have different bandwidth tiers. Please use two tokens that support the same bandwidth tiers", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } + "status": { + "type": "string", + "description": "Current outcome of the change flow", + "enum": [ + "COMPLETED", + "FAILED", + "REQUESTED" ] }, - { - "errorCode": "EQ-3142222", - "errorMessage": "The primary and secondary tokens have different encapsulation types (Dot1Q or QinQ). Please use two tokens that support the same encapsulation type", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "createdDateTime": { + "type": "string", + "description": "Set when change flow starts", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - { - "errorCode": "EQ-3142223", - "errorMessage": "The primary and secondary tokens belong to different projects. Please use two tokens that belong to the same project", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "updatedDateTime": { + "type": "string", + "description": "Set when change object is updated", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" }, - { - "errorCode": "EQ-3142224", - "errorMessage": "The primary and secondary ports have different port speeds (bandwidth). Please use two tokens that support the same port speed", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } - ] + "information": { + "type": "string", + "description": "Additional information" }, - { - "errorCode": "EQ-3142225", - "errorMessage": "The primary and secondary tokens provided are the same. Please provide a different token", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/serviceToken/uuid" - } + "data": { + "$ref": "#/components/schemas/CloudRouterChangeOperation" + } + }, + "description": "Current state of latest CloudRouter change" + }, + "CloudRouterChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" ] }, - { - "errorCode": "EQ-3142514", - "errorMessage": "Redundancy group is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/group" - } - ] + "path": { + "type": "string", + "description": "path inside document leading to updated parameter" }, - { - "errorCode": "EQ-3142515", - "errorMessage": "Redundancy priority is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] - }, - { - "errorCode": "EQ-3142516", - "errorMessage": "Invalid redundancy group", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/group" - } - ] - }, - { - "errorCode": "EQ-3142517", - "errorMessage": "Invalid redundancy priority", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Fabric Cloud Router change operation data" + }, + "CloudRouterActionType": { + "type": "string", + "description": "Cloud Router action type", + "enum": [ + "BGP_SESSION_STATUS_UPDATE", + "ROUTE_TABLE_ENTRY_UPDATE" + ] + }, + "RouteTableEntry": { + "required": [ + "changeLog", + "state", + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/RouteTableEntryType" }, - { - "errorCode": "EQ-3142303", - "errorMessage": "Only Primary connection allowed for this CSP", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/redundancy/priority" - } - ] + "protocolType": { + "$ref": "#/components/schemas/RouteTableEntryProtocolType" }, - { - "errorCode": "EQ-3142320", - "errorMessage": "For redundant connection, Service Profile should be the same", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/profile/uuid" - } - ] + "state": { + "$ref": "#/components/schemas/RouteTableEntryState" }, - { - "errorCode": "EQ-3142021", - "errorMessage": "For redundant connection, Fabric Cloud Router should be the same", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "age": { + "type": "string", + "example": "PT5M30S" }, - { - "errorCode": "EQ-3142012", - "errorMessage": "Fabric Cloud Router is not in PROVISIONED state", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "prefix": { + "type": "string", + "example": "192.168.10.0/24" }, - { - "errorCode": "EQ-3142301", - "errorMessage": "Given profile does not exist", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/profile/uuid" - } - ] + "nextHop": { + "type": "string", + "example": "10.10.10.5" }, - { - "errorCode": "EQ-3142302", - "errorMessage": "Service provider does not exist in required zSide metro", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/location/metroCode" - } - ] + "metric": { + "type": "integer", + "example": 5 }, - { - "errorCode": "EQ-3142013", - "errorMessage": "Invalid metro for Cloud Router connection", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/aSide/accessPoint/router/uuid" - } - ] + "localPreference": { + "type": "integer", + "example": 200 }, - { - "errorCode": "EQ-3142304", - "errorMessage": "Private connections are not allowed on public profiles", - "correlationId": "test", - "additionalInfo": [ - { - "property": "visibility" - } - ] + "asPath": { + "type": "array", + "items": { + "type": "integer" + } }, - { - "errorCode": "EQ-3142306", - "errorMessage": "Requested bandwidth is not supported by service profile", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/bandwidth" - } - ] + "connection": { + "$ref": "#/components/schemas/RouteTableEntry_connection" }, - { - "errorCode": "EQ-3142308", - "errorMessage": "Authentication key is required", - "correlationId": "test", - "additionalInfo": [ - { - "property": "/zSide/accessPoint/authenticationKey" - } - ] + "changeLog": { + "$ref": "#/components/schemas/Changelog" } + }, + "description": "Route table entry object" + }, + "code": { + "type": "string", + "description": "Cloud Router package code", + "example": "LAB", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" ] }, - "401": { - "value": [ - { - "errorCode": "EQ-3000039", - "errorMessage": "User not found in request or invalid.", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515" + "PackageChangeLog": { + "type": "object", + "properties": { + "createdDateTime": { + "type": "string", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" + }, + "updatedDateTime": { + "type": "string", + "format": "date-time", + "example": "2020-11-06T07:00:00Z" } - ] + }, + "description": "Cloud Router package change log" }, - "403": { - "value": [ - { - "errorCode": "EQ-3142402", - "errorMessage": "Do not have create connection permission on this port", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + "ApiServices": { + "type": "object", + "properties": { + "route": { + "type": "string", + "description": "service routes" + }, + "status": { + "type": "string", + "description": "service status" + }, + "changedDateTime": { + "type": "string", + "description": "service status change date" } + }, + "description": "Available services details" + }, + "NetworkType": { + "type": "string", + "description": "Network type", + "enum": [ + "EVPLAN", + "EPLAN", + "IPWAN" ] }, - "404": { - "value": [ - { - "errorCode": "EQ-3000036", - "errorMessage": "Requested path doesn't exists", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" - } + "NetworkScope": { + "type": "string", + "description": "Network scope", + "enum": [ + "REGIONAL", + "GLOBAL" ] }, - "405": { - "value": [ - { - "errorCode": "EQ-3142569", - "errorMessage": "Method not supported, Please check the URL passed", - "details": "Method:PATCH", - "correlationId": "f48687b0-d088-46d1-b06c-00c0688fbca9" - } + "NetworkState": { + "type": "string", + "description": "Network status", + "example": "ACTIVE", + "enum": [ + "ACTIVE", + "INACTIVE", + "DELETED" ] }, - "415": { - "value": [ - { - "errorCode": "EQ-3040016", - "errorMessage": "Unsupported media type, please check the request's Content-Type or Content-Encoding", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", - "additionalInfo": [ - { - "property": "contentType", - "reason": "The payload format is in an unsupported format" - } - ] + "SimplifiedNetworkChange": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/2a4fb415-5a7f-436f-bae6-02f5e403deec/changes/4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "uuid": { + "type": "string", + "description": "Uniquely identifies a change", + "format": "uuid", + "example": "4b17da68-3d6b-436d-9c8f-2105f3b950d9" + }, + "type": { + "$ref": "#/components/schemas/NetworkChangeType" } - ] + }, + "description": "Current state of latest network change" }, - "500": { - "value": [ - { - "errorCode": "EQ-3034003", - "errorMessage": "Method not supported,Please check the URL passed", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "additionalInfo": [ - { - "reason": "method:PATCH" - } - ] + "NetworkOperation": { + "type": "object", + "properties": { + "equinixStatus": { + "$ref": "#/components/schemas/NetworkEquinixStatus" } - ] + }, + "description": "Network operational data" }, - "COLO2COLOwithDot1q-Dot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "Link": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Resource URI", + "format": "uri", + "readOnly": true }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a8ba52de-faae-43b5-b0b1-6904d37ee063" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "rel": { + "type": "string", + "description": "OperationId from Swagger hub spec" }, - "order": { - "purchaseOrderNumber": "po1234" + "method": { + "type": "string", + "description": "Http method type" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "contentType": { + "type": "string", + "description": "Content type for the response" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "authenticate": { + "type": "boolean", + "description": "Authentication required or not" + } } }, - "COLO2COLOwithDot1q-Dot1q-CRH": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "NetworkChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "enum": [ + "replace", + "add", + "remove" + ] }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a867f685-41b0-1b07-6de0-320a5c00abdd" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "path": { + "type": "string", + "description": "path inside document leading to updated parameter", + "example": "/name" }, - "order": { - "purchaseOrderNumber": "po1234" + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Network change operation data" + }, + "NetworkSortCriteriaResponse": { + "type": "object", + "properties": { + "direction": { + "$ref": "#/components/schemas/NetworkSortDirectionResponse" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "b067f685-49b0-1a09-6fe0-360a5d00afdg" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "property": { + "$ref": "#/components/schemas/NetworkSortByResponse" + } + } + }, + "NetworkChangeType": { + "type": "string", + "description": "Type of change", + "enum": [ + "NETWORK_CREATION", + "NETWORK_UPDATE", + "NETWORK_DELETION" + ] + }, + "NetworkChangeStatus": { + "type": "string", + "description": "Current outcome of the change flow", + "enum": [ + "APPROVED", + "COMPLETED", + "FAILED", + "REJECTED", + "REQUESTED", + "SUBMITTED_FOR_APPROVAL" + ] + }, + "fabricConnectionUuid": { + "title": "fabricConnectionUuid", + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "uuid of the Fabric L2 connection", + "format": "uuid" }, - "project": { - "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + "href": { + "type": "string", + "description": "the href for the L2 connection", + "format": "uri" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "type": { + "type": "string" + } + }, + "description": "UUID of the Fabric Connection Instance", + "example": { + "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" } }, - "COLO2COLOwithDot1Q-QinQ": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "ipv4": { + "title": "ipv4", + "type": "object", + "properties": { + "primary": { + "type": "string", + "format": "ipv4" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "secondary": { + "type": "string", + "format": "ipv4" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1002 - } - } + "networkMask": { + "type": "string", + "format": "ipv4" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "defaultGateway": { + "type": "string", + "format": "ipv4" + } + }, + "description": "EPT service network information", + "example": { + "primary": "10.0.0.1", + "secondary": "10.0.0.2", + "networkMask": "255.255.255.240", + "defaultGateway": "10.0.0.3" } }, - "COLO2COLOwithQinq-Qinq": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001 - } - } + "account": { + "required": [ + "accountNumber" + ], + "type": "object", + "properties": { + "accountNumber": { + "type": "integer" }, - "order": { - "purchaseOrderNumber": "po1234" + "isResellerAccount": { + "type": "boolean" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001 - } - } + "orgId": { + "type": "string" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "globalOrgId": { + "type": "string" + } + }, + "description": "Account model, includes account number and flag to indicate if this account is reseller", + "example": { + "accountNumber": 123456 } }, - "COLO2COLOwithQinq-Dot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1125 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "advanceConfiguration": { + "type": "object", + "properties": { + "ntp": { + "$ref": "#/components/schemas/ntpAdvanceConfiguration" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ptp": { + "$ref": "#/components/schemas/ptpAdvanceConfiguration" + } + }, + "description": "Advance Configuration for NTP/PTP" + }, + "packageRequest": { + "title": "package", + "required": [ + "code" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "code": { + "type": "string", + "enum": [ + "NTP_STANDARD", + "NTP_ENTERPRISE", + "PTP_STANDARD", + "PTP_ENTERPRISE" + ] + } + }, + "description": "EPT Package Request", + "example": { + "code": "NTP_STANDARD" } }, - "COLO2COLO-AsReseller": { - "value": { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" + "ConnectionPriority": { + "type": "string", + "description": "Connection priority in redundancy group", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + }, + "AccessPoint": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/AccessPointType" }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1002, - "vlanCTag": 1001 - } - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2COLO-EPL": { - "value": { - "type": "EPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" + "port": { + "$ref": "#/components/schemas/SimplifiedPort" }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - } + "profile": { + "$ref": "#/components/schemas/SimplifiedServiceProfile" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2COLO-AccessEpl": { - "value": { - "type": "ACCESS_EPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1234 - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - } - } + "router": { + "$ref": "#/components/schemas/CloudRouter" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "COLO2SPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "linkProtocol": { + "$ref": "#/components/schemas/SimplifiedLinkProtocol" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "virtualDevice": { + "$ref": "#/components/schemas/VirtualDevice" }, - "order": { - "purchaseOrderNumber": "po1234" + "interface": { + "$ref": "#/components/schemas/Interface" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - } - } + "network": { + "$ref": "#/components/schemas/SimplifiedNetwork" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } - }, - "COLO2AlibabaSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "sellerRegion": { + "type": "string", + "description": "Access point seller region" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "peeringType": { + "$ref": "#/components/schemas/PeeringType" }, - "order": { - "purchaseOrderNumber": "po1234" + "authenticationKey": { + "type": "string", + "description": "Access point authentication key" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "SV" - }, - "sellerRegion": "San Jose 2", - "authenticationKey": "xxx-xxx-xxx" - } + "providerConnectionId": { + "type": "string", + "description": "Provider assigned Connection Id" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "virtualNetwork": { + "$ref": "#/components/schemas/VirtualNetwork" + } + }, + "description": "Access point object" }, - "COLO2AWSSPwithDot1q-Primary": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Aws", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "ConnectionCompanyProfile": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "company profile identifier", + "example": 1 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-east-1", - "authenticationKey": "xxx-xxx-xxx" - } + "name": { + "type": "string", + "description": "company profile name", + "example": "Company-1" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "globalOrgId": { + "type": "string", + "description": "global customer organization value" + } + }, + "description": "Connection Company Profile Details" }, - "COLO2AWSSPwithDot1q-Secondary": { - "value": { - "type": "EVPL_VC", - "name": "Secondary-Aws", - "bandwidth": 1000, - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ConnectionInvitation": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "invitee email", + "example": "test@equinix.com" }, - "order": { - "purchaseOrderNumber": "po1234" + "message": { + "type": "string", + "description": "invitation message", + "example": "Hello, Please accept my invitation" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-east-1", - "authenticationKey": "xxx-xxx-xxx" - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] + "ctrDraftOrderId": { + "type": "string", + "description": "draft order id for invitation" + } + }, + "description": "Connection Invitation Details" + }, + "ProviderStatus": { + "type": "string", + "description": "Connection provider readiness status", + "enum": [ + "AVAILABLE", + "DEPROVISIONED", + "DEPROVISIONING", + "FAILED", + "NOT_AVAILABLE", + "PENDING_APPROVAL", + "PROVISIONED", + "PROVISIONING", + "REJECTED", + "PENDING_BGP", + "OUT_OF_BANDWIDTH", + "DELETED", + "ERROR", + "ERRORED", + "NOTPROVISIONED", + "NOT_PROVISIONED", + "ORDERING", + "DELETING", + "PENDING DELETE", + "N/A" + ] + }, + "EquinixStatus": { + "type": "string", + "description": "Connection status", + "enum": [ + "REJECTED_ACK", + "REJECTED", + "PENDING_DELETE", + "PROVISIONED", + "BEING_REPROVISIONED", + "BEING_DEPROVISIONED", + "BEING_PROVISIONED", + "CREATED", + "ERRORED", + "PENDING_DEPROVISIONING", + "APPROVED", + "ORDERING", + "PENDING_APPROVAL", + "NOT_PROVISIONED", + "DEPROVISIONING", + "NOT_DEPROVISIONED", + "PENDING_AUTO_APPROVAL", + "PROVISIONING", + "PENDING_BGP_PEERING", + "PENDING_PROVIDER_VLAN", + "DEPROVISIONED", + "DELETED", + "PENDING_BANDWIDTH_APPROVAL", + "AUTO_APPROVAL_FAILED", + "UPDATE_PENDING", + "DELETED_API", + "MODIFIED", + "PENDING_PROVIDER_VLAN_ERROR", + "DRAFT", + "CANCELLED", + "PENDING_INTERFACE_CONFIGURATION" + ] + }, + "RoutingProtocolOperation": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Error" } - ] + } } }, - "COLO2AzureSPwithDot1q-Primary": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Azure", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "ProductType": { + "type": "string", + "description": "Product type", + "enum": [ + "VIRTUAL_CONNECTION_PRODUCT", + "IP_BLOCK_PRODUCT", + "VIRTUAL_PORT_PRODUCT", + "CLOUD_ROUTER_PRODUCT" + ] + }, + "PriceCharge": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Price charge type", + "enum": [ + "MONTHLY_RECURRING", + "NON_RECURRING" + ] }, - "order": { - "purchaseOrderNumber": "po1234" + "price": { + "minimum": 0, + "type": "number", + "description": "Offering price", + "format": "double" + } + }, + "description": "Price Charge" + }, + "PriceCategory": { + "type": "string", + "description": "Price category", + "enum": [ + "COUNTRY", + "CUSTOMER" + ] + }, + "VirtualConnectionPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Either uuid or rest of attributes are required", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "linkProtocol": { - "type": "QINQ", - "vlanCTag": 1234 - }, - "peeringType": "MICROSOFT", - "authenticationKey": "xxx-xxx-xxx" - } + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceConnectionType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } - }, - "COLO2AzureSPwithQinq-Secondary": { - "value": { - "type": "EVPL_VC", - "name": "Secondary-Azure", - "bandwidth": 1000, - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "SECONDARY" + "bandwidth": { + "minimum": 0, + "type": "integer" }, "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1002 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "$ref": "#/components/schemas/VirtualConnectionPriceASide" }, "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx" - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "$ref": "#/components/schemas/VirtualConnectionPriceZSide" + } + }, + "description": "Virtual Connection Product configuration" }, - "COLO2GoogleSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "IpBlockPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Either uuid or rest of attributes are required", + "format": "uuid" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" + "type": { + "$ref": "#/components/schemas/IpBlockType" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x" - } + "prefixLength": { + "type": "integer" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "location": { + "$ref": "#/components/schemas/PriceLocation" + } + }, + "description": "IP Block Product configuration" }, - "COLO2IBM_1": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "FabricCloudRouterPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique identifier assigned to the Cloud Router", + "format": "uuid" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "order": { - "purchaseOrderNumber": "po1234" + "package": { + "$ref": "#/components/schemas/FabricCloudRouterPackages" + } + }, + "description": "Cloud Router Product configuration" + }, + "VirtualPortPrice": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique identifier assigned to the virtual port. Either the uuid or the remaining attributes must be supplied.", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx", - "sellerRegion": "San Jose 2" - } + "type": { + "$ref": "#/components/schemas/VirtualPortType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ], - "additionalInfo": [ - { - "key": "ASN", - "value": 1234 - }, - { - "key": "Global", - "value": false - } - ] - } - }, - "COLO2IBM_2": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "location": { + "$ref": "#/components/schemas/VirtualPortLocation" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "lag": { + "$ref": "#/components/schemas/LinkAggregationGroup" }, - "order": { - "purchaseOrderNumber": "po1234" + "physicalPortsQuantity": { + "type": "integer", + "description": "Number of physical ports requested. The defaults is 1.", + "default": 1 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "authenticationKey": "xxx-xxx-xxx", - "sellerRegion": "San Jose 2" - } + "bandwidth": { + "type": "integer", + "description": "Aggregated data transfer capacity, expressed as follows
-> Mbps, megabits (1 million bits) per second
-> Gbps, gigabits (1 billion bits) per second
Bandwidth must be divisible by physicalPortsQuantity." }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ], - "additionalInfo": [ - { - "key": "ASN", - "value": 1234 - }, - { - "key": "Global", - "value": false - }, - { - "key": "BGP_IBM_CIDR", - "value": "172.16.0.18/30" - }, - { - "key": "BGP_CER_CIDR", - "value": "172.16.0.19/30" - } - ] - } - }, - "COLO2OracleSPwithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "$ref": "#/components/schemas/VirtualPortRedundancy" }, - "order": { - "purchaseOrderNumber": "po1234" + "connectivitySource": { + "$ref": "#/components/schemas/ConnectivitySource" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-ashburn-1", - "authenticationKey": "xxx-xxx-xxx" - } + "serviceType": { + "$ref": "#/components/schemas/VirtualPortServiceType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] + "settings": { + "$ref": "#/components/schemas/VirtualPortConfiguration" + } + }, + "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." + }, + "ServiceTokenSide": { + "type": "object", + "properties": { + "accessPointSelectors": { + "type": "array", + "description": "List of AccessPointSelectors", + "items": { + "$ref": "#/components/schemas/AccessPointSelector" } - ] - } + } + }, + "description": "Connection link protocol configuration" }, - "COLO2ServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "m167f685-41b0-1b07-6de0-320a5c00abeu", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "serviceToken": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - } + "PortDeviceRedundancy": { + "type": "object", + "properties": { + "group": { + "type": "string", + "description": "Device redundancy group" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "priority": { + "type": "string", + "description": "Device redundancy priority", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + } + }, + "description": "Device redundancy" }, - "COLO2NETWORKwithDot1q": { - "value": { - "type": "EVPLAN_VC", - "name": "MY-EVPLAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } - }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "PortPriority": { + "type": "string", + "description": "Port priority in redundancy group", + "enum": [ + "PRIMARY", + "SECONDARY" + ] + }, + "LinkProtocolState": { + "type": "string", + "description": "Network status", + "enum": [ + "RESERVED", + "RELEASED" + ] + }, + "LinkProtocolRequestType": { + "type": "string", + "description": "Type of Link Protocol", + "enum": [ + "UNTAGGED", + "DOT1Q", + "QINQ", + "EVPN_VXLAN", + "UNTAGGEDEPL" + ] + }, + "SubInterface": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "type of connection vlan", + "enum": [ + "VNI", + "VXLAN", + "VLAN" + ] }, - "project": { - "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + "name": { + "type": "string", + "description": "name of subinterafce of a port" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "unit": { + "type": "integer", + "example": 200 + } + }, + "description": "Sub Interface information" }, - "COLO2NETWORKwithEPL": { - "value": { - "type": "EPLAN_VC", - "name": "MY-EPLAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" - } - } + "AdditionalInfo": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key" }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } + "value": { + "type": "string", + "description": "Value" + } + }, + "description": "Additional information" + }, + "LinkProtocolConnection": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Connection URI", + "format": "uri", + "readOnly": true }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "uuid": { + "type": "string", + "format": "string", + "example": "cd67f685-41b0-1b07-6de0-320a5c00abe" }, - "project": { - "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + "type": { + "type": "string", + "example": "EVPL_VC" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "bandwidth": { + "type": "integer", + "format": "int64", + "example": 100 + } + }, + "description": "Connection details of Link Protocol" }, - "Vd2Sp-Primary": { - "value": { - "type": "EVPL_VC", - "bandwidth": 50, - "name": "Network Device to SP", - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "LinkProtocolServiceToken": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Service Token URI", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west-1" - } + "uuid": { + "type": "string", + "format": "uuid", + "example": "cd67f685-41b0-1b07-6de0-0320a5c00abe" }, - "order": { - "purchaseOrderNumber": "1-323292" + "type": { + "type": "string", + "example": "TOKEN" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] + "bandwidth": { + "type": "integer", + "format": "int64", + "example": 1000 + } + }, + "description": "Service Token details of Link Protocol" + }, + "RouteTableEntryType": { + "type": "string", + "description": "Route table entry type", + "enum": [ + "IPv4_BGP_ROUTE", + "IPv4_STATIC_ROUTE", + "IPv4_DIRECT_ROUTE", + "IPv6_BGP_ROUTE", + "IPv6_STATIC_ROUTE", + "IPv6_DIRECT_ROUTE" + ] + }, + "RouteTableEntryProtocolType": { + "type": "string", + "description": "Route table entry protocol type", + "enum": [ + "BGP", + "STATIC", + "DIRECT" + ] + }, + "RouteTableEntryState": { + "type": "string", + "description": "Route table entry state", + "enum": [ + "ACTIVE" + ] + }, + "NetworkEquinixStatus": { + "type": "string", + "description": "Network status", + "enum": [ + "PROVISIONING", + "PROVISIONED", + "NOT_PROVISIONED", + "DEPROVISIONING", + "DEPROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "NetworkSortDirectionResponse": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + }, + "NetworkSortByResponse": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/name", + "/type", + "/uuid", + "/state", + "/scope", + "/location/region", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" + ] + }, + "ntpAdvanceConfiguration": { + "type": "array", + "items": { + "$ref": "#/components/schemas/md5" } }, - "Vd2Sp-Secondary": { - "value": { - "type": "EVPL_VC", - "bandwidth": 50, - "name": "Network Device to SP", - "redundancy": { - "group": "777ca05d-4ae7-4ee9-9456-3ca49500428c", - "priority": "SECONDARY" + "ptpAdvanceConfiguration": { + "type": "object", + "properties": { + "timeScale": { + "type": "string", + "description": "Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol.", + "example": "ARB", + "enum": [ + "ARB", + "PTP" + ] }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "domain": { + "maximum": 127, + "minimum": 0, + "type": "integer", + "example": 0 }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west-1" - } + "priority1": { + "maximum": 248, + "minimum": 0, + "type": "integer", + "example": 0 }, - "order": { - "purchaseOrderNumber": "1-323292" + "priority2": { + "maximum": 248, + "minimum": 0, + "type": "integer", + "example": 0 }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2Colo": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "logAnnounceInterval": { + "type": "integer", + "description": "The mean time interval between Announce messages. A shorter interval makes ptp4l react faster to the changes in the master-slave hierarchy. The interval should be the same in the whole domain. It's specified as a power of two in seconds. The default is 1 (2 seconds).", + "example": 0 }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } + "logSyncInterval": { + "type": "integer", + "description": "The mean time interval between Sync messages. A shorter interval may improve accuracy of the local clock. It's specified as a power of two in seconds. The default is 0 (1 second).", + "example": 0 }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "logDelayReqInterval": { + "type": "integer", + "example": 0 }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] + "transportMode": { + "type": "string", + "enum": [ + "Multicast", + "Unicast", + "Hybrid" + ] + }, + "grantTime": { + "maximum": 7200, + "minimum": 30, + "type": "integer", + "description": "Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200.", + "example": 300 + } } }, - "Vd2ColoVlanTag": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "AccessPointType": { + "type": "string", + "description": "Access point type", + "enum": [ + "VD", + "VG", + "SP", + "IGW", + "COLO", + "SUBNET", + "CLOUD_ROUTER", + "NETWORK", + "METAL_NETWORK" + ] + }, + "SimplifiedPort": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/PortType" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTagMin": 300, - "vlanTagMax": 1099 - } - } + "id": { + "type": "integer", + "description": "Equinix assigned response attribute for Port Id" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "href": { + "type": "string", + "description": "Equinix assigned response attribute for an absolute URL that is the subject of the link's context.", + "format": "uri", + "readOnly": true }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2Colo-VlanCTag": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to COLO", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "uuid": { + "type": "string", + "description": "Equinix assigned response attribute for port identifier", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 300, - "vlanCTagMin": 100, - "vlanCTagMax": 109 - } - } + "name": { + "type": "string", + "description": "Equinix assigned response attribute for Port name" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "description": { + "type": "string", + "description": "Equinix assigned response attribute for Port description" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2ColoUntagged": { - "value": { - "type": "EVPL_VC", - "bandwidth": 1000, - "name": "vd to SP", - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "physicalPortsSpeed": { + "minimum": 0, + "type": "integer", + "description": "Physical Ports Speed in Mbps" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "UNTAGGED" - } - } + "connectionsCount": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Connection count" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "project": { + "$ref": "#/components/schemas/Project" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Vd2ServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Primary-Token", - "order": { - "purchaseOrderNumber": "1-129105284100" + "state": { + "$ref": "#/components/schemas/PortState" }, - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "cvpId": { + "type": "string", + "description": "Equinix assigned response attribute for Unique ID for a virtual port." }, - "aSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "operation": { + "$ref": "#/components/schemas/PortOperation" }, - "zSide": { - "serviceToken": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Colo": { - "value": { - "type": "IP_VC", - "name": "My-FCR-Connection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "serviceType": { + "type": "string", + "description": "Port service Type", + "enum": [ + "EPL", + "MSP" + ] }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "7b6481b8-1c4a-11ec-9621-0242ac130002" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "bandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port bandwidth in Mbps" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "availableBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port available bandwidth in Mbps" }, - "project": { - "projectId": "567" + "usedBandwidth": { + "minimum": 0, + "type": "integer", + "description": "Equinix assigned response attribute for Port used bandwidth in Mbps" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Google": { - "value": { - "type": "IP_VC", - "name": "My-FCR-GCPConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "authenticationKey": "xx-xx-xx", - "sellerRegion": "us-west1", - "location": { - "metroCode": "SV" - } - } + "device": { + "$ref": "#/components/schemas/PortDevice" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "interface": { + "$ref": "#/components/schemas/PortInterface" }, - "project": { - "projectId": "567" + "tether": { + "$ref": "#/components/schemas/PortTether" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Azure": { - "value": { - "type": "IP_VC", - "name": "My-FCR-AzureConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "demarcationPoint": { + "$ref": "#/components/schemas/PortDemarcationPoint" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "authenticationKey": "xx-xx-xx", - "location": { - "metroCode": "SV" - }, - "peeringType": "PRIVATE" - } + "redundancy": { + "$ref": "#/components/schemas/PortRedundancy" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "encapsulation": { + "$ref": "#/components/schemas/PortEncapsulation" }, - "project": { - "projectId": "567" + "lagEnabled": { + "type": "boolean", + "description": "If LAG enabled" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Generic": { - "value": { - "type": "IP_VC", - "name": "My-FCR-GenericConnection", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } + "settings": { + "$ref": "#/components/schemas/PortSettings" + }, + "physicalPortQuantity": { + "type": "integer", + "description": "Number of physical ports" + }, + "additionalInfo": { + "type": "array", + "description": "Port additional information", + "items": { + "$ref": "#/components/schemas/PortAdditionalInfo" } }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } + "physicalPorts": { + "type": "array", + "description": "Physical ports that implement this port", + "items": { + "$ref": "#/components/schemas/PhysicalPort" } + } + }, + "description": "Port specification" + }, + "SimplifiedLinkProtocol": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "vlanTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanTag value specified for DOT1Q connections" }, - "project": { - "projectId": "567" + "vlanSTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanSTag value specified for QINQ connections" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "vlanCTag": { + "maximum": 4092, + "minimum": 2, + "type": "integer", + "description": "vlanCTag value specified for QINQ connections" + } + }, + "description": "Connection link protocol Configuration" }, - "Fcr2Sp-Generic-Redundant-Secondary": { - "value": { - "type": "IP_VC", - "name": "FCR_to_RedSP_Secondary", - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "VirtualDevice": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Virtual Device URI", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned Virtual Device identifier", + "format": "uuid" }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "name": { + "type": "string", + "description": "Customer-assigned Virtual Device name" }, - "project": { - "projectId": "567" + "type": { + "type": "string", + "description": "Virtual Device type", + "enum": [ + "EDGE" + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" + } + }, + "description": "Virtual Device AccessPoint Information" }, - "Fcr2Sp-Generic-Redundant-Primary": { - "value": { - "type": "IP_VC", - "name": "FCR_to_RedSP_Primary-Re-add", - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + "Interface": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Interface URI", + "format": "uri", + "readOnly": true }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned Interface identifier", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" + "id": { + "type": "integer", + "description": "Interface id" }, - "project": { - "projectId": "567" + "type": { + "type": "string", + "description": "Interface type", + "enum": [ + "CLOUD", + "NETWORK" + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "projectId": { + "type": "string", + "description": "Interface Project ID" + } + }, + "description": "Interface Information" }, - "Fcr2Sp-Aws": { - "value": { - "type": "IP_VC", - "name": "My-FCR-AWSConnection", - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "SimplifiedNetwork": { + "required": [ + "uuid" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Network URI", + "format": "uri", + "readOnly": true, + "example": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "uuid": { + "type": "string", + "description": "Equinix-assigned network identifier", + "format": "uuid", + "example": "92dc376a-a932-43aa-a6a2-c806dedbd784" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - }, - "sellerRegion": "us-west-1", - "authenticationKey": "xx-xx-xx" - } + "name": { + "type": "string", + "description": "Customer-assigned network name", + "example": "My EVPLAN Network" }, - "project": { - "projectId": "567" + "state": { + "$ref": "#/components/schemas/NetworkState" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - }, - "Fcr2Sp-Oracle": { - "value": { - "type": "IP_VC", - "name": "My-FCR-OracleConnection", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" + "account": { + "$ref": "#/components/schemas/SimplifiedAccount" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } + "change": { + "$ref": "#/components/schemas/SimplifiedNetworkChange" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "type": "L2_PROFILE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "DC" - }, - "sellerRegion": "us-ashburn-1", - "authenticationKey": "xx-xx-xx" - } + "operation": { + "$ref": "#/components/schemas/NetworkOperation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "project": { - "projectId": "567" - } - } - }, - "Fcr2Vd": { - "value": { - "type": "IP_VC", - "name": "My-GW-VDConnection", - "bandwidth": 100, - "redundancy": { - "priority": "PRIMARY" + "changeLog": { + "$ref": "#/components/schemas/Changelog" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } + "links": { + "type": "array", + "description": "Network sub-resources links", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/Link" } }, - "zSide": { - "accessPoint": { - "type": "VD", - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "type": "NETWORK", - "id": 45645 - } - } + "type": { + "$ref": "#/components/schemas/NetworkType" }, - "project": { - "projectId": "567" + "scope": { + "$ref": "#/components/schemas/NetworkScope" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "location": { + "$ref": "#/components/schemas/SimplifiedLocation" + } + }, + "description": "Network specification" }, - "Fcr2IpWan": { - "value": { - "type": "IPWAN_VC", - "name": "MY-IPWAN-CONNECTION-1", - "bandwidth": 1000, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" - } - } - }, - "zSide": { - "accessPoint": { - "type": "NETWORK", - "network": { - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" - } - } - }, - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "project": { - "projectId": 123 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } + "PeeringType": { + "type": "string", + "description": "Access point peering type", + "enum": [ + "PRIVATE", + "MICROSOFT", + "PUBLIC", + "MANUAL" + ] }, - "AsideServiceToken2PortWithDot1q": { - "value": { - "type": "EVPL_VC", - "name": "Aside-token", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } + "VirtualNetwork": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The Canonical URL at which the resource resides.", + "format": "uri", + "readOnly": true }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "location": { - "metroCode": "SV" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "uuid": { + "type": "string", + "description": "Equinix-assigned Virtual Network identifier", + "format": "uuid" + } + }, + "description": "Virtual Network Information" + }, + "VirtualConnectionPriceConnectionType": { + "type": "string", + "description": "Virtual Connection type", + "enum": [ + "EVPL_VC", + "EPL_VC", + "EC_VC", + "IP_VC", + "VD_CHAIN_VC", + "ACCESS_EPL_VC", + "EVPLAN_VC", + "EPLAN_VC", + "IPWAN_VC" + ] + }, + "VirtualConnectionPriceASide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint" + } } }, - "AsideServiceToken2PortWithQinq": { - "value": { - "type": "EVPL_VC", - "name": "Aside-Token", - "bandwidth": 1000, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "location": { - "metroCode": "SV" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1001, - "vlanCTag": 1001 - } - } - }, - "order": { - "purchaseOrderNumber": "po1234" - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "VirtualConnectionPriceZSide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint" + } } }, - "AsideServiceToken2PrivateSP-NE": { - "value": { - "type": "EVPL_VC", - "name": "Token2PrivateSP-NE", - "bandwidth": 50, - "redundancy": { - "priority": "PRIMARY" + "IpBlockType": { + "type": "string", + "description": "IP Block type", + "enum": [ + "IPv4", + "IPv6" + ] + }, + "PriceLocation": { + "type": "object", + "properties": { + "metroCode": { + "type": "string" + } + } + }, + "FabricCloudRouterPackages": { + "type": "object", + "properties": { + "code": { + "$ref": "#/components/schemas/FabricCloudRouterCode" + } + }, + "description": "Cloud Router package" + }, + "VirtualPortType": { + "type": "string", + "description": "Port type.", + "enum": [ + "XF_PORT" + ] + }, + "VirtualPortLocation": { + "type": "object", + "properties": { + "ibx": { + "type": "string", + "description": "Code assigned to the Equinix International Business Exchange (IBX) data center from which the port is ordered.
The port might be in a different location." + } + }, + "description": "Geographic data for the port." + }, + "LinkAggregationGroup": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Parameter showing whether LAG configuration is mandatory. The default is false.", + "default": false + } + }, + "description": "Link aggregation group (LAG) preferences and settings." + }, + "VirtualPortRedundancy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Parameter showing whether redundancy is mandatory. The default is false.", + "default": false + } + }, + "description": "Specifications for redundant connections, which improve service continuity by routing traffic to secondary ports when primary ports are unavailable.
Redundancy increases resilience and boosts site reliability scores." + }, + "ConnectivitySource": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/ConnectivitySourceType" + } + }, + "description": "Physical or virtual port that houses the connection." + }, + "VirtualPortServiceType": { + "type": "string", + "description": "Port service type. The default is managed-service provider (MSP).", + "default": "MSP", + "enum": [ + "MSP", + "EPL" + ] + }, + "VirtualPortConfiguration": { + "type": "object", + "properties": { + "buyout": { + "type": "boolean", + "description": "Buyout (true) or standard (false) configuration of the port at this access point.
Buyout ports offer free, unlimited connections. Standard ports do not. The default is false.", + "default": false + } + }, + "description": "Port configuration." + }, + "AccessPointSelector": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of Access point", + "enum": [ + "COLO" + ] }, - "order": { - "purchaseOrderNumber": "po1234" + "port": { + "$ref": "#/components/schemas/SimplifiedMetadataEntity" }, - "aSide": { - "serviceToken": { - "uuid": "41a9e1ef-18bb-485b-a9b3-99801ac03684" - } + "linkProtocol": { + "$ref": "#/components/schemas/LinkProtocol" + } + }, + "description": "List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability." + }, + "md5": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ASCII", + "HEX" + ] }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } + "id": { + "type": "string" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] + "password": { + "type": "string" + } } }, - "AsideServiceToken2ZsideServiceToken": { - "value": { - "type": "EVPL_VC", - "name": "Aside to zside token connection", - "bandwidth": 50, - "redundancy": { - "priority": "PRIMARY" - }, - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - } - }, - "zSide": { - "serviceToken": { - "uuid": "4f9c5438-90eb-4295-b109-7754119a1e8d" - } + "LinkProtocolType": { + "type": "string", + "description": "Type of Link Protocol", + "enum": [ + "UNTAGGED", + "DOT1Q", + "QINQ", + "EVPN_VXLAN", + "VXLAN" + ] + }, + "VirtualConnectionPriceAccessPointType": { + "type": "string", + "description": "Virtual Connection access point type", + "enum": [ + "VD", + "SP", + "COLO", + "CLOUD_ROUTER", + "CHAINGROUP", + "NETWORK" + ] + }, + "VirtualConnectionBridgePackageCode": { + "type": "string", + "description": "Virtual Connection bridge package code", + "enum": [ + "REGIONAL", + "GLOBAL" + ] + }, + "FabricCloudRouterCode": { + "type": "string", + "description": "Cloud Router code", + "enum": [ + "LAB", + "BASIC", + "STANDARD", + "PREMIUM" + ] + }, + "ConnectivitySourceType": { + "type": "string", + "description": "Type of connectivity. COLO, colocation; BMMR, building meet-me room. The default is COLO.
A building meet-me room (BMMR) is a room within the same building where an Equinix IBX customer can connect with a non-Equinix IBX customer.", + "default": "COLO", + "enum": [ + "COLO", + "BMMR", + "REMOTE" + ] + }, + "SimplifiedMetadataEntity": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "url to entity", + "format": "uri" }, - "order": { - "purchaseOrderNumber": "po1234" + "uuid": { + "type": "string", + "description": "Equinix assigned Identifier", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@test.com" - ] - } - ] - } + "type": { + "type": "string", + "description": "Type of Port" + } + }, + "description": "Configuration details for port used at the access point." }, - "ConnectionExample": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", - "type": "EVPL_VC", - "uuid": "3a58dd05-f46d-4b1d-a154-2e85c396ea62", - "name": "My-Layer2-Connection-3", - "bandwidth": 1000, - "direction": "OUTGOING", - "isRemote": true, - "state": "ACTIVE", - "redundancy": { - "group": "e04db764-f865-470b-8394-d2efdd651577", - "priority": "PRIMARY" + "LinkProtocol": { + "required": [ + "type" + ], + "type": "object", + "description": "Connection link protocol Configuration", + "discriminator": { + "propertyName": "type", + "mapping": { + "UNTAGGED": "#/components/schemas/LinkProtocolUntagged", + "DOT1Q": "#/components/schemas/LinkProtocolDot1q", + "QINQ": "#/components/schemas/LinkProtocolQinq", + "VXLAN": "#/components/schemas/LinkProtocolVxlan", + "EVPN_VXLAN": "#/components/schemas/LinkProtocolEvpnVxlan" + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/LinkProtocolUntagged" }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + { + "$ref": "#/components/schemas/LinkProtocolDot1q" }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c", - "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/MX", - "metroCode": "MX" - } - } + { + "$ref": "#/components/schemas/LinkProtocolQinq" }, - "operation": { - "providerStatus": "AVAILABLE", - "equinixStatus": "PROVISIONED" + { + "$ref": "#/components/schemas/LinkProtocolVxlan" }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + { + "$ref": "#/components/schemas/LinkProtocolEvpnVxlan" } - } + ] }, - "Vd2Sp-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to SP", - "bandwidth": 50, - "state": "ACTIVE", - "account": { - "accountNumber": 201246, - "orgId": 92610 + "LinkProtocolUntagged": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" + "ipv4": { + "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "ipv6": { + "$ref": "#/components/schemas/LinkProtocolIpv4Ipv6Config" + } + }, + "description": "Connection link protocol configuration - UNTAGGED" + }, + "LinkProtocolDot1q": { + "required": [ + "vlanTag" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "zSide": { - "accessPoint": { - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/95542b34-cf1c-41aa-89f7-590946f9df53", - "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53", - "type": "L2_PROFILE" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - } - } + "tagProtocolId": { + "type": "string", + "description": "Tag protocol identifier" }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" + "vlanTag": { + "type": "string", + "description": "VLAN tag" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PENDING_APPROVAL", - "providerStatus": "NOT_AVAILABLE" + "vlanTagMin": { + "type": "integer", + "description": "VLAN tag Min value specified for DOT1Q connections" }, - "changeLog": { - "createdDateTime": "2022-10-05T19:37:12.748Z" - } - } + "vlanTagMax": { + "type": "integer", + "description": "VLAN tag Max value specified for DOT1Q connections" + } + }, + "description": "Connection link protocol configuration - DOT1Q" }, - "Vd2ServiceToken_Response": { - "value": { - "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", - "type": "EVPL_VC", - "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", - "name": "Test ST", - "state": "ACTIVE", - "account": { - "accountNumber": 270235, - "orgId": 92794, - "globalOrgId": "0016u000003JZ55AAG" + "LinkProtocolQinq": { + "required": [ + "innerTagProtocolId", + "outerTagProtocolId", + "vlanCTag", + "vlanSTag" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "bandwidth": 50, - "redundancy": { - "group": "b64dad2a-2763-4084-bc50-b36ef4f67137", - "priority": "PRIMARY" + "innerTagProtocolId": { + "type": "integer", + "description": "Inner tag protocol identifier" }, - "isRemote": true, - "direction": "INTERNAL", - "aSide": { - "accessPoint": { - "interface": { - "uuid": "11fd6067-149f-4142-a5b4-54a8dd6f53fe", - "id": 6, - "type": "CLOUD" - }, - "type": "VD", - "account": { - "accountNumber": 270217, - "organizationName": "test" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", - "region": "AMER", - "metroName": "Ashburn", - "metroCode": "DC" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1720 - }, - "virtualDevice": { - "href": "https://api.equinix.com/ne/v1/devices/3539f96c-7f67-4696-90f3-7b6d2fdcde5f", - "uuid": "3539f96c-7f67-4696-90f3-7b6d2fdcde5f", - "name": "testing1234", - "type": "EDGE" - } - } + "outerTagProtocolId": { + "type": "integer", + "description": "Outer tag protocol identifier" }, - "zSide": { - "serviceToken": { - "uuid": "e05f4f23-d098-4d7c-a9ca-c2897b465107", - "account": { - "orgId": 22222 - } - }, - "accessPoint": { - "type": "COLO", - "account": { - "accountNumber": 22222, - "organizationName": "xxxxx" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", - "region": "AMER", - "metroName": "Ashburn", - "metroCode": "DC" - }, - "port": { - "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", - "uuid": "c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", - "name": "testNEuser2-DC6-NL-Dot1q-STD-SEC-10G-JN-216" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 553 - } - } + "vlanCTag": { + "type": "integer", + "description": "Inner tag, i.e., C-VLAN tag" }, - "changeLog": { - "createdBy": "test", - "createdDateTime": "2022-10-05T19:37:12.748Z", - "updatedBy": "test", - "updatedDateTime": "2022-10-05T19:37:12.748Z" + "vlanSTag": { + "type": "integer", + "description": "Outer tag, i.e., S-VLAN tag" }, - "operation": { - "providerStatus": "AVAILABLE", - "equinixStatus": "PROVISIONED" + "vlanCTagMin": { + "type": "integer", + "description": "Outer tag Min value specified for QINQ connections" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ] - } + "vlanCTagMax": { + "type": "integer", + "description": "Outer tag Max value specified for QINQ connections" + }, + "subInterface": { + "type": "integer", + "description": "Subinterface identifier" + } + }, + "description": "Connection link protocol configuration - QINQ" }, - "Vd2Colo-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to COLO", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" + "LinkProtocolVxlan": { + "required": [ + "vni" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" + "vni": { + "maximum": 16777215, + "minimum": 4097, + "type": "integer", + "description": "Virtual Network Identifier" + } + }, + "description": "Connection link protocol configuration - VXLAN" + }, + "LinkProtocolEvpnVxlan": { + "required": [ + "type5vni", + "vnid" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/LinkProtocolType" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" + "vnid": { + "maximum": 40000, + "minimum": 20001, + "type": "integer", + "description": "Virtual Network Identifier" }, - "account": { - "accountNumber": 201246, - "orgId": 92610 + "type5vni": { + "type": "integer", + "description": "Type 5 VNI identifier" + } + }, + "description": "Connection link protocol configuration - EVPN_VXLAN" + }, + "LinkProtocolIpv4Ipv6Config": { + "type": "object", + "properties": { + "linkPrefix": { + "type": "string", + "description": "Link subnet prefix" }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229Z" + "localIfaceIp": { + "type": "string", + "description": "Prefix datatype when linkPrefix not specified" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "remoteIfaceIp": { + "type": "string", + "description": "Equinix-side link interface address" + } + }, + "description": "IPv4 or IPv6 specific configuration" + }, + "PriceError_additionalInfo": { + "type": "object", + "properties": { + "property": { + "type": "string" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } - } + "reason": { + "type": "string" } } }, - "Vd2Colo-VlanTagResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to COLO", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" - }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" - }, - "account": { - "accountNumber": 201246, - "orgId": 92610 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" - }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229" + "ValidateRequest_filter_and": { + "properties": { + "property": { + "type": "string", + "description": "Path to property" }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f88", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTagMin": 300, - "vlanTagMax": 1099 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } + "operator": { + "type": "string", + "description": "Type of operation" }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 300 - } + "values": { + "type": "array", + "description": "Values for the given property", + "items": { + "type": "string" } } } }, - "Vd2ColoUntagged-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", - "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", - "type": "EVPL_VC", - "name": "vd to SP", - "bandwidth": 50, - "redundancy": { - "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", - "priority": "PRIMARY" - }, - "order": { - "purchaseOrderNumber": "1-323292", - "billingTier": "Up to 50 MB" - }, - "account": { - "accountNumber": 201246, - "orgId": 92610 - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" - }, - "changeLog": { - "createdDateTime": "2021-10-27 16:25:37.229Z" - }, - "aSide": { - "accessPoint": { - "virtualDevice": { - "type": "EDGE", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "interface": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "NETWORK", - "id": 45645 - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 819 - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", - "metroCode": "SG" - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", - "type": "XF_PORT", - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" - }, - "linkProtocol": { - "type": "UNTAGGED" - } + "ValidateRequest_filter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidateRequest_filter_and" } } - } + }, + "description": "Filters" }, - "Fcr2Sp-Response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IP_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "GP_FG2GCP_001", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" + "PortOrder_purchaseOrder": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "purchase order number" }, - "order": { - "billingTier": "Up to 50 MB" + "amount": { + "type": "string", + "description": "purchase order amount" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "name": "My-FG-1" - } - } + "startDate": { + "type": "string", + "format": "datetime" }, - "zSide": { - "accessPoint": { - "profile": { - "href": "https://api.equinix.com/fabric/v4/serviceProfiles/c7922adf-34b5-4d4e-a87c-cae8c899ef90", - "uuid": "c7922adf-34b5-4d4e-a87c-cae8c899ef90", - "name": "Google Cloud Partner Interconnect Zone 2", - "type": "L2_PROFILE" - }, - "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x", - "sellerRegion": "us-west1", - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - } - } + "endDate": { + "type": "string", + "format": "datetime" }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "PROVISIONING" + "attachmentId": { + "type": "string", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "selectionType": { + "type": "string", + "enum": [ + "EXEMPTION", + "EXISTING", + "NEW", + "BLANKET" + ] } - } + }, + "description": "purchase order" }, - "Fcr2Colo-ResponseExample": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IP_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "GP_FG2COLO_001", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" + "PortOrder_signature_delegate": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "name of delegate" }, - "order": { - "billingTier": "Up to 50 MB" + "lastName": { + "type": "string", + "description": "last Name of delegate" }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", - "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0" - } - } - }, - "zSide": { - "accessPoint": { - "type": "COLO", - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } + "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" + ] }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "PROVISIONING" + "delegate": { + "$ref": "#/components/schemas/PortOrder_signature_delegate" + } + }, + "description": "Port signature Type" + }, + "RouteTableEntry_connection": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "example": "81331c52-04c0-4656-a4a7-18c52669348f" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "name": { + "type": "string", + "example": "connection_1" } } }, - "Fcr2IpWan-response": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "type": "IPWAN_VC", - "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", - "name": "MY-IPWAN-CONNECTION-1", - "bandwidth": 50, - "redundancy": { - "group": "4f786b3f-27d4-48e0-8571-423d085826c1", - "priority": "PRIMARY" - }, - "order": { - "billingTier": "Up to 50 MB" - }, - "aSide": { - "accessPoint": { - "type": "CLOUD_ROUTER", - "router": { - "href": "https://api.equinix.com/fabric/v4/routers/66a21614-1c4a-11ec-9621-0242ac130002", - "uuid": "66a21614-1c4a-11ec-9621-0242ac130002", - "name": "My-FG" - } - } + "VirtualConnectionPriceASide_accessPoint_port_settings": { + "type": "object", + "properties": { + "buyout": { + "type": "boolean", + "default": false + } + } + }, + "VirtualConnectionPriceASide_accessPoint_port": { + "type": "object", + "properties": { + "settings": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port_settings" + } + } + }, + "VirtualConnectionPriceASide_accessPoint": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" }, - "zSide": { - "accessPoint": { - "network": { - "href": "https://api.equinix.com/fabric/v4/networks/25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", - "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", - "name": "My-IPWAN", - "platformUuid": "be2c3921-602a-444e-86ef-92cf749c7647", - "state": "ACTIVE", - "type": "IPWAN", - "scope": "REGIONAL", - "location": { - "region": "AMER" - } - } - } + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" }, - "operation": { - "equinixStatus": "PROVISIONING", - "providerStatus": "NOT_AVAILABLE" + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ], - "changeLog": { - "createdBy": "test", - "createdByFullName": "test", - "createdByEmail": "test@equinix.com", - "createdDateTime": "2022-05-12T17:53:45.401Z" + "port": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" } } }, - "AsideServiceToken2PortResponseWithDot1q": { - "value": { - "href": "http://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "EVPL_VC", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "a-token qinq-dot1q", - "state": "ACTIVE", - "operation": { - "providerStatus": "NOT_AVAILABLE", - "equinixStatus": "PROVISIONING" + "VirtualConnectionPriceZSide_accessPoint_profile": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint_bridge_package": { + "type": "object", + "properties": { + "code": { + "$ref": "#/components/schemas/VirtualConnectionBridgePackageCode" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint_bridge": { + "type": "object", + "properties": { + "package": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge_package" + } + } + }, + "VirtualConnectionPriceZSide_accessPoint": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "format": "uuid" }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "account": { - "accountNumber": 201246, - "orgId": 92610, - "globalOrgId": "0017i000011X250AAC" + "type": { + "$ref": "#/components/schemas/VirtualConnectionPriceAccessPointType" }, - "changeLog": { - "createdBy": "testuser", - "createdDateTime": "2022-05-16T07:50:49.749Z" + "location": { + "$ref": "#/components/schemas/PriceLocation" }, - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + "port": { + "$ref": "#/components/schemas/VirtualConnectionPriceASide_accessPoint_port" }, - "isRemote": true, - "direction": "OUTGOING", - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "accessPoint": { - "location": { - "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", - "metroCode": "SV" - }, - "port": { - "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-2" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1231 - }, - "account": { - "accountNumber": 201246, - "organizationName": "testOrganization" - } - } + "profile": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_profile" }, - "zSide": { - "accessPoint": { - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", - "region": "EMEA", - "metroName": "London", - "metroCode": "LD" - }, - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-1" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1321 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" - } - } - }, - "order": { - "purchaseOrderNumber": "1122334", - "billingTier": "Up to 50 MB" + "bridge": { + "$ref": "#/components/schemas/VirtualConnectionPriceZSide_accessPoint_bridge" } } - }, - "AsideServiceToken2PortResponseWithQinq": { - "value": { - "href": "https://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "type": "EVPL_VC", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "a-token qinq-dot1q", - "state": "ACTIVE", - "operation": { - "providerStatus": "NOT_AVAILABLE", - "equinixStatus": "PROVISIONING" + } + }, + "examples": { + "400": { + "value": [ + { + "errorCode": "EQ-3142102", + "errorMessage": "Connection has duplicate buyer-side VLAN ID for port or the same VLAN ID is in the process of being deleted and should be freed up soon", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/linkProtocol" + } + ] }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } - ], - "account": { - "accountNumber": 201246, - "orgId": 92610, - "globalOrgId": "0017i000011X250AAC" + { + "errorCode": "EQ-3142535", + "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", + "details": "Please enter bandwidth less than the Speed limit on ServiceToken", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/serviceToken/uuid" + } + ] }, - "changeLog": { - "createdBy": "testuser", - "createdDateTime": "2022-05-16T07:50:49.749Z" + { + "errorCode": "EQ-3142536", + "errorMessage": "Remote connection cannot be created with the provided ServiceToken", + "details": "Only local Connection can be created using this ServiceToken", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/port/uuid" + } + ] }, - "bandwidth": 50, - "redundancy": { - "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "priority": "PRIMARY" + { + "errorCode": "EQ-3142701", + "errorMessage": "The connection bandwidth provided in the connection request exceeds the bandwidth Limit on ServiceToken", + "details": "not an authorized user", + "correlationId": "test" }, - "isRemote": true, - "direction": "OUTGOING", - "aSide": { - "serviceToken": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "accessPoint": { - "location": { - "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", - "region": "AMER", - "metroName": "Silicon Valley", - "metroCode": "SV" - }, - "port": { - "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-2" - }, - "linkProtocol": { - "type": "QINQ", - "vlanSTag": 1231, - "vlanCTag": 2233 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" + { + "errorCode": "EQ-3142501", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "aSide/accessPoint/port/uuid" } - } + ] }, - "zSide": { - "accessPoint": { - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", - "region": "EMEA", - "metroName": "London", - "metroCode": "LD" - }, - "port": { - "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", - "name": "test-port-name-1" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1321 - }, - "account": { - "accountNumber": 201246, - "organizationName": "xxxxx" + { + "errorCode": "EQ-3142509", + "errorMessage": "Connection already deleted", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "uuid" } - } + ] }, - "order": { - "purchaseOrderNumber": "1122334", - "billingTier": "Up to 50 MB" - } - } - }, - "createBulkGeneric": { - "value": { - "data": [ - { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "j167f685-41b0-1b07-6de0-320a5c00abie", - "priority": "PRIMARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - }, - { - "type": "EVPL_VC", - "name": "Conn-1", - "order": { - "purchaseOrderNumber": "1-129105284100" - }, - "bandwidth": 100, - "redundancy": { - "group": "j167f685-41b0-1b07-6de0-320a5c00abie", - "priority": "SECONDARY" - }, - "aSide": { - "accessPoint": { - "type": "COLO", - "port": { - "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" - }, - "linkProtocol": { - "type": "DOT1Q", - "vlanTag": 1001 - } - } - }, - "zSide": { - "accessPoint": { - "type": "SP", - "profile": { - "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" - }, - "location": { - "metroCode": "SV" - } - } - }, - "notifications": [ - { - "type": "ALL", - "emails": [ - "test@equinix.com", - "test1@equinix.com" - ] - } - ] - } - ] - } - }, - "createBulkNonGeneric": { - "value": { - "data": [ - { - "type": "EVPL_VC", - "name": "Conn-1", + { + "errorCode": "EQ-3142510", + "errorMessage": "Connection is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "uuid" + } + ] + }, + { + "errorCode": "EQ-3142221", + "errorMessage": "The primary and secondary token provided have different bandwidth tiers. Please use two tokens that support the same bandwidth tiers", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142222", + "errorMessage": "The primary and secondary tokens have different encapsulation types (Dot1Q or QinQ). Please use two tokens that support the same encapsulation type", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142223", + "errorMessage": "The primary and secondary tokens belong to different projects. Please use two tokens that belong to the same project", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142224", + "errorMessage": "The primary and secondary ports have different port speeds (bandwidth). Please use two tokens that support the same port speed", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142225", + "errorMessage": "The primary and secondary tokens provided are the same. Please provide a different token", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/serviceToken/uuid" + } + ] + }, + { + "errorCode": "EQ-3142514", + "errorMessage": "Redundancy group is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/group" + } + ] + }, + { + "errorCode": "EQ-3142515", + "errorMessage": "Redundancy priority is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142516", + "errorMessage": "Invalid redundancy group", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/group" + } + ] + }, + { + "errorCode": "EQ-3142517", + "errorMessage": "Invalid redundancy priority", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142303", + "errorMessage": "Only Primary connection allowed for this CSP", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/redundancy/priority" + } + ] + }, + { + "errorCode": "EQ-3142320", + "errorMessage": "For redundant connection, Service Profile should be the same", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/profile/uuid" + } + ] + }, + { + "errorCode": "EQ-3142021", + "errorMessage": "For redundant connection, Fabric Cloud Router should be the same", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142012", + "errorMessage": "Fabric Cloud Router is not in PROVISIONED state", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142301", + "errorMessage": "Given profile does not exist", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/profile/uuid" + } + ] + }, + { + "errorCode": "EQ-3142302", + "errorMessage": "Service provider does not exist in required zSide metro", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/location/metroCode" + } + ] + }, + { + "errorCode": "EQ-3142013", + "errorMessage": "Invalid metro for Cloud Router connection", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/aSide/accessPoint/router/uuid" + } + ] + }, + { + "errorCode": "EQ-3142304", + "errorMessage": "Private connections are not allowed on public profiles", + "correlationId": "test", + "additionalInfo": [ + { + "property": "visibility" + } + ] + }, + { + "errorCode": "EQ-3142306", + "errorMessage": "Requested bandwidth is not supported by service profile", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/bandwidth" + } + ] + }, + { + "errorCode": "EQ-3142308", + "errorMessage": "Authentication key is required", + "correlationId": "test", + "additionalInfo": [ + { + "property": "/zSide/accessPoint/authenticationKey" + } + ] + } + ] + }, + "401": { + "value": [ + { + "errorCode": "EQ-3000039", + "errorMessage": "User not found in request or invalid.", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515" + } + ] + }, + "403": { + "value": [ + { + "errorCode": "EQ-3142402", + "errorMessage": "Do not have create connection permission on this port", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + } + ] + }, + "404": { + "value": [ + { + "errorCode": "EQ-3000036", + "errorMessage": "Requested path doesn't exists", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" + } + ] + }, + "405": { + "value": [ + { + "errorCode": "EQ-3142569", + "errorMessage": "Method not supported, Please check the URL passed", + "details": "Method:PATCH", + "correlationId": "f48687b0-d088-46d1-b06c-00c0688fbca9" + } + ] + }, + "415": { + "value": [ + { + "errorCode": "EQ-3040016", + "errorMessage": "Unsupported media type, please check the request's Content-Type or Content-Encoding", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "contentType", + "reason": "The payload format is in an unsupported format" + } + ] + } + ] + }, + "500": { + "value": [ + { + "errorCode": "EQ-3034003", + "errorMessage": "Method not supported,Please check the URL passed", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "additionalInfo": [ + { + "reason": "method:PATCH" + } + ] + } + ] + }, + "COLO2COLOwithDot1q-Dot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a8ba52de-faae-43b5-b0b1-6904d37ee063" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithDot1q-Dot1q-CRH": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abdd" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "b067f685-49b0-1a09-6fe0-360a5d00afdg" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "project": { + "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithDot1Q-QinQ": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1002 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithQinq-Qinq": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLOwithQinq-Dot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1125 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2COLO-AsReseller": { + "value": { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1002, + "vlanCTag": 1001 + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2COLO-EPL": { + "value": { + "type": "EPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2COLO-AccessEpl": { + "value": { + "type": "ACCESS_EPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1234 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2SPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AlibabaSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "SV" + }, + "sellerRegion": "San Jose 2", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AWSSPwithDot1q-Primary": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Aws", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "sellerRegion": "us-east-1", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AzureSPwithDot1q-Primary": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Azure", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "linkProtocol": { + "type": "QINQ", + "vlanCTag": 1234 + }, + "peeringType": "MICROSOFT", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2AzureSPwithQinq-Secondary": { + "value": { + "type": "EVPL_VC", + "name": "Secondary-Azure", + "bandwidth": 1000, + "redundancy": { + "group": "e04db764-f865-470b-8394-d2efdd651577", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1002 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2GoogleSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2IBM_1": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx", + "sellerRegion": "San Jose 2" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ], + "additionalInfo": [ + { + "key": "ASN", + "value": 1234 + }, + { + "key": "Global", + "value": false + } + ] + } + }, + "COLO2IBM_2": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "authenticationKey": "xxx-xxx-xxx", + "sellerRegion": "San Jose 2" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ], + "additionalInfo": [ + { + "key": "ASN", + "value": 1234 + }, + { + "key": "Global", + "value": false + }, + { + "key": "BGP_IBM_CIDR", + "value": "172.16.0.18/30" + }, + { + "key": "BGP_CER_CIDR", + "value": "172.16.0.19/30" + } + ] + } + }, + "COLO2OracleSPwithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroCode": "DC" + }, + "sellerRegion": "us-ashburn-1", + "authenticationKey": "xxx-xxx-xxx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "COLO2ServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "m167f685-41b0-1b07-6de0-320a5c00abeu", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2NETWORKwithDot1q": { + "value": { + "type": "EVPLAN_VC", + "name": "MY-EVPLAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "COLO2NETWORKwithEPL": { + "value": { + "type": "EPLAN_VC", + "name": "MY-EPLAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Sp-Primary": { + "value": { + "type": "EVPL_VC", + "bandwidth": 50, + "name": "Network Device to SP", + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-323292" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Sp-Secondary": { + "value": { + "type": "EVPL_VC", + "bandwidth": 50, + "name": "Network Device to SP", + "redundancy": { + "group": "777ca05d-4ae7-4ee9-9456-3ca49500428c", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-323292" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Colo": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ColoVlanTag": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTagMin": 300, + "vlanTagMax": 1099 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2Colo-VlanCTag": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to COLO", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 300, + "vlanCTagMin": 100, + "vlanCTagMax": 109 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ColoUntagged": { + "value": { + "type": "EVPL_VC", + "bandwidth": 1000, + "name": "vd to SP", + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "UNTAGGED" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Vd2ServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Primary-Token", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Colo": { + "value": { + "type": "IP_VC", + "name": "My-FCR-Connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "7b6481b8-1c4a-11ec-9621-0242ac130002" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Google": { + "value": { + "type": "IP_VC", + "name": "My-FCR-GCPConnection", + "bandwidth": 1000, + "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" + }, + "authenticationKey": "xx-xx-xx", + "sellerRegion": "us-west1", + "location": { + "metroCode": "SV" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Azure": { + "value": { + "type": "IP_VC", + "name": "My-FCR-AzureConnection", + "bandwidth": 1000, + "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" + }, + "authenticationKey": "xx-xx-xx", + "location": { + "metroCode": "SV" + }, + "peeringType": "PRIVATE" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic": { + "value": { + "type": "IP_VC", + "name": "My-FCR-GenericConnection", + "bandwidth": 1000, + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic-Redundant-Secondary": { + "value": { + "type": "IP_VC", + "name": "FCR_to_RedSP_Secondary", + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "SECONDARY" + }, + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Generic-Redundant-Primary": { + "value": { + "type": "IP_VC", + "name": "FCR_to_RedSP_Primary-Re-add", + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "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" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Aws": { + "value": { + "type": "IP_VC", + "name": "My-FCR-AWSConnection", + "bandwidth": 100, + "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" + }, + "sellerRegion": "us-west-1", + "authenticationKey": "xx-xx-xx" + } + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2Sp-Oracle": { + "value": { + "type": "IP_VC", + "name": "My-FCR-OracleConnection", + "bandwidth": 1000, + "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": "DC" + }, + "sellerRegion": "us-ashburn-1", + "authenticationKey": "xx-xx-xx" + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "project": { + "projectId": "567" + } + } + }, + "Fcr2Vd": { + "value": { + "type": "IP_VC", + "name": "My-GW-VDConnection", + "bandwidth": 100, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "VD", + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "type": "NETWORK", + "id": 45645 + } + } + }, + "project": { + "projectId": "567" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "Fcr2IpWan": { + "value": { + "type": "IPWAN_VC", + "name": "MY-IPWAN-CONNECTION-1", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002" + } + } + }, + "zSide": { + "accessPoint": { + "type": "NETWORK", + "network": { + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2" + } + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 123 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + }, + "AsideServiceToken2PortWithDot1q": { + "value": { + "type": "EVPL_VC", + "name": "Aside-token", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "location": { + "metroCode": "SV" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2PortWithQinq": { + "value": { + "type": "EVPL_VC", + "name": "Aside-Token", + "bandwidth": 1000, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "location": { + "metroCode": "SV" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1001, + "vlanCTag": 1001 + } + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2PrivateSP-NE": { + "value": { + "type": "EVPL_VC", + "name": "Token2PrivateSP-NE", + "bandwidth": 50, + "redundancy": { + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "aSide": { + "serviceToken": { + "uuid": "41a9e1ef-18bb-485b-a9b3-99801ac03684" + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "AsideServiceToken2ZsideServiceToken": { + "value": { + "type": "EVPL_VC", + "name": "Aside to zside token connection", + "bandwidth": 50, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + } + }, + "zSide": { + "serviceToken": { + "uuid": "4f9c5438-90eb-4295-b109-7754119a1e8d" + } + }, + "order": { + "purchaseOrderNumber": "po1234" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "Metal2Sp-Aws": { + "value": { + "type": "EVPL_VC", + "name": "My-Metal-sp-connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "METAL_NETWORK", + "virtualNetwork": { + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abd" + }, + "interface": { + "projectId": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "authenticationKey": "xxxxxxxxx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 567 + } + } + }, + "ConnectionExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", + "type": "EVPL_VC", + "uuid": "3a58dd05-f46d-4b1d-a154-2e85c396ea62", + "name": "My-Layer2-Connection-3", + "bandwidth": 1000, + "direction": "OUTGOING", + "isRemote": true, + "state": "ACTIVE", + "redundancy": { + "group": "e04db764-f865-470b-8394-d2efdd651577", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c", + "uuid": "22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/MX", + "metroCode": "MX" + } + } + }, + "operation": { + "providerStatus": "AVAILABLE", + "equinixStatus": "PROVISIONED" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "Vd2Sp-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to SP", + "bandwidth": 50, + "state": "ACTIVE", + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/95542b34-cf1c-41aa-89f7-590946f9df53", + "uuid": "95542b34-cf1c-41aa-89f7-590946f9df53", + "type": "L2_PROFILE" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + } + } + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PENDING_APPROVAL", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2022-10-05T19:37:12.748Z" + } + } + }, + "Vd2ServiceToken_Response": { + "value": { + "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "type": "EVPL_VC", + "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "name": "Test ST", + "state": "ACTIVE", + "account": { + "accountNumber": 270235, + "orgId": 92794, + "globalOrgId": "0016u000003JZ55AAG" + }, + "bandwidth": 50, + "redundancy": { + "group": "b64dad2a-2763-4084-bc50-b36ef4f67137", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "INTERNAL", + "aSide": { + "accessPoint": { + "interface": { + "uuid": "11fd6067-149f-4142-a5b4-54a8dd6f53fe", + "id": 6, + "type": "CLOUD" + }, + "type": "VD", + "account": { + "accountNumber": 270217, + "organizationName": "test" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "region": "AMER", + "metroName": "Ashburn", + "metroCode": "DC" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1720 + }, + "virtualDevice": { + "href": "https://api.equinix.com/ne/v1/devices/3539f96c-7f67-4696-90f3-7b6d2fdcde5f", + "uuid": "3539f96c-7f67-4696-90f3-7b6d2fdcde5f", + "name": "testing1234", + "type": "EDGE" + } + } + }, + "zSide": { + "serviceToken": { + "uuid": "e05f4f23-d098-4d7c-a9ca-c2897b465107", + "account": { + "orgId": 22222 + } + }, + "accessPoint": { + "type": "COLO", + "account": { + "accountNumber": 22222, + "organizationName": "xxxxx" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "region": "AMER", + "metroName": "Ashburn", + "metroCode": "DC" + }, + "port": { + "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "uuid": "c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "name": "testNEuser2-DC6-NL-Dot1q-STD-SEC-10G-JN-216" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 553 + } + } + }, + "changeLog": { + "createdBy": "test", + "createdDateTime": "2022-10-05T19:37:12.748Z", + "updatedBy": "test", + "updatedDateTime": "2022-10-05T19:37:12.748Z" + }, + "operation": { + "providerStatus": "AVAILABLE", + "equinixStatus": "PROVISIONED" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, + "Vd2Colo-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to COLO", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229Z" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + } + } + }, + "Vd2Colo-VlanTagResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to COLO", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f88", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTagMin": 300, + "vlanTagMax": 1099 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 300 + } + } + } + } + }, + "Vd2ColoUntagged-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "name": "vd to SP", + "bandwidth": 50, + "redundancy": { + "group": "ac61e576-2830-46aa-85e6-5ae7cd49610c", + "priority": "PRIMARY" + }, + "order": { + "purchaseOrderNumber": "1-323292", + "billingTier": "Up to 50 MB" + }, + "account": { + "accountNumber": 201246, + "orgId": 92610 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "changeLog": { + "createdDateTime": "2021-10-27 16:25:37.229Z" + }, + "aSide": { + "accessPoint": { + "virtualDevice": { + "type": "EDGE", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "interface": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "NETWORK", + "id": 45645 + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 819 + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SG", + "metroCode": "SG" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/20d32a80-0d61-4333-bc03-707b591ae2f4", + "type": "XF_PORT", + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f4" + }, + "linkProtocol": { + "type": "UNTAGGED" + } + } + } + } + }, + "Fcr2Sp-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IP_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "GP_FG2GCP_001", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "name": "My-FG-1" + } + } + }, + "zSide": { + "accessPoint": { + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/c7922adf-34b5-4d4e-a87c-cae8c899ef90", + "uuid": "c7922adf-34b5-4d4e-a87c-cae8c899ef90", + "name": "Google Cloud Partner Interconnect Zone 2", + "type": "L2_PROFILE" + }, + "authenticationKey": "xx-xxx-xx-xxxxx/xxx/x", + "sellerRegion": "us-west1", + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "Fcr2Colo-ResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IP_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "GP_FG2COLO_001", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/56d267f3-a566-47a8-8cf9-40e6cc925bf0", + "uuid": "56d267f3-a566-47a8-8cf9-40e6cc925bf0" + } + } + }, + "zSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "Fcr2IpWan-response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "type": "IPWAN_VC", + "uuid": "0ed42ea7-2df8-470d-ad59-e432d768b4f1", + "name": "MY-IPWAN-CONNECTION-1", + "bandwidth": 50, + "redundancy": { + "group": "4f786b3f-27d4-48e0-8571-423d085826c1", + "priority": "PRIMARY" + }, + "order": { + "billingTier": "Up to 50 MB" + }, + "aSide": { + "accessPoint": { + "type": "CLOUD_ROUTER", + "router": { + "href": "https://api.equinix.com/fabric/v4/routers/66a21614-1c4a-11ec-9621-0242ac130002", + "uuid": "66a21614-1c4a-11ec-9621-0242ac130002", + "name": "My-FG" + } + } + }, + "zSide": { + "accessPoint": { + "network": { + "href": "https://api.equinix.com/fabric/v4/networks/25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", + "uuid": "25f8884e-85e3-4eaa-8ea9-a7ad2ca5b3c2", + "name": "My-IPWAN", + "platformUuid": "be2c3921-602a-444e-86ef-92cf749c7647", + "state": "ACTIVE", + "type": "IPWAN", + "scope": "REGIONAL", + "location": { + "region": "AMER" + } + } + } + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "test", + "createdByFullName": "test", + "createdByEmail": "test@equinix.com", + "createdDateTime": "2022-05-12T17:53:45.401Z" + } + } + }, + "AsideServiceToken2PortResponseWithDot1q": { + "value": { + "href": "http://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "EVPL_VC", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "a-token qinq-dot1q", + "state": "ACTIVE", + "operation": { + "providerStatus": "NOT_AVAILABLE", + "equinixStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "account": { + "accountNumber": 201246, + "orgId": 92610, + "globalOrgId": "0017i000011X250AAC" + }, + "changeLog": { + "createdBy": "testuser", + "createdDateTime": "2022-05-16T07:50:49.749Z" + }, + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "OUTGOING", + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "accessPoint": { + "location": { + "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + }, + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-2" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1231 + }, + "account": { + "accountNumber": 201246, + "organizationName": "testOrganization" + } + } + }, + "zSide": { + "accessPoint": { + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", + "region": "EMEA", + "metroName": "London", + "metroCode": "LD" + }, + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-1" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1321 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "order": { + "purchaseOrderNumber": "1122334", + "billingTier": "Up to 50 MB" + } + } + }, + "AsideServiceToken2PortResponseWithQinq": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "type": "EVPL_VC", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "a-token qinq-dot1q", + "state": "ACTIVE", + "operation": { + "providerStatus": "NOT_AVAILABLE", + "equinixStatus": "PROVISIONING" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "account": { + "accountNumber": 201246, + "orgId": 92610, + "globalOrgId": "0017i000011X250AAC" + }, + "changeLog": { + "createdBy": "testuser", + "createdDateTime": "2022-05-16T07:50:49.749Z" + }, + "bandwidth": 50, + "redundancy": { + "group": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "priority": "PRIMARY" + }, + "isRemote": true, + "direction": "OUTGOING", + "aSide": { + "serviceToken": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "accessPoint": { + "location": { + "metroHref": "http://api.equinix.com/fabric/v4/metros/SV", + "region": "AMER", + "metroName": "Silicon Valley", + "metroCode": "SV" + }, + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-2" + }, + "linkProtocol": { + "type": "QINQ", + "vlanSTag": 1231, + "vlanCTag": 2233 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "zSide": { + "accessPoint": { + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/LD", + "region": "EMEA", + "metroName": "London", + "metroCode": "LD" + }, + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d", + "name": "test-port-name-1" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1321 + }, + "account": { + "accountNumber": 201246, + "organizationName": "xxxxx" + } + } + }, + "order": { + "purchaseOrderNumber": "1122334", + "billingTier": "Up to 50 MB" + } + } + }, + "Metal2Sp-Aws-Response": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/f37e40c5-2802-4df7-9732-839a8a5868ce", + "type": "EVPL_VC", + "uuid": "f37e40c5-2802-4df7-9732-839a8a5868ce", + "name": "My-Metal-sp-connection", + "bandwidth": 1000, + "aSide": { + "accessPoint": { + "type": "METAL_NETWORK", + "virtualNetwork": { + "href": "https://api.equinix.com/metal/v1/virtual-networks/a867f685-41b0-1b07-6de0-320a5c00abd", + "uuid": "a867f685-41b0-1b07-6de0-320a5c00abd" + }, + "interface": { + "projectId": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "9127bb72-5f4f-4517-be74-3af7ce612687" + }, + "authenticationKey": "xxxxxxxxx", + "sellerRegion": "us-west-1" + } + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "project": { + "projectId": 567 + }, + "operation": { + "equinixStatus": "PROVISIONING", + "providerStatus": "NOT_AVAILABLE" + }, + "account": { + "href": "https://api.equinix.com/accountService/v1/accounts/123213", + "accountNumber": 123213, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + }, + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "createBulkGeneric": { + "value": { + "data": [ + { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "j167f685-41b0-1b07-6de0-320a5c00abie", + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + }, + { + "type": "EVPL_VC", + "name": "Conn-1", + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "bandwidth": 100, + "redundancy": { + "group": "j167f685-41b0-1b07-6de0-320a5c00abie", + "priority": "SECONDARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1001 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "uuid": "20d32a80-0d61-4333-bc03-707b591ae2f5" + }, + "location": { + "metroCode": "SV" + } + } + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com", + "test1@equinix.com" + ] + } + ] + } + ] + } + }, + "createBulkNonGeneric": { + "value": { + "data": [ + { + "type": "EVPL_VC", + "name": "Conn-1", "order": { "purchaseOrderNumber": "1-129105284100" }, @@ -23748,7 +27105,7 @@ "values": [ "LAB", "BASIC", - "PRO", + "STANDARD", "PREMIUM" ] } @@ -27168,320 +30525,792 @@ } } } - } + } + }, + "COLOSinglePortNonLagResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", + "type": "XF_PORT", + "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", + "state": "PENDING", + "physicalPortsType": "10GBASE_L", + "physicalPortsSpeed": 10000, + "physicalPortsCount": 1, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "redundancy": { + "group": 1, + "priority": "PRIMARY" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "settings": { + "sharedPortType": "false,", + "packageType": "STANDARD" + }, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "orderNumber": "1-207799950758", + "signature": { + "signatory": "DELEGATE", + "delegate": { + "email": "testEmail1@equinix.com" + } + } + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "PEERING", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "ESCALATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ] + } + }, + "port-400": { + "value": [ + { + "errorCode": "EQ-3143101", + "errorMessage": "NOTIFICATION_CONTACT_NOT_VALID", + "details": "notifications" + }, + { + "errorCode": "EQ-3143103", + "errorMessage": "NOTIFICATION_CONTACT_MISSING", + "details": "notifications" + }, + { + "errorCode": "EQ-3143104", + "errorMessage": "ORDERING_CONTACT_MISSING", + "details": "notifications" + }, + { + "errorCode": "EQ-3143105", + "errorMessage": "ORDERING_CONTACT_NOT_VALID", + "details": "notifications" + }, + { + "errorCode": "EQ-3143106", + "errorMessage": "INVALID_PHYSICAL_PORTS", + "details": "physicalPorts[%s].Demarcation.cageUniqueSpaceId" + }, + { + "errorCode": "EQ-3143107", + "errorMessage": "INVALID_PATCH_PANEL_NAME", + "details": "physicalPorts[%s].Demarcation.patchPanelName is not valid" + }, + { + "errorCode": "EQ-3143108", + "errorMessage": "PHYSICAL_PORTS_MISSING", + "details": "PhysicalPorts" + }, + { + "errorCode": "EQ-3143109", + "errorMessage": "ALL_PORTS_USED", + "details": "PhysicalPorts.Demarcation.port" + }, + { + "errorCode": "EQ-3143110", + "errorMessage": "INVALID_PHYSICAL_PORTS_PORTA_DUPLICATE", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143111", + "errorMessage": "INVALID_PHYSICAL_PORTS_PORTB_DUPLICATE", + "details": "PhysicalPorts[%s].Demarcation.portB" + }, + { + "errorCode": "EQ-3143112", + "errorMessage": "NEXT_AVAIL_CANNOT_BE_TRUE", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143113", + "errorMessage": "provided metroCode is not available for this user", + "details": "metroCode" + }, + { + "errorCode": "EQ-3143114", + "errorMessage": "MISSING_PORTB", + "details": "PhysicalPorts[%s].Demarcation.portB" + }, + { + "errorCode": "EQ-3143115", + "errorMessage": "PORT_PRIORITY_SHOULD_BE_PRIMARY", + "details": "priority" + }, + { + "errorCode": "EQ-3143116", + "errorMessage": "INVALID_PHYSICAL_PORTS_SPEED", + "details": "physicalPortsSpeed" + }, + { + "errorCode": "EQ-3143117", + "errorMessage": "INVALID_PHYSICAL_PORTS_TYPE", + "details": "physicalPortsType" + }, + { + "errorCode": "EQ-3143118", + "errorMessage": "INVALID_QUOTE_REFERENCE_ID", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143119", + "errorMessage": "INACTIVE_QUOTE_REFERENCE_ID", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143120", + "errorMessage": "QUOTE_ORDER_MISMATCHED", + "details": "quoteReferenceId" + }, + { + "errorCode": "EQ-3143121", + "errorMessage": "SHARED_PORT_PRODUCT_INVALID", + "details": "sharedPortProduct" + }, + { + "errorCode": "EQ-3143122", + "errorMessage": "INVALID_USER", + "details": "sharedPortType" + }, + { + "errorCode": "EQ-3143123", + "errorMessage": "INVALID_CONNECTIVITY_SOURCE_TYPE", + "details": "ConnectivitySourceType" + }, + { + "errorCode": "EQ-3143124", + "errorMessage": "ACCOUNT_SERVICE_ERROR", + "details": "AccountNumber" + }, + { + "errorCode": "EQ-3143125", + "errorMessage": "MANDATORY_ATTRIBUTE_ERROR", + "details": "PhysicalPorts[%s].Demarcation.portA" + }, + { + "errorCode": "EQ-3143126", + "errorMessage": "UNTAGGED_INVALID_PACKAGE_TYPE", + "details": "settings.packageType" + }, + { + "errorCode": "EQ-3143127", + "errorMessage": "UNTAGGED_INVALID_ENCAPSULATION", + "details": "encapsulation.type" + }, + { + "errorCode": "EQ-3143128", + "errorMessage": "UNTAGGED_REDUNDANT", + "details": "redundancy.priority" + }, + { + "errorCode": "EQ-3143129", + "errorMessage": "UNTAGGED_LAG", + "details": "lagEnabled" + }, + { + "errorCode": "EQ-3143130", + "errorMessage": "UNTAGGED_SHARED", + "details": "settings.sharedPortType" + }, + { + "errorCode": "EQ-3143131", + "errorMessage": "UNTAGGED_TPID", + "details": "encapsulation.tagProtocolId" + }, + { + "errorCode": "EQ-3143132", + "errorMessage": "PHYSICAL_PORTS_SPEED_NOT_AVAILABLE", + "details": "physicalPortsSpeed" + }, + { + "errorCode": "EQ-3143133", + "errorMessage": "Invalid A side ibx in MC order payload", + "details": "ibx" + }, + { + "errorCode": "EQ-3143134", + "errorMessage": "Invalid Z side ibx in MC order payload", + "details": "ibx" + }, + { + "errorCode": "EQ-3143135", + "errorMessage": "LAG_PORT_WITHOUT_LAG", + "details": "lagPort" + }, + { + "errorCode": "EQ-3143136", + "errorMessage": "LAG_WITH_WITHOUT_LAG", + "details": "lag.type" + }, + { + "errorCode": "EQ-3143137", + "errorMessage": "ORDER_NOT_BELONG_TO_USER" + }, + { + "errorCode": "EQ-3143138", + "errorMessage": "ORDER_NOT_FOUND" + } + ] }, - "COLOSinglePortNonLagResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", - "type": "XF_PORT", - "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", - "state": "PENDING", - "physicalPortsType": "10GBASE_L", - "physicalPortsSpeed": 10000, - "physicalPortsCount": 1, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "redundancy": { - "group": 1, - "priority": "PRIMARY" + "port-500": { + "value": [ + { + "errorCode": "EQ-3143001", + "errorMessage": "Please contact support@equinix.com for more info" }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + { + "errorCode": "EQ-3143002", + "errorMessage": "Invalid response from order service" }, - "settings": { - "sharedPortType": "false,", - "packageType": "STANDARD" + { + "errorCode": "EQ-3143003", + "errorMessage": "Invalid argument value passed" }, - "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", - "projectId": 567 + { + "errorCode": "EQ-3143004", + "errorMessage": "Json syntax error, please check request body" }, - "account": { - "accountNumber": 1000 + { + "errorCode": "EQ-3143005", + "errorMessage": "Invalid argument passed" }, - "order": { - "orderNumber": "1-207799950758", - "signature": { - "signatory": "DELEGATE", - "delegate": { - "email": "testEmail1@equinix.com" - } - } + { + "errorCode": "EQ-3143006", + "errorMessage": "Method not supported, Please check the URL passed" }, - "notifications": [ + { + "errorCode": "EQ-3143008", + "errorMessage": "virtual Port not found", + "details": "connectionDetails[%s].patchPanelName is not valid" + } + ] + }, + "COLOBulkPort": { + "value": { + "data": [ { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-PRIMARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "redundancy": { + "priority": "PRIMARY" + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } ] }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-SECONDARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "location": { + "metroCode": "AM" + }, + "demarcationPointIbx": "AM1", + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "redundancy": { + "priority": "SECONDARY" + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } ] - }, + } + ] + } + }, + "COLOBulkPortResponse": { + "value": { + "data": [ { - "type": "PEERING", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603", + "uuid": "a6f77b33-96c6-4eeb-8d79-76374d950603", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "state": "PENDING", + "order": { + "orderNumber": "1-210210611704" + }, + "account": { + "accountNumber": 270848 + }, + "changelog": { + "createdBy": "907831", + "createdDateTime": "2023-06-02T22:25:52.206Z" + }, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "redundancy": { + "group": "22f8e668-4754-4564-825d-d1c7889c885a", + "priority": "PRIMARY" + }, + "lagEnabled": false, + "settings": { + "sharedPortType": false, + "packageType": "STANDARD" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "additionalInfo": [ + { + "key": "quoteReferenceId", + "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + }, + { + "key": "InterfaceReferenceId", + "value": "32729" + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a", + "uuid": "22f8e668-4754-4564-825d-d1c7889c885a", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "state": "PENDING", + "order": { + "orderNumber": "1-210210611704" + }, + "account": { + "accountNumber": 270848 + }, + "changelog": { + "createdBy": "907831", + "createdDateTime": "2023-06-02T22:25:52.206Z" + }, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "redundancy": { + "group": "a6f77b33-96c6-4eeb-8d79-76374d950603", + "priority": "SECONDARY" + }, + "lagEnabled": false, + "settings": { + "sharedPortType": false, + "packageType": "STANDARD" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "additionalInfo": [ + { + "key": "quoteReferenceId", + "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + }, + { + "key": "InterfaceReferenceId", + "value": "32729" + } ] } ] } }, - "port-400": { - "value": [ - { - "errorCode": "EQ-3143101", - "errorMessage": "NOTIFICATION_CONTACT_NOT_VALID", - "details": "notifications" - }, - { - "errorCode": "EQ-3143103", - "errorMessage": "NOTIFICATION_CONTACT_MISSING", - "details": "notifications" - }, - { - "errorCode": "EQ-3143104", - "errorMessage": "ORDERING_CONTACT_MISSING", - "details": "notifications" - }, - { - "errorCode": "EQ-3143105", - "errorMessage": "ORDERING_CONTACT_NOT_VALID", - "details": "notifications" - }, - { - "errorCode": "EQ-3143106", - "errorMessage": "INVALID_PHYSICAL_PORTS", - "details": "physicalPorts[%s].Demarcation.cageUniqueSpaceId" - }, - { - "errorCode": "EQ-3143107", - "errorMessage": "INVALID_PATCH_PANEL_NAME", - "details": "physicalPorts[%s].Demarcation.patchPanelName is not valid" - }, - { - "errorCode": "EQ-3143108", - "errorMessage": "PHYSICAL_PORTS_MISSING", - "details": "PhysicalPorts" - }, - { - "errorCode": "EQ-3143109", - "errorMessage": "ALL_PORTS_USED", - "details": "PhysicalPorts.Demarcation.port" - }, - { - "errorCode": "EQ-3143110", - "errorMessage": "INVALID_PHYSICAL_PORTS_PORTA_DUPLICATE", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143111", - "errorMessage": "INVALID_PHYSICAL_PORTS_PORTB_DUPLICATE", - "details": "PhysicalPorts[%s].Demarcation.portB" - }, - { - "errorCode": "EQ-3143112", - "errorMessage": "NEXT_AVAIL_CANNOT_BE_TRUE", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143113", - "errorMessage": "provided metroCode is not available for this user", - "details": "metroCode" - }, - { - "errorCode": "EQ-3143114", - "errorMessage": "MISSING_PORTB", - "details": "PhysicalPorts[%s].Demarcation.portB" - }, - { - "errorCode": "EQ-3143115", - "errorMessage": "PORT_PRIORITY_SHOULD_BE_PRIMARY", - "details": "priority" - }, - { - "errorCode": "EQ-3143116", - "errorMessage": "INVALID_PHYSICAL_PORTS_SPEED", - "details": "physicalPortsSpeed" - }, - { - "errorCode": "EQ-3143117", - "errorMessage": "INVALID_PHYSICAL_PORTS_TYPE", - "details": "physicalPortsType" - }, - { - "errorCode": "EQ-3143118", - "errorMessage": "INVALID_QUOTE_REFERENCE_ID", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143119", - "errorMessage": "INACTIVE_QUOTE_REFERENCE_ID", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143120", - "errorMessage": "QUOTE_ORDER_MISMATCHED", - "details": "quoteReferenceId" - }, - { - "errorCode": "EQ-3143121", - "errorMessage": "SHARED_PORT_PRODUCT_INVALID", - "details": "sharedPortProduct" - }, - { - "errorCode": "EQ-3143122", - "errorMessage": "INVALID_USER", - "details": "sharedPortType" - }, - { - "errorCode": "EQ-3143123", - "errorMessage": "INVALID_CONNECTIVITY_SOURCE_TYPE", - "details": "ConnectivitySourceType" - }, - { - "errorCode": "EQ-3143124", - "errorMessage": "ACCOUNT_SERVICE_ERROR", - "details": "AccountNumber" - }, - { - "errorCode": "EQ-3143125", - "errorMessage": "MANDATORY_ATTRIBUTE_ERROR", - "details": "PhysicalPorts[%s].Demarcation.portA" - }, - { - "errorCode": "EQ-3143126", - "errorMessage": "UNTAGGED_INVALID_PACKAGE_TYPE", - "details": "settings.packageType" - }, - { - "errorCode": "EQ-3143127", - "errorMessage": "UNTAGGED_INVALID_ENCAPSULATION", - "details": "encapsulation.type" - }, - { - "errorCode": "EQ-3143128", - "errorMessage": "UNTAGGED_REDUNDANT", - "details": "redundancy.priority" - }, - { - "errorCode": "EQ-3143129", - "errorMessage": "UNTAGGED_LAG", - "details": "lagEnabled" - }, - { - "errorCode": "EQ-3143130", - "errorMessage": "UNTAGGED_SHARED", - "details": "settings.sharedPortType" - }, - { - "errorCode": "EQ-3143131", - "errorMessage": "UNTAGGED_TPID", - "details": "encapsulation.tagProtocolId" - }, - { - "errorCode": "EQ-3143132", - "errorMessage": "PHYSICAL_PORTS_SPEED_NOT_AVAILABLE", - "details": "physicalPortsSpeed" - }, - { - "errorCode": "EQ-3143133", - "errorMessage": "Invalid A side ibx in MC order payload", - "details": "ibx" - }, - { - "errorCode": "EQ-3143134", - "errorMessage": "Invalid Z side ibx in MC order payload", - "details": "ibx" - }, - { - "errorCode": "EQ-3143135", - "errorMessage": "LAG_PORT_WITHOUT_LAG", - "details": "lagPort" - }, - { - "errorCode": "EQ-3143136", - "errorMessage": "LAG_WITH_WITHOUT_LAG", - "details": "lag.type" - }, - { - "errorCode": "EQ-3143137", - "errorMessage": "ORDER_NOT_BELONG_TO_USER" - }, - { - "errorCode": "EQ-3143138", - "errorMessage": "ORDER_NOT_FOUND" - } - ] + "COLOAddToLag": { + "value": { + "data": [ + { + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "ibx": "AM1", + "cabinetUniqueSpaceId": "AM1:02:032575:0105", + "cageUniqueSpaceId": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + }, + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "COLO" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "demarcationPoint": { + "ibx": "AM1", + "cabinetUniqueSpaceId": "AM1:02:032575:0105", + "cageUniqueSpaceId": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 16, + "patchPanelPortB": 17, + "connectorType": "LC" + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "COLO" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + } + ] + } }, - "port-500": { - "value": [ - { - "errorCode": "EQ-3143001", - "errorMessage": "Please contact support@equinix.com for more info" - }, - { - "errorCode": "EQ-3143002", - "errorMessage": "Invalid response from order service" - }, - { - "errorCode": "EQ-3143003", - "errorMessage": "Invalid argument value passed" - }, - { - "errorCode": "EQ-3143004", - "errorMessage": "Json syntax error, please check request body" - }, - { - "errorCode": "EQ-3143005", - "errorMessage": "Invalid argument passed" - }, - { - "errorCode": "EQ-3143006", - "errorMessage": "Method not supported, Please check the URL passed" - }, - { - "errorCode": "EQ-3143008", - "errorMessage": "virtual Port not found", - "details": "connectionDetails[%s].patchPanelName is not valid" - } - ] + "REMOTEAddToLag": { + "value": { + "data": [ + { + "type": "XF_PHYSICAL_PORT", + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "REMOTE" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11", + "endDate": "2018-07-11", + "selectionType": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "account": { + "accountReferenceId": "17829Id" + } + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountReferenceId": "17829Id" + }, + "additionalInfo": [ + { + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "REMOTE" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + } + ] + } }, - "COLOBulkPort": { + "BMMRAddToLag": { "value": { "data": [ { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-PRIMARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, + "type": "XF_PHYSICAL_PORT", "account": { - "accountNumber": 1000 + "accountNumber": 17829 }, "order": { "purchaseOrder": { @@ -27500,42 +31329,56 @@ } } }, - "redundancy": { - "priority": "PRIMARY" - }, - "physicalPorts": [ + "additionalInfo": [ { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } + "key": "internalReferenceId", + "value": 635368 + }, + { + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + }, + { + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, + { + "key": "lagType", + "value": "Existing" + }, + { + "key": "connectivitySourceType", + "value": "BMMR" + }, + { + "key": "bmmrType", + "value": "SELF" + }, + { + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" + }, + { + "key": "notification", + "value": "jaguarsuser-port-order" } ] }, { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-SECONDARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, + { + "type": "XF_PHYSICAL_PORT", "account": { - "accountNumber": 1000 + "accountNumber": 17829 }, "order": { "purchaseOrder": { @@ -27554,191 +31397,107 @@ } } }, - "redundancy": { - "priority": "SECONDARY" - }, - "physicalPorts": [ + "additionalInfo": [ { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] - } - ] - } - }, - "COLOBulkPortResponse": { - "value": { - "data": [ - { - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603", - "uuid": "a6f77b33-96c6-4eeb-8d79-76374d950603", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "physicalPortsCount": 1, - "connectivitySourceType": "COLO", - "state": "PENDING", - "order": { - "orderNumber": "1-210210611704" - }, - "account": { - "accountNumber": 270848 - }, - "changelog": { - "createdBy": "907831", - "createdDateTime": "2023-06-02T22:25:52.206Z" - }, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "redundancy": { - "group": "22f8e668-4754-4564-825d-d1c7889c885a", - "priority": "PRIMARY" - }, - "lagEnabled": false, - "settings": { - "sharedPortType": false, - "packageType": "STANDARD" - }, - "notifications": [ + "key": "internalReferenceId", + "value": 635368 + }, { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] + "key": "quoteReferenceId", + "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ], - "additionalInfo": [ + "key": "orderUuid", + "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + }, { - "key": "quoteReferenceId", - "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + "key": "lagType", + "value": "Existing" }, { - "key": "InterfaceReferenceId", - "value": "32729" - } - ] - }, - { - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a", - "uuid": "22f8e668-4754-4564-825d-d1c7889c885a", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "physicalPortsCount": 1, - "connectivitySourceType": "COLO", - "state": "PENDING", - "order": { - "orderNumber": "1-210210611704" - }, - "account": { - "accountNumber": 270848 - }, - "changelog": { - "createdBy": "907831", - "createdDateTime": "2023-06-02T22:25:52.206Z" - }, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "redundancy": { - "group": "a6f77b33-96c6-4eeb-8d79-76374d950603", - "priority": "SECONDARY" - }, - "lagEnabled": false, - "settings": { - "sharedPortType": false, - "packageType": "STANDARD" - }, - "notifications": [ + "key": "connectivitySourceType", + "value": "BMMR" + }, { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] + "key": "bmmrType", + "value": "SELF" }, { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ], - "additionalInfo": [ + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, { - "key": "quoteReferenceId", - "value": "dd70d3dd-29f6-4a30-8820-03dc1c80a682" + "key": "packageType", + "value": "STANDARD" }, { - "key": "InterfaceReferenceId", - "value": "32729" + "key": "notification", + "value": "jaguarsuser-port-order" + } + ] + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" } ] } ] } }, - "COLOAddToLag": { + "COLOAddToLagResponse": { "value": { "data": [ { "type": "XF_PHYSICAL_PORT", "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - }, - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "39", + "patchPanelPortB": "40", + "connectorType": "SC", + "ibx": "GV1" }, "additionalInfo": [ { - "key": "internalReferenceId", - "value": 635368 + "key": "lagType", + "value": "Existing" }, { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" + "key": "connectivitySourceType", + "value": "COLO" }, { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" + "key": "physicalPortsType", + "value": "10GBASE_LR" + }, + { + "key": "packageType", + "value": "STANDARD" }, + { + "key": "notification", + "value": "userName" + } + ], + "order": { + "orderNumber": "1-210210611904" + } + }, + { + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "41", + "patchPanelPortB": "42", + "connectorType": "SC", + "ibx": "GV1" + }, + "additionalInfo": [ { "key": "lagType", "value": "Existing" @@ -27757,838 +31516,1193 @@ }, { "key": "notification", - "value": "jaguarsuser-port-order" + "value": "userName" } - ] - }, + ], + "order": { + "orderNumber": "1-210210611904" + } + } + ] + } + }, + "portByUUID": { + "value": { + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", + "type": "XF_PORT", + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "ACTIVE", + "cvpId": "108608", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, + "redundancy": { + "group": "1", + "priority": "Secondary" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", + "ibx": "AT1", + "metroCode": "AT", + "metroName": "Atlanta", + "region": "AMER" + }, + "device": { + "name": "dev-m7a2.lab", + "redundancy": { + "group": "1", + "priority": "Secondary" + } + }, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "lagEnabled": true, + "lag": { + "enabled": true + }, + "settings": { + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true + }, + "physicalPorts": [ { + "state": "PROVISIONED", "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 + "id": 6967, + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 16, - "patchPanelPortB": 17, - "connectorType": "LC" + "ibx": "AT1", + "patchPanel": "PP:8118:1586", + "patchPanelName": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "operation": { + "operationalStatus": "UP" + } + }, + { + "state": "PROVISIONED", + "type": "XF_PHYSICAL_PORT", + "id": 6968, + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" + }, + "operation": { + "operationalStatus": "UP" + } + } + ], + "operation": { + "operationalStatus": "UP", + "opStatusChangedAt": "2021-06-14T17:21:25.586Z", + "connectionCount": 0 + }, + "account": { + "accountNumber": "100179", + "accountName": "L2", + "globalCustId": "007700000090982RG8", + "orgId": "100179", + "organizationName": "Cust_Org_100179" + }, + "changeLog": { + "createdDateTime": "2018-06-14T17:21:25.587Z" + } + } + }, + "LinkProtocolGetQinqResponseExample": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 5 + }, + "data": [ + { + "type": "QINQ", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanSTag": 1001, + "vlanCTag": 1001, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "REMOTEAddToLag": { + "LinkProtocolGetDot1qResponseExample": { "value": { + "pagination": { + "offset": 5, + "limit": 20, + "total": 40, + "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", + "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "REMOTE" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTag": 200, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "account": { - "accountReferenceId": "17829Id" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanTag": 257, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountReferenceId": "17829Id" + "type": "DOT1Q", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanTag": 250, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "REMOTE" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTag": 240, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTag": 240, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "BMMRAddToLag": { + "LinkProtocolGetVlanRangeResponseExample": { "value": { - "data": [ - { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "pagination": { + "offset": 5, + "limit": 20, + "total": 40, + "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", + "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + }, + "data": [ + { + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "BMMR" - }, - { - "key": "bmmrType", - "value": "SELF" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", + "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 + "type": "DOT1Q", + "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "serviceToken": { + "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", + "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11", - "endDate": "2018-07-11", - "selectionType": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "additionalInfo": [ - { - "key": "internalReferenceId", - "value": 635368 - }, - { - "key": "quoteReferenceId", - "value": "16aabad4-1caa-4aae-be35-3ff1dc1814d4" - }, - { - "key": "orderUuid", - "value": "c64de7e5-7fe7-41e6-b984-80d5aa159a0d" - }, - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "BMMR" - }, - { - "key": "bmmrType", - "value": "SELF" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "jaguarsuser-port-order" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "connection": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 + }, + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOAddToLagResponse": { + "400_invalid_portId": { + "value": [ + { + "errorCode": "EQ-3035202", + "errorMessage": "Unable to fetch port details", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "The uuid requested could not be found in system. Please try again after sometime", + "additionalInfo": { + "property": "portUuid" + } + } + ] + }, + "403-port-access": { + "value": [ + { + "errorCode": "EQ-3035002", + "errorMessage": "Access Forbidden", + "correlationId": "UnAuthorized User- Cannot perform action" + } + ] + }, + "PortSearchByProjectId": { "value": { - "data": [ - { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "39", - "patchPanelPortB": "40", - "connectorType": "SC", - "ibx": "GV1" - }, - "additionalInfo": [ - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "userName" - } - ], - "order": { - "orderNumber": "1-210210611904" + "filter": { + "or": [ + { + "and": [ + { + "operator": "=", + "property": "/project/projectId", + "values": [ + "30ad25e2-53dc-11ed-bdc3-0242ac120002" + ] + }, + { + "operator": "=", + "property": "/state", + "values": [ + "ACTIVE" + ] + }, + { + "operator": "=", + "property": "/settings/productCode", + "values": [ + "CX" + ] + } + ] } - }, + ] + }, + "pagination": { + "limit": 25, + "offset": 0, + "total": 0 + }, + "sort": [ { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "41", - "patchPanelPortB": "42", - "connectorType": "SC", - "ibx": "GV1" - }, - "additionalInfo": [ - { - "key": "lagType", - "value": "Existing" - }, - { - "key": "connectivitySourceType", - "value": "COLO" - }, - { - "key": "physicalPortsType", - "value": "10GBASE_LR" - }, - { - "key": "packageType", - "value": "STANDARD" - }, - { - "key": "notification", - "value": "userName" - } - ], - "order": { - "orderNumber": "1-210210611904" - } + "property": "/device/name", + "direction": "DESC" } ] } }, - "portByUUID": { + "ConnectionRouteFiltersGetAll": { "value": { - "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", - "type": "XF_PORT", - "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", - "name": "test-AT1-Dot1q-L-Secondary-108608", - "state": "ACTIVE", - "cvpId": "108608", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "redundancy": { - "group": "1", - "priority": "Secondary" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", - "ibx": "AT1", - "metroCode": "AT", - "metroName": "Atlanta", - "region": "AMER" + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null }, - "device": { - "name": "dev-m7a2.lab", - "redundancy": { - "group": "1", - "priority": "Secondary" + "data": [ + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "INBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/52f7791a-fe90-49bc-8807-18b3d6eda566", + "type": "BGP_IPv6_PREFIX_FILTER", + "uuid": "52f7791a-fe90-49bc-8807-18b3d6eda566", + "attachmentStatus": "ATTACHED", + "direction": "INBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "attachmentStatus": "ATTACHED", + "direction": "OUTBOUND" + }, + { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/65d74639-8f48-4e10-9684-45d364645e97", + "type": "BGP_IPv6_PREFIX_FILTER", + "uuid": "65d74639-8f48-4e10-9684-45d364645e97", + "attachmentStatus": "ATTACHED", + "direction": "OUTBOUND" } + ] + } + }, + "400_route_filters": { + "value": [ + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "type" + } + ] }, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "name" + } + ] }, - "lagEnabled": true, - "lag": { - "enabled": true + { + "errorCode": "EQ-3044002", + "errorMessage": "Connection already deleted", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec", + "additionalInfo": [ + { + "property": "connectionId" + } + ] }, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true + { + "errorCode": "EQ-3044003", + "errorMessage": "Route Filter is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "routeFilterId" + } + ] }, - "physicalPorts": [ - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6967, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "demarcationPoint": { - "ibx": "AT1", - "patchPanel": "PP:8118:1586", - "patchPanelName": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "operation": { - "operationalStatus": "UP" + { + "errorCode": "EQ-3044003", + "errorMessage": "Connection is in transient state", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "connectionId" } - }, - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6968, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" - }, - "operation": { - "operationalStatus": "UP" + ] + } + ] + }, + "AttachConnectionRouteFiltersResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "ATTACHING", + "direction": "INBOUND" + } + }, + "AttachConnectionRouteFilterInbound": { + "value": { + "direction": "INBOUND" + } + }, + "AttachConnectionRouteFilterOutbound": { + "value": { + "direction": "OUTBOUND" + } + }, + "400_invalid_direction": { + "value": [ + { + "errorCode": "EQ-3044001", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "direction" } + ] + } + ] + }, + "400_transient_state": { + "value": [ + { + "errorCode": "EQ-3044008", + "errorMessage": "Cannot attach or detach Route Filter with Connection in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot attach or detach Route Filter with Connection in transient state" + } + ] + }, + "DetachConnectionRouteFilterInboundResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "INBOUND" + } + }, + "DetachConnectionRouteFilterOutboundResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING", + "direction": "OUTBOUND" + } + }, + "RouteFilterCreateBgpIpv4Prefix": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + } + }, + "RouteFilterCreateBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4", + "description": "Test filter", + "state": "PROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" + }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "UpdateRouteFilterIPv4": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4-update", + "description": "Test filter update", + "project": { + "projectId": 789 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, + "RouteFilterIpv4ReplaceResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4-update", + "description": "Test filter update", + "state": "REPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" + }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 789 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] } ], - "operation": { - "operationalStatus": "UP", - "opStatusChangedAt": "2021-06-14T17:21:25.586Z", - "connectionCount": 0 + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4", + "description": "Test filter", + "state": "DEPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31", + "type": "BGP_IPv4_PREFIX_FILTER_DELETION", + "uuid": "c2ec84c5-6de6-4f5c-b506-3ce218630c31" }, - "account": { - "accountNumber": "100179", - "accountName": "L2", - "globalCustId": "007700000090982RG8", - "orgId": "100179", - "organizationName": "Cust_Org_100179" + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ], "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z", + "deletedBy": "testuser1", + "deletedByEmail": "testuser@equinix.com", + "deletedByFullName": "testuser testuser", + "deletedDateTime": "2020-05-21T10:30:00Z" } } }, - "LinkProtocolGetQinqResponseExample": { + "400_attached_connection": { + "value": [ + { + "errorCode": "EQ-3044007", + "errorMessage": "Cannot delete Route Filter still attached to a Connection", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot delete Route Filter still attached to a Connection" + } + ] + }, + "PatchRouteFilterName": { + "value": [ + { + "op": "replace", + "path": "/name", + "value": "My-route-filter-v4-updated" + } + ] + }, + "RouteFilterNamePatchResponse": { "value": { - "pagination": { - "offset": 0, - "limit": 20, - "total": 5 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My-prefix-filter-v4-updated", + "description": "Test filter", + "state": "REPROVISIONING", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "data": [ - { - "type": "QINQ", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "QINQ", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, + "notMatchedRuleAction": "DENY", + "connectionsCount": 1, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": 567 + }, + "notifications": [ { - "type": "QINQ", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanSTag": 1001, - "vlanCTag": 1001, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } + "type": "ALL", + "emails": [ + "test@equinix.com" + ] } - ] + ], + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } } }, - "LinkProtocolGetDot1qResponseExample": { + "400_invalid_operation": { + "value": [ + { + "errorCode": "EQ-3044011", + "errorMessage": "Invalid Argument passed", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Only replace name operation is supported." + } + ] + }, + "RouteFilterGetAllChangesResponseExample": { "value": { "pagination": { - "offset": 5, + "offset": 0, "limit": 20, - "total": 40, - "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", - "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + "total": 4, + "next": null, + "previous": null }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTag": 200, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanTag": 257, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanTag": 250, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTag": 240, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] } }, { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTag": 240, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_UPDATE", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/name", + "value": "My-route-filter-v4-updated", + "previousValue": "My-route-filter-v4" + } + ] } ] } }, - "LinkProtocolGetVlanRangeResponseExample": { + "RouteFilterGetChangeResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_FILTER_CREATION", + "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER", + "name": "My-route-filter-v4", + "description": "Test filter", + "project": { + "projectId": 567 + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + } + }, + "RouteFilterGetConnectionsResponse": { "value": { "pagination": { - "offset": 5, + "offset": 0, "limit": 20, - "total": 40, - "next": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=25&limit=20,", - "previous": "/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d/linkProtocols?offset=0&limit=20" + "total": 1, + "next": null, + "previous": null + }, + "data": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f", + "type": "IP_VC", + "name": "test-connection", + "uuid": "05de355a-6c9d-4636-8d7d-7b7595821c15" + } + } + }, + "RouteFilterRulesGetAll": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 2, + "next": null, + "previous": null }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "8c589394-b0eb-4057-97dc-3bdb4f8ff6db", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/fc4fb78a-6b89-462d-a233-e75ef61a603f", - "uuid": "fc4fb78a-6b89-462d-a233-e75ef61a603f", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7f1da56d-e1ff-4b25-b542-883c7004e971", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "serviceToken": { - "href": "https://api.equinix.com/fabric/v4/serviceTokens/90f1af0e-134b-40d6-a007-e62cd6866373", - "uuid": "90f1af0e-134b-40d6-a007-e62cd6866373", - "bandwidth": 1000 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", + "name": "Private-subnet-filter-2", + "description": "Test rule", + "prefixMatch": "exact", + "action": "PERMIT", + "prefix": "192.168.10.0/24", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_FILTER_RULE_CREATION", + "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } }, { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", + "name": "Private-subnet-filter-2", + "description": "Test rule", + "prefixMatch": "orlonger", + "action": "PERMIT", + "prefix": "192.168.20.0/24", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_FILTER_RULE_CREATION", + "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } - }, - { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "connection": { - "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", - "bandwidth": 1000 - }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedDateTime": "2020-05-21T10:30:00Z" - } } ] } }, - "400_invalid_portId": { + "RouteFilterRuleCreateBgpIpv4Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" + } + }, + "RouteFilterRuleCreateBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" + }, + "action": "PERMIT", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "UpdateRouteFilterRuleIPv4": { + "value": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + }, + "RouteFilterRuleIpv4ReplaceResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefixMach": "exact", + "action": "PERMIT", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" + }, + "prefix": "192.168.0.0/24", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "RouteFilterRuleDeleteBgpIpv4PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "change": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_DELETION", + "uuid": "e8528788-14d3-4a7b-a740-99b702067485" + }, + "action": "PERMIT", + "prefix": "192.168.0.0/24", + "prefixMach": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser1", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z", + "deletedBy": "testuser1", + "deletedByEmail": "testuser@equinix.com", + "deletedByFullName": "testuser testuser", + "deletedDateTime": "2020-05-21T10:30:00Z" + } + } + }, + "400_transient_filter": { "value": [ { - "errorCode": "EQ-3035202", - "errorMessage": "Unable to fetch port details", + "errorCode": "EQ-3044015", + "errorMessage": "Cannot delete Route Filter Rule, Route Filter transient state", "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "The uuid requested could not be found in system. Please try again after sometime", - "additionalInfo": { - "property": "portUuid" - } + "details": "Cannot delete Route Filter Rule, Route filter is in transient state" } ] }, - "403-port-access": { + "PatchRouteFilterRulePrefixMatch": { "value": [ { - "errorCode": "EQ-3035002", - "errorMessage": "Access Forbidden", - "correlationId": "UnAuthorized User- Cannot perform action" + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger" } ] }, - "PortSearchByProjectId": { + "RouteFilterRulesGetAllChangesResponseExample": { "value": { - "filter": { - "or": [ - { - "and": [ - { - "operator": "=", - "property": "/project/projectId", - "values": [ - "30ad25e2-53dc-11ed-bdc3-0242ac120002" - ] - }, - { - "operator": "=", - "property": "/state", - "values": [ - "ACTIVE" - ] - }, - { - "operator": "=", - "property": "/settings/productCode", - "values": [ - "CX" - ] - } - ] - } - ] - }, "pagination": { - "limit": 25, "offset": 0, - "total": 0 + "limit": 20, + "total": 3, + "next": null, + "previous": null }, - "sort": [ + "data": [ { - "property": "/device/name", - "direction": "DESC" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + }, + { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a40085a4-f0cc-416c-af01-286f7f7ec736", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a40085a4-f0cc-416c-af01-286f7f7ec736", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger", + "previousValue": "exact" + } + ] + }, + { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "exact", + "previousValue": "orlonger" + } + ] } ] } }, + "RouteFilterRuleGetChangeResponseExample": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "status": "COMPLETED", + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "_system", + "updatedByEmail": null, + "updatedByFullName": null, + "updatedDateTime": "2020-05-21T10:30:00Z", + "data": { + "type": "BGP_IPv4_PREFIX_FILTER_RULE", + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/25", + "prefixMach": "exact", + "action": "PERMIT" + } + } + }, "CreateLabPackage": { "value": { "type": "XF_ROUTER", @@ -28615,7 +32729,7 @@ } } }, - "CreateProPackage": { + "CreateStandardPackage": { "value": { "type": "XF_ROUTER", "name": "My-Cloud-Router", @@ -28623,7 +32737,7 @@ "metroCode": "SV" }, "package": { - "code": "PRO" + "code": "STANDARD" }, "notifications": [ { @@ -28653,7 +32767,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28705,7 +32819,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28802,7 +32916,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -28847,16 +32961,6 @@ } } }, - "400_invalid_operation": { - "value": [ - { - "errorCode": "EQ-3040054", - "errorMessage": "Invalid Argument passed", - "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "Only replace name, replace package and replace notifications operations are supported." - } - ] - }, "CloudRouterActionResponse": { "value": { "type": "ROUTE_TABLE_ENTRY_UPDATE", @@ -29080,7 +33184,7 @@ { "errorCode": "EQ-2041022", "errorMessage": "The provided subnet is not valid.", - "details": "The provided subnet is overlapping to other connection in the same FCR.", + "details": "The provided subnet is overlapping with other connections in the same Fabric Cloud Router.", "correlationId": "5f9f9ab9-a6cb-4e8a-aa34-105cd4cb6cc8" } ] @@ -29145,7 +33249,7 @@ }, "equinixAsn": 30000, "package": { - "code": "PRO" + "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" @@ -29190,7 +33294,7 @@ "pagination": { "offset": 0, "limit": 20, - "total": 1 + "total": 2 }, "data": [ { @@ -29214,6 +33318,28 @@ "createdDateTime": "2022-02-10T00:14:47Z", "updatedDateTime": "2022-02-10T00:14:47Z" } + }, + { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", + "type": "ROUTER_PACKAGE", + "code": "STANDARD", + "description": "string", + "totalIPv4RoutesMax": 1000, + "totalIPv6RoutesMax": 100, + "staticIPv4RoutesMax": 150, + "staticIPv6RoutesMax": 150, + "naclsMax": 60, + "naclRulesMax": 1000, + "haSupported": true, + "routeFilterSupported": true, + "natType": "STATIC_NAT", + "vcCountMax": 10, + "crCountMax": 3, + "vcBandwidthMax": 10000, + "changeLog": { + "createdDateTime": "2023-02-10T00:14:47Z", + "updatedDateTime": "2023-02-10T00:14:47Z" + } } ] } @@ -30504,6 +34630,7 @@ "connections": [ { "href": "https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011", + "type": "EVPL_VC", "uuid": "06dbb0e3-e55d-4090-8aff-fc5654abaad0" } ], @@ -31051,6 +35178,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 1, "clientsPerSecondMax": 2000, + "accuracyUnit": "microseconds", + "accuracySla": -1, + "accuracyAvgMin": 1, + "accuracyAvgMax": 100, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31064,6 +35195,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 5, "clientsPerSecondMax": 1000, + "accuracyUnit": "microseconds", + "accuracySla": -1, + "accuracyAvgMin": 1, + "accuracyAvgMax": 100, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31077,6 +35212,10 @@ "type": "TIME_SERVICE_PACKAGE", "bandwidth": 5, "clientsPerSecondMax": 100, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31085,11 +35224,15 @@ } }, { - "href": "https://api.equinix.com/fabric/v4/precisiontimePackages/PTP_ENTERPRISE", + "href": "https://api.equinix.com/fabric/v4/timeServicePackages/PTP_ENTERPRISE", "code": "PTP_ENTERPRISE", "type": "TIME_SERVICE_PACKAGE", "bandwidth": 10, "clientsPerSecondMax": 20, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": { @@ -31102,11 +35245,15 @@ }, "servicePackageResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/precisiontimePackages/NTP_STANDARD", + "href": "https://api.equinix.com/fabric/v4/timeServicePackages/NTP_STANDARD", "code": "NTP_STANDARD", "type": "TIME_SERVICE_PACKAGE", "bandwidth": 10, "clientsPerSecondMax": 100, + "accuracyUnit": "microseconds", + "accuracySla": 50, + "accuracyAvgMin": 1, + "accuracyAvgMax": 10, "redundancySupported": true, "multiSubnetSupported": true, "changeLog": {