diff --git a/Makefile b/Makefile index 6ad01ee..a17d7f8 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,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.17" +OPENAPI_URL="https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/4.18" generate: clean fetch pre-spec-patch pull docker_generate build_client diff --git a/equinix-openapi-fabric-tests/pom.xml b/equinix-openapi-fabric-tests/pom.xml index 0022016..6374bc8 100644 --- a/equinix-openapi-fabric-tests/pom.xml +++ b/equinix-openapi-fabric-tests/pom.xml @@ -43,7 +43,7 @@ com.equinix equinix-openapi-fabric - 0.5.0 + 0.10.0 diff --git a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/CloudRoutersApiTest.java b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/CloudRoutersApiTest.java index e0cc869..98af4df 100644 --- a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/CloudRoutersApiTest.java +++ b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/CloudRoutersApiTest.java @@ -235,7 +235,7 @@ public static CloudRouter createRouter() throws ApiException { .project(new Project().projectId(user.getProjectId())) .account(new SimplifiedAccount().accountNumber(Long.valueOf(user.getAccountNumber()))); - CloudRouter cloudRouter = cloudRoutersApi.createCloudRouter(cloudRouterPostRequest); + CloudRouter cloudRouter = cloudRoutersApi.createCloudRouter(cloudRouterPostRequest, false); users.get(getCurrentUser()).getUserResources().addCloudRouterUuid(cloudRouter.getUuid()); assertEquals(200, cloudRoutersApi.getApiClient().getStatusCode()); diff --git a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/ConnectionsApiTest.java b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/ConnectionsApiTest.java index 54fc2b0..6faab2d 100644 --- a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/ConnectionsApiTest.java +++ b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/ConnectionsApiTest.java @@ -93,7 +93,7 @@ public void createConnectionVdColo() throws ApiException { .type(LinkProtocolType.DOT1Q) .vlanTag(vlanTag)))); - connection = connectionsApi.createConnection(connectionPostRequest); + connection = connectionsApi.createConnection(connectionPostRequest, false); if (connectionsApi.getApiClient().getStatusCode() == 201) { break; @@ -197,7 +197,7 @@ public static Connection createConnectionFCR2ToPort() throws ApiException { .type(LinkProtocolType.DOT1Q) .vlanTag(tag)))); - connection = connectionsApi.createConnection(connectionPostRequest); + connection = connectionsApi.createConnection(connectionPostRequest, false); if (connectionsApi.getApiClient().getStatusCode() == 201) { break; @@ -257,7 +257,7 @@ public static Connection createPort2SpConnection() throws ApiException { .vlanSTag(sTag) .vlanCTag(cTag)))); - connection = connectionsApi.createConnection(connectionPostRequest); + connection = connectionsApi.createConnection(connectionPostRequest, false); if (connectionsApi.getApiClient().getStatusCode() == 201) { break; @@ -333,7 +333,7 @@ public static Connection createPort2Port() throws ApiException { .type(LinkProtocolType.DOT1Q) .vlanTag(tagZside)))); - connection = connectionsApi.createConnection(connectionPostRequest); + connection = connectionsApi.createConnection(connectionPostRequest, false); if (connectionsApi.getApiClient().getStatusCode() == 201) { break; diff --git a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/NetworksApiTest.java b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/NetworksApiTest.java index a2d0112..6a70bd4 100644 --- a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/NetworksApiTest.java +++ b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/NetworksApiTest.java @@ -56,7 +56,7 @@ public Network createNetwork() throws ApiException { .notifications(singletonList(new SimplifiedNotification() .type(SimplifiedNotification.TypeEnum.ALL).emails(singletonList("test@equinix.com")))); - Network network = networksApi.createNetwork(networkPostRequest); + Network network = networksApi.createNetwork(networkPostRequest, false); assertEquals(201, networksApi.getApiClient().getStatusCode()); for (int i = 0; i < 5; i++) { diff --git a/equinix-openapi-fabric/.openapi-generator/FILES b/equinix-openapi-fabric/.openapi-generator/FILES index e5731e4..c95c265 100644 --- a/equinix-openapi-fabric/.openapi-generator/FILES +++ b/equinix-openapi-fabric/.openapi-generator/FILES @@ -76,6 +76,7 @@ docs/ConnectionPostRequest.md docs/ConnectionPriority.md docs/ConnectionRedundancy.md docs/ConnectionResponse.md +docs/ConnectionRouteAggregationData.md docs/ConnectionRouteEntryFilter.md docs/ConnectionRouteEntryFilters.md docs/ConnectionRouteEntryOrFilter.md @@ -103,6 +104,7 @@ docs/DirectConnectionIpv4.md docs/DirectConnectionIpv6.md docs/Direction.md docs/Duration.md +docs/EndCustomer.md docs/EquinixStatus.md docs/Error.md docs/Expression.md @@ -112,11 +114,14 @@ docs/FabricCloudRouterPrice.md docs/FilterBody.md docs/GeoCoordinates.md docs/GeoScopeType.md +docs/GetAllConnectionRouteAggregationsResponse.md docs/GetAllConnectionRouteFiltersResponse.md docs/GetAllStreamAssetResponse.md docs/GetAllStreamResponse.md docs/GetAllStreamSubscriptionResponse.md docs/GetResponse.md +docs/GetRouteAggregationGetConnectionsResponse.md +docs/GetRouteAggregationRulesResponse.md docs/GetRouteFilterGetConnectionsResponse.md docs/GetRouteFilterRulesResponse.md docs/GetSubscriptionsInStreamResponse.md @@ -219,6 +224,7 @@ docs/PrecisionTimeChangeOperation.md docs/PrecisionTimeOrder.md docs/PrecisionTimePackageRequest.md docs/PrecisionTimePackageResponse.md +docs/PrecisionTimePrice.md docs/PrecisionTimeServiceConnectionsResponse.md docs/PrecisionTimeServicePackagesResponse.md docs/PrecisionTimeServiceRequest.md @@ -240,6 +246,32 @@ docs/PtpAdvanceConfiguration.md docs/QueryDirection.md docs/RemoveOperation.md docs/ReplaceOperation.md +docs/RouteAggregationChangeData.md +docs/RouteAggregationChangeDataResponse.md +docs/RouteAggregationConnectionsData.md +docs/RouteAggregationRuleState.md +docs/RouteAggregationRulesApi.md +docs/RouteAggregationRulesBase.md +docs/RouteAggregationRulesChange.md +docs/RouteAggregationRulesChangeData.md +docs/RouteAggregationRulesChangeDataResponse.md +docs/RouteAggregationRulesChangeOperation.md +docs/RouteAggregationRulesData.md +docs/RouteAggregationRulesPatchRequestItem.md +docs/RouteAggregationRulesPostRequest.md +docs/RouteAggregationSortItem.md +docs/RouteAggregationState.md +docs/RouteAggregationsApi.md +docs/RouteAggregationsBase.md +docs/RouteAggregationsChange.md +docs/RouteAggregationsChangeOperation.md +docs/RouteAggregationsData.md +docs/RouteAggregationsDataProject.md +docs/RouteAggregationsPatchRequestItem.md +docs/RouteAggregationsSearchBase.md +docs/RouteAggregationsSearchBaseFilter.md +docs/RouteAggregationsSearchFilterItem.md +docs/RouteAggregationsSearchResponse.md docs/RouteFilterChangeData.md docs/RouteFilterChangeDataResponse.md docs/RouteFilterConnectionsData.md @@ -376,6 +408,7 @@ docs/StreamSubscription.md docs/StreamSubscriptionFilter.md docs/StreamSubscriptionPostRequest.md docs/StreamSubscriptionPutRequest.md +docs/StreamSubscriptionSelector.md docs/StreamSubscriptionSink.md docs/StreamSubscriptionSinkCredential.md docs/StreamSubscriptionSinkSetting.md @@ -392,6 +425,10 @@ docs/SubscriptionTrial.md docs/TimeServiceFilter.md docs/TimeServiceFilters.md docs/TimeServiceOrFilter.md +docs/TimeServicePrice.md +docs/TimeServicePriceConnection.md +docs/TimeServicePriceConnectionASide.md +docs/TimeServicePriceConnectionAccessPoint.md docs/TimeServiceSimpleExpression.md docs/TimeServiceSortBy.md docs/TimeServiceSortCriteria.md @@ -465,6 +502,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/RouteAggregationRulesApi.java +src/main/java/com/equinix/openapi/fabric/v4/api/RouteAggregationsApi.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 @@ -543,6 +582,7 @@ 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/ConnectionRouteAggregationData.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryFilter.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryFilters.java src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryOrFilter.java @@ -569,6 +609,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/DirectConnectionIpv4.java src/main/java/com/equinix/openapi/fabric/v4/model/DirectConnectionIpv6.java src/main/java/com/equinix/openapi/fabric/v4/model/Direction.java src/main/java/com/equinix/openapi/fabric/v4/model/Duration.java +src/main/java/com/equinix/openapi/fabric/v4/model/EndCustomer.java src/main/java/com/equinix/openapi/fabric/v4/model/EquinixStatus.java src/main/java/com/equinix/openapi/fabric/v4/model/Error.java src/main/java/com/equinix/openapi/fabric/v4/model/Expression.java @@ -578,11 +619,14 @@ src/main/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterPrice.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/GetAllConnectionRouteAggregationsResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetAllStreamAssetResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetAllStreamResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetAllStreamSubscriptionResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/GetResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationGetConnectionsResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationRulesResponse.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/GetSubscriptionsInStreamResponse.java @@ -679,6 +723,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeChangeOperation.j src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeOrder.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePackageRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePackageResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePrice.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponse.java src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceRequest.java @@ -699,6 +744,30 @@ 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/RouteAggregationChangeData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeDataResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationConnectionsData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRuleState.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesBase.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChange.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeDataResponse.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeOperation.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPatchRequestItem.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPostRequest.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationSortItem.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationState.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsBase.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChange.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChangeOperation.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsData.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsDataProject.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsPatchRequestItem.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBase.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBaseFilter.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchFilterItem.java +src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchResponse.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/RouteFilterConnectionsData.java @@ -829,6 +898,7 @@ src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscription.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionFilter.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequest.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequest.java +src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSelector.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSink.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSinkCredential.java src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSinkSetting.java @@ -843,6 +913,10 @@ src/main/java/com/equinix/openapi/fabric/v4/model/SubscriptionTrial.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceFilter.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceFilters.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceOrFilter.java +src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePrice.java +src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnection.java +src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionASide.java +src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionAccessPoint.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceSimpleExpression.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceSortBy.java src/main/java/com/equinix/openapi/fabric/v4/model/TimeServiceSortCriteria.java @@ -890,6 +964,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/RouteAggregationRulesApiTest.java +src/test/java/com/equinix/openapi/fabric/v4/api/RouteAggregationsApiTest.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 @@ -966,6 +1042,7 @@ 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/ConnectionRouteAggregationDataTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryFilterTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryFiltersTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteEntryOrFilterTest.java @@ -993,6 +1070,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/DirectConnectionIpv4Test.java src/test/java/com/equinix/openapi/fabric/v4/model/DirectConnectionIpv6Test.java src/test/java/com/equinix/openapi/fabric/v4/model/DirectionTest.java src/test/java/com/equinix/openapi/fabric/v4/model/DurationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/EndCustomerTest.java src/test/java/com/equinix/openapi/fabric/v4/model/EquinixStatusTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ErrorTest.java src/test/java/com/equinix/openapi/fabric/v4/model/ExpressionTest.java @@ -1002,11 +1080,14 @@ src/test/java/com/equinix/openapi/fabric/v4/model/FabricCloudRouterPriceTest.jav 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/GetAllConnectionRouteAggregationsResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteFiltersResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetAllStreamAssetResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetAllStreamResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetAllStreamSubscriptionResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/GetResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationGetConnectionsResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationRulesResponseTest.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/GetSubscriptionsInStreamResponseTest.java @@ -1103,6 +1184,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeChangeOperationTe src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeOrderTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePackageRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePackageResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePriceTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceConnectionsResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServicePackagesResponseTest.java src/test/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceRequestTest.java @@ -1123,6 +1205,30 @@ 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/RouteAggregationChangeDataResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationConnectionsDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRuleStateTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesBaseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeDataResponseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeOperationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPatchRequestItemTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPostRequestTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationSortItemTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationStateTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsBaseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChangeOperationTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChangeTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsDataProjectTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsDataTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsPatchRequestItemTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBaseFilterTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBaseTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchFilterItemTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchResponseTest.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/RouteFilterConnectionsDataTest.java @@ -1251,6 +1357,7 @@ src/test/java/com/equinix/openapi/fabric/v4/model/StreamPutRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionFilterTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequestTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequestTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSelectorTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSinkCredentialTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSinkSettingTest.java src/test/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSinkTest.java @@ -1267,6 +1374,10 @@ src/test/java/com/equinix/openapi/fabric/v4/model/SubscriptionTrialTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceFilterTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceFiltersTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceOrFilterTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionASideTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionAccessPointTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionTest.java +src/test/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceSimpleExpressionTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceSortByTest.java src/test/java/com/equinix/openapi/fabric/v4/model/TimeServiceSortCriteriaTest.java diff --git a/equinix-openapi-fabric/README.md b/equinix-openapi-fabric/README.md index c65af28..c18f0b5 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.17 +- API version: 4.18 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.

Integrations (SDKs, Tools) links:
Fabric Java SDK
Fabric Go SDK
Fabric Python SDK
Equinix Terraform Provider
Fabric Terraform Modules
Equinix Pulumi Provider
@@ -98,8 +98,9 @@ public class Example { CloudRoutersApi apiInstance = new CloudRoutersApi(defaultClient); CloudRouterPostRequest cloudRouterPostRequest = new CloudRouterPostRequest(); // CloudRouterPostRequest | + Boolean dryRun = false; // Boolean | option to verify that API calls will succeed try { - CloudRouter result = apiInstance.createCloudRouter(cloudRouterPostRequest); + CloudRouter result = apiInstance.createCloudRouter(cloudRouterPostRequest, dryRun); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CloudRoutersApi#createCloudRouter"); @@ -120,18 +121,18 @@ All URIs are relative to *https://api.equinix.com* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *CloudRoutersApi* | [**createCloudRouter**](docs/CloudRoutersApi.md#createCloudRouter) | **POST** /fabric/v4/routers | Create Routers -*CloudRoutersApi* | [**createCloudRouterAction**](docs/CloudRoutersApi.md#createCloudRouterAction) | **POST** /fabric/v4/routers/{routerId}/actions | Route table actions +*CloudRoutersApi* | [**createCloudRouterAction**](docs/CloudRoutersApi.md#createCloudRouterAction) | **POST** /fabric/v4/routers/{routerId}/actions | Create Route Table Action *CloudRoutersApi* | [**deleteCloudRouterByUuid**](docs/CloudRoutersApi.md#deleteCloudRouterByUuid) | **DELETE** /fabric/v4/routers/{routerId} | Delete Routers -*CloudRoutersApi* | [**getCloudRouterActions**](docs/CloudRoutersApi.md#getCloudRouterActions) | **GET** /fabric/v4/routers/{routerId}/actions | Get actions -*CloudRoutersApi* | [**getCloudRouterActionsByUuid**](docs/CloudRoutersApi.md#getCloudRouterActionsByUuid) | **GET** /fabric/v4/routers/{routerId}/actions/{actionId} | Get actions +*CloudRoutersApi* | [**getCloudRouterActions**](docs/CloudRoutersApi.md#getCloudRouterActions) | **GET** /fabric/v4/routers/{routerId}/actions | Get Route Table Actions +*CloudRoutersApi* | [**getCloudRouterActionsByUuid**](docs/CloudRoutersApi.md#getCloudRouterActionsByUuid) | **GET** /fabric/v4/routers/{routerId}/actions/{actionId} | Get Route Table Action by ID *CloudRoutersApi* | [**getCloudRouterByUuid**](docs/CloudRoutersApi.md#getCloudRouterByUuid) | **GET** /fabric/v4/routers/{routerId} | Get Routers *CloudRoutersApi* | [**getCloudRouterPackageByCode**](docs/CloudRoutersApi.md#getCloudRouterPackageByCode) | **GET** /fabric/v4/routerPackages/{routerPackageCode} | Get Package Details *CloudRoutersApi* | [**getCloudRouterPackages**](docs/CloudRoutersApi.md#getCloudRouterPackages) | **GET** /fabric/v4/routerPackages | List Packages *CloudRoutersApi* | [**searchCloudRouterRoutes**](docs/CloudRoutersApi.md#searchCloudRouterRoutes) | **POST** /fabric/v4/routers/{routerId}/routes/search | Search Route Table *CloudRoutersApi* | [**searchCloudRouters**](docs/CloudRoutersApi.md#searchCloudRouters) | **POST** /fabric/v4/routers/search | Search Routers -*CloudRoutersApi* | [**searchConnectionAdvertisedRoutes**](docs/CloudRoutersApi.md#searchConnectionAdvertisedRoutes) | **POST** /fabric/v4/connections/{connectionId}/advertisedRoutes/search | search advertised -*CloudRoutersApi* | [**searchConnectionReceivedRoutes**](docs/CloudRoutersApi.md#searchConnectionReceivedRoutes) | **POST** /fabric/v4/connections/{connectionId}/receivedRoutes/search | Search received -*CloudRoutersApi* | [**searchRouterActions**](docs/CloudRoutersApi.md#searchRouterActions) | **POST** /fabric/v4/routers/{routerId}/actions/search | Search actions +*CloudRoutersApi* | [**searchConnectionAdvertisedRoutes**](docs/CloudRoutersApi.md#searchConnectionAdvertisedRoutes) | **POST** /fabric/v4/connections/{connectionId}/advertisedRoutes/search | Search Advertised Routes +*CloudRoutersApi* | [**searchConnectionReceivedRoutes**](docs/CloudRoutersApi.md#searchConnectionReceivedRoutes) | **POST** /fabric/v4/connections/{connectionId}/receivedRoutes/search | Search Received Routes +*CloudRoutersApi* | [**searchRouterActions**](docs/CloudRoutersApi.md#searchRouterActions) | **POST** /fabric/v4/routers/{routerId}/actions/search | Search Route Table Actions *CloudRoutersApi* | [**updateCloudRouterByUuid**](docs/CloudRoutersApi.md#updateCloudRouterByUuid) | **PATCH** /fabric/v4/routers/{routerId} | Update Routers *ConnectionsApi* | [**createConnection**](docs/ConnectionsApi.md#createConnection) | **POST** /fabric/v4/connections | Create Connection *ConnectionsApi* | [**createConnectionAction**](docs/ConnectionsApi.md#createConnectionAction) | **POST** /fabric/v4/connections/{connectionId}/actions | Connection Actions @@ -170,25 +171,46 @@ Class | Method | HTTP request | Description *PrecisionTimeApi* | [**searchTimeServices**](docs/PrecisionTimeApi.md#searchTimeServices) | **POST** /fabric/v4/timeServices/search | Search Time Services *PrecisionTimeApi* | [**updateTimeServicesById**](docs/PrecisionTimeApi.md#updateTimeServicesById) | **PATCH** /fabric/v4/timeServices/{serviceId} | Update By ID. *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 +*RouteAggregationRulesApi* | [**createRouteAggregationRule**](docs/RouteAggregationRulesApi.md#createRouteAggregationRule) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | Create RARule +*RouteAggregationRulesApi* | [**createRouteAggregationRulesInBulk**](docs/RouteAggregationRulesApi.md#createRouteAggregationRulesInBulk) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk | Bulk RARules +*RouteAggregationRulesApi* | [**deleteRouteAggregationRuleByUuid**](docs/RouteAggregationRulesApi.md#deleteRouteAggregationRuleByUuid) | **DELETE** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | DeleteRARule +*RouteAggregationRulesApi* | [**getRouteAggregationRuleByUuid**](docs/RouteAggregationRulesApi.md#getRouteAggregationRuleByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | GetRARule By UUID +*RouteAggregationRulesApi* | [**getRouteAggregationRuleChangeByUuid**](docs/RouteAggregationRulesApi.md#getRouteAggregationRuleChangeByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes/{changeId} | Get Change By ID +*RouteAggregationRulesApi* | [**getRouteAggregationRuleChanges**](docs/RouteAggregationRulesApi.md#getRouteAggregationRuleChanges) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes | Get All Changes +*RouteAggregationRulesApi* | [**getRouteAggregationRules**](docs/RouteAggregationRulesApi.md#getRouteAggregationRules) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | GetRARules +*RouteAggregationRulesApi* | [**patchRouteAggregationRuleByUuid**](docs/RouteAggregationRulesApi.md#patchRouteAggregationRuleByUuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | PatchRARule +*RouteAggregationRulesApi* | [**replaceRouteAggregationRuleByUuid**](docs/RouteAggregationRulesApi.md#replaceRouteAggregationRuleByUuid) | **PUT** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | ReplaceRARule +*RouteAggregationsApi* | [**attachConnectionRouteAggregation**](docs/RouteAggregationsApi.md#attachConnectionRouteAggregation) | **PUT** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Attach Aggregation +*RouteAggregationsApi* | [**createRouteAggregation**](docs/RouteAggregationsApi.md#createRouteAggregation) | **POST** /fabric/v4/routeAggregations | Create Aggregations +*RouteAggregationsApi* | [**deleteRouteAggregationByUuid**](docs/RouteAggregationsApi.md#deleteRouteAggregationByUuid) | **DELETE** /fabric/v4/routeAggregations/{routeAggregationId} | Delete Aggregation +*RouteAggregationsApi* | [**detachConnectionRouteAggregation**](docs/RouteAggregationsApi.md#detachConnectionRouteAggregation) | **DELETE** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Detach Aggregation +*RouteAggregationsApi* | [**getConnectionRouteAggregationByUuid**](docs/RouteAggregationsApi.md#getConnectionRouteAggregationByUuid) | **GET** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Get Aggregation +*RouteAggregationsApi* | [**getConnectionRouteAggregations**](docs/RouteAggregationsApi.md#getConnectionRouteAggregations) | **GET** /fabric/v4/connections/{connectionId}/routeAggregations | Get All Aggregations +*RouteAggregationsApi* | [**getRouteAggregationByUuid**](docs/RouteAggregationsApi.md#getRouteAggregationByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId} | Get Aggregation +*RouteAggregationsApi* | [**getRouteAggregationChangeByUuid**](docs/RouteAggregationsApi.md#getRouteAggregationChangeByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes/{changeId} | Get Change By ID +*RouteAggregationsApi* | [**getRouteAggregationChanges**](docs/RouteAggregationsApi.md#getRouteAggregationChanges) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes | Get All Changes +*RouteAggregationsApi* | [**getRouteAggregationConnections**](docs/RouteAggregationsApi.md#getRouteAggregationConnections) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/connections | Get All Connections on Route Aggregation +*RouteAggregationsApi* | [**patchRouteAggregationByUuid**](docs/RouteAggregationsApi.md#patchRouteAggregationByUuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId} | Patch Aggregation +*RouteAggregationsApi* | [**searchRouteAggregations**](docs/RouteAggregationsApi.md#searchRouteAggregations) | **POST** /fabric/v4/routeAggregations/search | Search Aggregations +*RouteFilterRulesApi* | [**createRouteFilterRule**](docs/RouteFilterRulesApi.md#createRouteFilterRule) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Create Route Filter Rule +*RouteFilterRulesApi* | [**createRouteFilterRulesInBulk**](docs/RouteFilterRulesApi.md#createRouteFilterRulesInBulk) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk | Bulk Create Route Filter Rules +*RouteFilterRulesApi* | [**deleteRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#deleteRouteFilterRuleByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Delete Route Filter Rule +*RouteFilterRulesApi* | [**getRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#getRouteFilterRuleByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Get Route Filter Rule 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 +*RouteFilterRulesApi* | [**getRouteFilterRules**](docs/RouteFilterRulesApi.md#getRouteFilterRules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Get Route Filter Rules +*RouteFilterRulesApi* | [**patchRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#patchRouteFilterRuleByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Patch Route Filter Rule +*RouteFilterRulesApi* | [**replaceRouteFilterRuleByUuid**](docs/RouteFilterRulesApi.md#replaceRouteFilterRuleByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Replace Route Filter Rule *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* | [**getConnectionRouteFilters**](docs/RouteFiltersApi.md#getConnectionRouteFilters) | **GET** /fabric/v4/connections/{connectionId}/routeFilters | Get All Route Filters +*RouteFiltersApi* | [**getRouteFilterByUuid**](docs/RouteFiltersApi.md#getRouteFilterByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId} | Get Route 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* | [**getRouteFilterConnections**](docs/RouteFiltersApi.md#getRouteFilterConnections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get All Connections on Route Filter *RouteFiltersApi* | [**patchRouteFilterByUuid**](docs/RouteFiltersApi.md#patchRouteFilterByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter *RouteFiltersApi* | [**searchRouteFilters**](docs/RouteFiltersApi.md#searchRouteFilters) | **POST** /fabric/v4/routeFilters/search | Search Route Filters *RoutingProtocolsApi* | [**createConnectionRoutingProtocol**](docs/RoutingProtocolsApi.md#createConnectionRoutingProtocol) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols | Create Protocol @@ -310,6 +332,7 @@ Class | Method | HTTP request | Description - [ConnectionPriority](docs/ConnectionPriority.md) - [ConnectionRedundancy](docs/ConnectionRedundancy.md) - [ConnectionResponse](docs/ConnectionResponse.md) + - [ConnectionRouteAggregationData](docs/ConnectionRouteAggregationData.md) - [ConnectionRouteEntryFilter](docs/ConnectionRouteEntryFilter.md) - [ConnectionRouteEntryFilters](docs/ConnectionRouteEntryFilters.md) - [ConnectionRouteEntryOrFilter](docs/ConnectionRouteEntryOrFilter.md) @@ -336,6 +359,7 @@ Class | Method | HTTP request | Description - [DirectConnectionIpv6](docs/DirectConnectionIpv6.md) - [Direction](docs/Direction.md) - [Duration](docs/Duration.md) + - [EndCustomer](docs/EndCustomer.md) - [EquinixStatus](docs/EquinixStatus.md) - [Error](docs/Error.md) - [Expression](docs/Expression.md) @@ -345,11 +369,14 @@ Class | Method | HTTP request | Description - [FilterBody](docs/FilterBody.md) - [GeoCoordinates](docs/GeoCoordinates.md) - [GeoScopeType](docs/GeoScopeType.md) + - [GetAllConnectionRouteAggregationsResponse](docs/GetAllConnectionRouteAggregationsResponse.md) - [GetAllConnectionRouteFiltersResponse](docs/GetAllConnectionRouteFiltersResponse.md) - [GetAllStreamAssetResponse](docs/GetAllStreamAssetResponse.md) - [GetAllStreamResponse](docs/GetAllStreamResponse.md) - [GetAllStreamSubscriptionResponse](docs/GetAllStreamSubscriptionResponse.md) - [GetResponse](docs/GetResponse.md) + - [GetRouteAggregationGetConnectionsResponse](docs/GetRouteAggregationGetConnectionsResponse.md) + - [GetRouteAggregationRulesResponse](docs/GetRouteAggregationRulesResponse.md) - [GetRouteFilterGetConnectionsResponse](docs/GetRouteFilterGetConnectionsResponse.md) - [GetRouteFilterRulesResponse](docs/GetRouteFilterRulesResponse.md) - [GetSubscriptionsInStreamResponse](docs/GetSubscriptionsInStreamResponse.md) @@ -446,6 +473,7 @@ Class | Method | HTTP request | Description - [PrecisionTimeOrder](docs/PrecisionTimeOrder.md) - [PrecisionTimePackageRequest](docs/PrecisionTimePackageRequest.md) - [PrecisionTimePackageResponse](docs/PrecisionTimePackageResponse.md) + - [PrecisionTimePrice](docs/PrecisionTimePrice.md) - [PrecisionTimeServiceConnectionsResponse](docs/PrecisionTimeServiceConnectionsResponse.md) - [PrecisionTimeServicePackagesResponse](docs/PrecisionTimeServicePackagesResponse.md) - [PrecisionTimeServiceRequest](docs/PrecisionTimeServiceRequest.md) @@ -466,6 +494,30 @@ Class | Method | HTTP request | Description - [QueryDirection](docs/QueryDirection.md) - [RemoveOperation](docs/RemoveOperation.md) - [ReplaceOperation](docs/ReplaceOperation.md) + - [RouteAggregationChangeData](docs/RouteAggregationChangeData.md) + - [RouteAggregationChangeDataResponse](docs/RouteAggregationChangeDataResponse.md) + - [RouteAggregationConnectionsData](docs/RouteAggregationConnectionsData.md) + - [RouteAggregationRuleState](docs/RouteAggregationRuleState.md) + - [RouteAggregationRulesBase](docs/RouteAggregationRulesBase.md) + - [RouteAggregationRulesChange](docs/RouteAggregationRulesChange.md) + - [RouteAggregationRulesChangeData](docs/RouteAggregationRulesChangeData.md) + - [RouteAggregationRulesChangeDataResponse](docs/RouteAggregationRulesChangeDataResponse.md) + - [RouteAggregationRulesChangeOperation](docs/RouteAggregationRulesChangeOperation.md) + - [RouteAggregationRulesData](docs/RouteAggregationRulesData.md) + - [RouteAggregationRulesPatchRequestItem](docs/RouteAggregationRulesPatchRequestItem.md) + - [RouteAggregationRulesPostRequest](docs/RouteAggregationRulesPostRequest.md) + - [RouteAggregationSortItem](docs/RouteAggregationSortItem.md) + - [RouteAggregationState](docs/RouteAggregationState.md) + - [RouteAggregationsBase](docs/RouteAggregationsBase.md) + - [RouteAggregationsChange](docs/RouteAggregationsChange.md) + - [RouteAggregationsChangeOperation](docs/RouteAggregationsChangeOperation.md) + - [RouteAggregationsData](docs/RouteAggregationsData.md) + - [RouteAggregationsDataProject](docs/RouteAggregationsDataProject.md) + - [RouteAggregationsPatchRequestItem](docs/RouteAggregationsPatchRequestItem.md) + - [RouteAggregationsSearchBase](docs/RouteAggregationsSearchBase.md) + - [RouteAggregationsSearchBaseFilter](docs/RouteAggregationsSearchBaseFilter.md) + - [RouteAggregationsSearchFilterItem](docs/RouteAggregationsSearchFilterItem.md) + - [RouteAggregationsSearchResponse](docs/RouteAggregationsSearchResponse.md) - [RouteFilterChangeData](docs/RouteFilterChangeData.md) - [RouteFilterChangeDataResponse](docs/RouteFilterChangeDataResponse.md) - [RouteFilterConnectionsData](docs/RouteFilterConnectionsData.md) @@ -596,6 +648,7 @@ Class | Method | HTTP request | Description - [StreamSubscriptionFilter](docs/StreamSubscriptionFilter.md) - [StreamSubscriptionPostRequest](docs/StreamSubscriptionPostRequest.md) - [StreamSubscriptionPutRequest](docs/StreamSubscriptionPutRequest.md) + - [StreamSubscriptionSelector](docs/StreamSubscriptionSelector.md) - [StreamSubscriptionSink](docs/StreamSubscriptionSink.md) - [StreamSubscriptionSinkCredential](docs/StreamSubscriptionSinkCredential.md) - [StreamSubscriptionSinkSetting](docs/StreamSubscriptionSinkSetting.md) @@ -610,6 +663,10 @@ Class | Method | HTTP request | Description - [TimeServiceFilter](docs/TimeServiceFilter.md) - [TimeServiceFilters](docs/TimeServiceFilters.md) - [TimeServiceOrFilter](docs/TimeServiceOrFilter.md) + - [TimeServicePrice](docs/TimeServicePrice.md) + - [TimeServicePriceConnection](docs/TimeServicePriceConnection.md) + - [TimeServicePriceConnectionASide](docs/TimeServicePriceConnectionASide.md) + - [TimeServicePriceConnectionAccessPoint](docs/TimeServicePriceConnectionAccessPoint.md) - [TimeServiceSimpleExpression](docs/TimeServiceSimpleExpression.md) - [TimeServiceSortBy](docs/TimeServiceSortBy.md) - [TimeServiceSortCriteria](docs/TimeServiceSortCriteria.md) diff --git a/equinix-openapi-fabric/api/openapi.yaml b/equinix-openapi-fabric/api/openapi.yaml index 2b72983..7d3d095 100644 --- a/equinix-openapi-fabric/api/openapi.yaml +++ b/equinix-openapi-fabric/api/openapi.yaml @@ -22,7 +22,7 @@ info: url: https://developer.equinix.com/agreement termsOfService: https://www.equinix.com/about/legal/terms title: Equinix Fabric API v4 - version: "4.17" + version: "4.18" externalDocs: description: Find more information on Equinix Developer Portal url: https://developer.equinix.com @@ -32,7 +32,7 @@ servers: security: - BearerAuth: [] tags: -- description: Cloud Routers Preview +- description: Cloud Routers name: Cloud Routers - description: Connections name: Connections @@ -40,10 +40,14 @@ tags: name: Metros - description: Ports name: Ports -- description: Precision Time Preview +- description: Precision Time Beta name: Precision Time - description: Prices name: Prices +- description: Route Filter Rules + name: Route Filter Rules +- description: Route Filters + name: Route Filters - description: Routing Protocols name: Routing Protocols - description: Service Profiles @@ -61,7 +65,16 @@ paths: post: description: This API provides capability to create user's virtual connection operationId: createConnection - parameters: [] + parameters: + - description: option to verify that API calls will succeed + explode: true + in: query + name: dryRun + required: false + schema: + default: false + type: boolean + style: form requestBody: content: application/json: @@ -264,10 +277,23 @@ paths: Fcr2Metal-Network: $ref: '#/components/examples/Fcr2Metal-Network' value: null + Connection-Colo2Sp-GenericDryRunCreate: + $ref: '#/components/examples/CreateConnectionDryRunRequest' + value: null schema: $ref: '#/components/schemas/ConnectionPostRequest' required: true responses: + "200": + content: + application/json: + examples: + ConnectionDryRun-Colo2Sp-Generic: + $ref: '#/components/examples/CreateConnectionDryRunResponse' + value: null + schema: + $ref: '#/components/schemas/Connection' + description: Successful operation "201": content: application/json: @@ -396,6 +422,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -737,6 +766,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -815,6 +847,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -844,7 +879,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Not Found - summary: search advertised + summary: Search Advertised Routes tags: - Cloud Routers x-content-type: application/json @@ -893,6 +928,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -922,7 +960,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Not Found - summary: Search received + summary: Search Received Routes tags: - Cloud Routers x-content-type: application/json @@ -976,6 +1014,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1075,6 +1116,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1281,6 +1325,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1379,6 +1426,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1497,6 +1547,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1610,6 +1663,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1725,6 +1781,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -1861,6 +1920,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -2400,6 +2462,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRun: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -2482,6 +2547,18 @@ paths: virtualPortProduct: $ref: '#/components/examples/VirtualPortProduct' value: null + precisionTimeProductNtpStandardPackageCode: + $ref: '#/components/examples/PrecisionTimeNtpStandardPackage' + value: null + precisionTimeProductNtpEnterprisePackageCode: + $ref: '#/components/examples/PrecisionTimeNtpEnterprisePackage' + value: null + precisionTimeProductPtpStandardPackageCode: + $ref: '#/components/examples/PrecisionTimePtpStandardPackage' + value: null + precisionTimeProductPtpEnterprisePackageCode: + $ref: '#/components/examples/PrecisionTimePtpEnterprisePackage' + value: null schema: $ref: '#/components/schemas/FilterBody' required: true @@ -2502,6 +2579,9 @@ paths: virtualPort: $ref: '#/components/examples/VirtualPort' value: null + precisionTimeService: + $ref: '#/components/examples/PrecisionTimeService' + value: null schema: $ref: '#/components/schemas/PriceSearchResponse' description: Successful operation @@ -3780,42 +3860,61 @@ paths: description: Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services. operationId: createServiceToken - parameters: [] + parameters: + - description: option to verify that API calls will succeed + explode: true + in: query + name: dryRun + required: false + schema: + default: false + type: boolean + style: form requestBody: content: application/json: examples: - AsideTokenWithQnQExample: + AsideTokenWithQnQ: $ref: '#/components/examples/createServiceTokenWithQnQ' value: null - AsideTokenWithDot1QExample: + AsideTokenWithDot1Q: $ref: '#/components/examples/createServiceTokenWithDot1Q' value: null - AsideTokenWithVxlanExample: + AsideTokenWithVxlan: $ref: '#/components/examples/createServiceTokenWithVxlan' value: null - ZsideTokenWithQnQExample: + ZsideTokenWithQnQ: $ref: '#/components/examples/createZsideServiceTokenWithQnQ' value: null - ZsideTokenWithQnQ-CrhExample: - $ref: '#/components/examples/createZsideServiceTokenWithQnQ-CRH' - value: null - ZsideTokenWithDot1QExample: + ZsideTokenWithDot1Q: $ref: '#/components/examples/createZsideServiceTokenWithDot1Q' value: null - ZsideTokenWithVxlanExample: + ZsideTokenWithVxlan: $ref: '#/components/examples/createZsideServiceTokenWithVxlan' value: null - ZsideTokenWithVDExample: + ZsideTokenWithVD: $ref: '#/components/examples/createZsideServiceTokenWithVD' value: null - ZsideTokenWithNetworkExample: + ZsideTokenWithNetwork: $ref: '#/components/examples/createZsideServiceTokenWithNetwork' value: null + AsideTokenWithDot1QDryRunCreate: + $ref: '#/components/examples/createServiceTokenDryRunRequest' + value: null schema: $ref: '#/components/schemas/ServiceToken' required: true responses: + "200": + content: + application/json: + examples: + ServiceTokenDryRun: + $ref: '#/components/examples/createServiceTokenDryRunResponse' + value: null + schema: + $ref: '#/components/schemas/ServiceToken' + description: Successful operation "201": content: application/json: @@ -3833,6 +3932,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRunExample: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -3902,6 +4004,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRunExample: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -3986,6 +4091,9 @@ paths: example: $ref: '#/components/examples/400' value: null + dryRunExample: + $ref: '#/components/examples/400_dry_run' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -4105,7 +4213,7 @@ paths: /fabric/v4/metros/{metroCode}: get: description: "GET Metros retrieves all Equinix Fabric metros, as well as latency\ - \ data between each metro location. ." + \ data between each metro location." operationId: getMetroByCode parameters: - description: Metro Code @@ -4591,11 +4699,11 @@ paths: - Ports x-content-type: application/json x-accepts: application/json - /fabric/v4/connections/{connectionId}/routeFilters: + /fabric/v4/connections/{connectionId}/routeAggregations: get: - description: This API provides capability to view all Route Filters attached + description: This API provides capability to view all Route Aggregations attached to a Connection - operationId: getConnectionRouteFilters + operationId: getConnectionRouteAggregations parameters: - description: Connection Id explode: false @@ -4610,11 +4718,11 @@ paths: content: application/json: examples: - ConnectionRouteFiltersResponse: - $ref: '#/components/examples/ConnectionRouteFiltersGetAll' + ConnectionRouteAggregationsResponse: + $ref: '#/components/examples/ConnectionRouteAggregationsGetAll' value: null schema: - $ref: '#/components/schemas/GetAllConnectionRouteFiltersResponse' + $ref: '#/components/schemas/GetAllConnectionRouteAggregationsResponse' description: Successful operation "400": content: @@ -4658,7 +4766,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Route Filter ID Not Found + description: Route Aggregation ID Not Found "415": content: application/json: @@ -4679,22 +4787,23 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get All RouteFilters + summary: Get All Aggregations tags: - - Route Filters + - Route Aggregations x-accepts: application/json - /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}: + /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId}: delete: - description: This API provides capability to detach a Route Filter from a Connection - operationId: detachConnectionRouteFilter + description: This API provides capability to detach a Route Aggregation from + a Connection + operationId: detachConnectionRouteAggregation parameters: - - description: Route Filters Id + - description: Route Aggregations Id explode: false in: path - name: routeFilterId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouteFilterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple - description: Connection Id explode: false @@ -4709,14 +4818,11 @@ paths: content: application/json: examples: - ConnectionRouteFilterDetachInboundResponse: - $ref: '#/components/examples/DetachConnectionRouteFilterInboundResponse' - value: null - ConnectionRouteFilterDetachOutboundResponse: - $ref: '#/components/examples/DetachConnectionRouteFilterOutboundResponse' + ConnectionRouteAggregationDetachResponse: + $ref: '#/components/examples/DetachConnectionRouteAggregationResponse' value: null schema: - $ref: '#/components/schemas/ConnectionRouteFilterData' + $ref: '#/components/schemas/ConnectionRouteAggregationData' description: Successful operation "400": content: @@ -4757,7 +4863,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Route Filter ID Not Found + description: Route Aggregation ID Not Found "415": content: application/json: @@ -4778,22 +4884,22 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Detach Route Filter + summary: Detach Aggregation tags: - - Route Filters + - Route Aggregations x-accepts: application/json get: - description: This API provides capability to view a specific Route Filter attached - to a Connection - operationId: getConnectionRouteFilterByUuid + description: This API provides capability to view a specific Route Aggregation + attached to a Connection + operationId: getConnectionRouteAggregationByUuid parameters: - - description: Route Filters Id + - description: Route Aggregations Id explode: false in: path - name: routeFilterId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouteFilterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple - description: Connection Id explode: false @@ -4808,11 +4914,199 @@ paths: content: application/json: examples: - ConnectionRouteFilterAttachResponse: - $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' + ConnectionRouteAggregationAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteAggregationsResponse' value: null schema: - $ref: '#/components/schemas/ConnectionRouteFilterData' + $ref: '#/components/schemas/ConnectionRouteAggregationData' + description: Successful operation + "400": + content: + application/json: + examples: + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' + 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_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Aggregation 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: Get Aggregation + tags: + - Route Aggregations + x-accepts: application/json + put: + description: This API provides capability to attach a Route Aggregation to a + Connection + operationId: attachConnectionRouteAggregation + parameters: + - description: Route Aggregations Id + explode: false + in: path + name: routeAggregationId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Connection Id + explode: false + in: path + name: connectionId + required: true + schema: + $ref: '#/components/schemas/ConnectionId' + style: simple + responses: + "202": + content: + application/json: + examples: + ConnectionRouteAggregationAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteAggregationsResponse' + value: null + schema: + $ref: '#/components/schemas/ConnectionRouteAggregationData' + description: Successful operation + "400": + content: + application/json: + examples: + TransientState: + $ref: '#/components/examples/400_transient_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_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Aggregation 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: Attach Aggregation + tags: + - Route Aggregations + x-accepts: application/json + /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: + ConnectionRouteFiltersResponse: + $ref: '#/components/examples/ConnectionRouteFiltersGetAll' + value: null + schema: + $ref: '#/components/schemas/GetAllConnectionRouteFiltersResponse' description: Successful operation "400": content: @@ -4877,13 +5171,14 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Route Filter + summary: Get All Route Filters tags: - Route Filters x-accepts: application/json - put: - description: This API provides capability to attach a Route Filter to a Connection - operationId: attachConnectionRouteFilter + /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}: + delete: + description: This API provides capability to detach a Route Filter from a Connection + operationId: detachConnectionRouteFilter parameters: - description: Route Filters Id explode: false @@ -4901,26 +5196,16 @@ paths: schema: $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: "202": content: application/json: examples: - ConnectionRouteFilterAttachResponse: - $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' + ConnectionRouteFilterDetachInboundResponse: + $ref: '#/components/examples/DetachConnectionRouteFilterInboundResponse' + value: null + ConnectionRouteFilterDetachOutboundResponse: + $ref: '#/components/examples/DetachConnectionRouteFilterOutboundResponse' value: null schema: $ref: '#/components/schemas/ConnectionRouteFilterData' @@ -4929,10 +5214,7 @@ paths: content: application/json: examples: - InvalidDirection: - $ref: '#/components/examples/400_invalid_direction' - value: null - TransientState: + example: $ref: '#/components/examples/400_transient_state' value: null schema: @@ -4988,46 +5270,51 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Attach Route Filter + summary: Detach Route Filter tags: - Route Filters - x-content-type: application/json x-accepts: application/json - /fabric/v4/routeFilters: - post: - description: This API provides capability to create a Route Filter - operationId: createRouteFilter - parameters: [] - requestBody: - content: - application/json: - examples: - RouteFilterBgpIpv4Prefix: - $ref: '#/components/examples/RouteFilterCreateBgpIpv4Prefix' - value: null - RouteFilterBgpIpv6Prefix: - $ref: '#/components/examples/RouteFilterCreateBgpIpv6Prefix' - value: null - schema: - $ref: '#/components/schemas/RouteFiltersBase' + get: + description: This API provides capability to view a specific Route Filter attached + to a Connection + operationId: getConnectionRouteFilterByUuid + parameters: + - description: Route Filters Id + explode: false + in: path + name: routeFilterId required: true + schema: + $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: - "202": + "200": content: application/json: examples: - GetSpecificRouteFilterResponse: - $ref: '#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse' + ConnectionRouteFilterAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' value: null schema: - $ref: '#/components/schemas/RouteFiltersData' + $ref: '#/components/schemas/ConnectionRouteFilterData' description: Successful operation "400": content: application/json: examples: - TransientState: - $ref: '#/components/examples/400_transient_state' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5082,15 +5369,13 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Route Filters + summary: Get Route Filter tags: - Route Filters - x-content-type: application/json x-accepts: application/json - /fabric/v4/routeFilters/{routeFilterId}: - delete: - description: This API provides capability to delete a Route Filter - operationId: deleteRouteFilterByUuid + put: + description: This API provides capability to attach a Route Filter to a Connection + operationId: attachConnectionRouteFilter parameters: - description: Route Filters Id explode: false @@ -5100,23 +5385,47 @@ paths: schema: $ref: '#/components/schemas/RouteFilterId' style: simple + - description: Connection Id + explode: false + in: path + name: connectionId + required: true + schema: + $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: "202": content: application/json: examples: - RouteFilterDeleteBgpIpv4PrefixResponse: - $ref: '#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse' + ConnectionRouteFilterAttachResponse: + $ref: '#/components/examples/AttachConnectionRouteFiltersResponse' value: null schema: - $ref: '#/components/schemas/RouteFiltersData' + $ref: '#/components/schemas/ConnectionRouteFilterData' description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_attached_connection' + InvalidDirection: + $ref: '#/components/examples/400_invalid_direction' + value: null + TransientState: + $ref: '#/components/examples/400_transient_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5171,24 +5480,31 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Delete Route Filter + summary: Attach Route Filter tags: - Route Filters + x-content-type: application/json x-accepts: application/json - get: - description: This API provides capability to view a Route Filter by UUID - operationId: getRouteFilterByUuid - parameters: - - description: Route Filters Id - explode: false - in: path - name: routeFilterId + /fabric/v4/routeFilters: + post: + description: This API provides capability to create a Route Filter + operationId: createRouteFilter + parameters: [] + requestBody: + content: + application/json: + examples: + RouteFilterBgpIpv4Prefix: + $ref: '#/components/examples/RouteFilterCreateBgpIpv4Prefix' + value: null + RouteFilterBgpIpv6Prefix: + $ref: '#/components/examples/RouteFilterCreateBgpIpv6Prefix' + value: null + schema: + $ref: '#/components/schemas/RouteFiltersBase' required: true - schema: - $ref: '#/components/schemas/RouteFilterId' - style: simple responses: - "200": + "202": content: application/json: examples: @@ -5202,11 +5518,8 @@ paths: content: application/json: examples: - InvalidInput: - $ref: '#/components/examples/400_invalid_input' - value: null - InvalidId: - $ref: '#/components/examples/400_Invalid_id' + TransientState: + $ref: '#/components/examples/400_transient_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5261,13 +5574,15 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Filter By UUID + summary: Create Route Filters tags: - Route Filters + x-content-type: application/json x-accepts: application/json - patch: - description: This API provides capability to partially update a Route Filter - operationId: patchRouteFilterByUuid + /fabric/v4/routeFilters/{routeFilterId}: + delete: + description: This API provides capability to delete a Route Filter + operationId: deleteRouteFilterByUuid parameters: - description: Route Filters Id explode: false @@ -5277,23 +5592,13 @@ paths: schema: $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: "202": content: application/json: examples: - RouteFilterNamePatchResponse: - $ref: '#/components/examples/RouteFilterNamePatchResponse' + RouteFilterDeleteBgpIpv4PrefixResponse: + $ref: '#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse' value: null schema: $ref: '#/components/schemas/RouteFiltersData' @@ -5303,7 +5608,7 @@ paths: application/json: examples: example: - $ref: '#/components/examples/400_invalid_operation' + $ref: '#/components/examples/400_attached_connection' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5358,16 +5663,13 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Patch Route Filter + summary: Delete Route Filter tags: - Route Filters - x-content-type: application/json x-accepts: application/json - /fabric/v4/routeFilters/{routeFilterId}/changes: get: - description: This API provides capability to retrieve all of a Route Filter's - Changes - operationId: getRouteFilterChanges + description: This API provides capability to view a Route Filter by UUID + operationId: getRouteFilterByUuid parameters: - description: Route Filters Id explode: false @@ -5377,35 +5679,17 @@ paths: 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: - RouteFilterChangesResponse: - $ref: '#/components/examples/RouteFilterGetAllChangesResponseExample' + GetSpecificRouteFilterResponse: + $ref: '#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/RouteFilterChangeDataResponse' - description: Fabric Route Filter Change object + $ref: '#/components/schemas/RouteFiltersData' + description: Successful operation "400": content: application/json: @@ -5449,6 +5733,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' 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: @@ -5459,15 +5753,13 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get All Changes + summary: Get Route Filter By UUID tags: - Route Filters x-accepts: application/json - /fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}: - get: - description: This API provides capability to retrieve a specific Route Filter's - Changes - operationId: getRouteFilterChangeByUuid + patch: + description: This API provides capability to partially update a Route Filter + operationId: patchRouteFilterByUuid parameters: - description: Route Filters Id explode: false @@ -5477,34 +5769,234 @@ paths: schema: $ref: '#/components/schemas/RouteFilterId' style: simple - - description: Routing Protocol Change UUID - explode: false - in: path - name: changeId + requestBody: + content: + application/json: + examples: + RouteFilterNamePatchExample: + $ref: '#/components/examples/PatchRouteFilterName' + value: null + schema: + $ref: '#/components/schemas/RouteFiltersPatchRequest' required: true - schema: - $ref: '#/components/schemas/ChangeId_1' - style: simple responses: - "200": + "202": content: application/json: examples: - RouteFilterChangeResponse: - $ref: '#/components/examples/RouteFilterGetChangeResponseExample' + RouteFilterNamePatchResponse: + $ref: '#/components/examples/RouteFilterNamePatchResponse' value: null schema: - $ref: '#/components/schemas/RouteFilterChangeData' - description: Fabric Route Filter Change object + $ref: '#/components/schemas/RouteFiltersData' + description: Successful operation "400": content: application/json: examples: - InvalidInput: - $ref: '#/components/examples/400_invalid_input' - value: null - InvalidId: - $ref: '#/components/examples/400_Invalid_id' + 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_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + 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: Patch Route Filter + tags: + - Route Filters + x-content-type: application/json + x-accepts: application/json + /fabric/v4/routeFilters/{routeFilterId}/changes: + get: + description: This API provides capability to retrieve all of a Route Filter's + Changes + operationId: getRouteFilterChanges + 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: + RouteFilterChangesResponse: + $ref: '#/components/examples/RouteFilterGetAllChangesResponseExample' + value: null + schema: + $ref: '#/components/schemas/RouteFilterChangeDataResponse' + description: Fabric Route Filter Change object + "400": + content: + application/json: + examples: + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' + 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_invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + 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: + - Route Filters + x-accepts: application/json + /fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}: + get: + description: This API provides capability to retrieve a specific Route Filter's + Changes + operationId: getRouteFilterChangeByUuid + parameters: + - description: Route Filters Id + explode: false + in: path + name: routeFilterId + required: true + schema: + $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: + RouteFilterChangeResponse: + $ref: '#/components/examples/RouteFilterGetChangeResponseExample' + value: null + schema: + $ref: '#/components/schemas/RouteFilterChangeData' + description: Fabric Route Filter Change object + "400": + content: + application/json: + examples: + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -5641,7 +6133,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Connections + summary: Get All Connections on Route Filter tags: - Route Filters x-accepts: application/json @@ -5828,7 +6320,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: GetRFRules + summary: Get Route Filter Rules tags: - Route Filter Rules x-accepts: application/json @@ -5930,7 +6422,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create RFRule + summary: Create Route Filter Rule tags: - Route Filter Rules x-content-type: application/json @@ -6030,7 +6522,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: DeleteRFRule + summary: Delete Route Filter Rule tags: - Route Filter Rules x-accepts: application/json @@ -6131,7 +6623,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: GetRFRule By UUID + summary: Get Route Filter Rule By UUID tags: - Route Filter Rules x-accepts: application/json @@ -6249,7 +6741,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: PatchRFilterRule + summary: Patch Route Filter Rule tags: - Route Filter Rules x-content-type: application/json @@ -6364,7 +6856,7 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: ReplaceRFRule + summary: Replace Route Filter Rule tags: - Route Filter Rules x-content-type: application/json @@ -6665,52 +7157,43 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Bulk RFRules + summary: Bulk Create Route Filter Rules tags: - Route Filter Rules x-content-type: application/json x-accepts: application/json - /fabric/v4/routers: + /fabric/v4/routeAggregations: post: - description: This API provides capability to create user's Cloud Routers - operationId: createCloudRouter + description: This API provides capability to create a Route Aggregation + operationId: createRouteAggregation parameters: [] requestBody: content: application/json: examples: - CreateLabPackage: - $ref: '#/components/examples/CreateLabPackage' - value: null - CreateProPackage: - $ref: '#/components/examples/CreateStandardPackage' - value: null - CreateWithMarketplaceSubscription: - $ref: '#/components/examples/CreateWithMarketplaceSubscription' + RouteAggregationBgpIpv4Prefix: + $ref: '#/components/examples/RouteAggregationCreateBgpIpv4Prefix' value: null schema: - $ref: '#/components/schemas/CloudRouterPostRequest' + $ref: '#/components/schemas/RouteAggregationsBase' required: true responses: - "200": + "202": content: application/json: examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterPostResponseExample' - value: null - cloudRouterResponseForMarketplaceSubscription: - $ref: '#/components/examples/CloudRouterPostResponseMarketplaceExample' + GetSpecificRouteAggregationResponse: + $ref: '#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object + $ref: '#/components/schemas/RouteAggregationsData' + description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_package' + TransientState: + $ref: '#/components/examples/400_transient_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -6735,6 +7218,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 Aggregation ID Not Found "415": content: application/json: @@ -6750,38 +7243,46 @@ 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: Create Aggregations tags: - - Cloud Routers + - Route Aggregations x-content-type: application/json x-accepts: application/json - /fabric/v4/routers/{routerId}: + /fabric/v4/routeAggregations/{routeAggregationId}: delete: - description: This API provides capability to delete user's Cloud Routers - operationId: deleteCloudRouterByUuid + description: This API provides capability to delete a Route Aggregation + operationId: deleteRouteAggregationByUuid parameters: - - description: Cloud Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple responses: - "204": - description: Deleted Cloud Router Successfully + "202": + content: + application/json: + examples: + RouteAggregationDeleteBgpIpv4PrefixResponse: + $ref: '#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse' + value: null + schema: + $ref: '#/components/schemas/RouteAggregationsData' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_state' + $ref: '#/components/examples/400_attached_connection' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -6811,51 +7312,71 @@ 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 Aggregation 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' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Delete Routers + summary: Delete Aggregation tags: - - Cloud Routers + - Route Aggregations x-accepts: application/json get: - description: This API provides capability to retrieve user's Cloud Routers - operationId: getCloudRouterByUuid + description: This API provides capability to view a Route Aggregation by UUID + operationId: getRouteAggregationByUuid parameters: - - description: Cloud Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple responses: "200": content: application/json: examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterResponseExample' + GetSpecificRouteAggregationResponse: + $ref: '#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse' value: null - cloudRouterResponseMarketplace: - $ref: '#/components/examples/CloudRouterResponseExampleMarketplace' + schema: + $ref: '#/components/schemas/RouteAggregationsData' + description: Successful operation + "400": + content: + application/json: + examples: + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -6881,64 +7402,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 + description: Route Aggregation 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' + $ref: '#/components/examples/500_internal_error' value: null schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Routers + summary: Get Aggregation tags: - - Cloud Routers + - Route Aggregations x-accepts: application/json patch: - description: This API provides capability to update user's Cloud Routers - operationId: updateCloudRouterByUuid + description: This API provides capability to partially update a Route Aggregation + operationId: patchRouteAggregationByUuid parameters: - - description: Cloud Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple requestBody: content: - application/json-patch+json: + application/json: examples: - UpdatePackage: - $ref: '#/components/examples/UpdatePackage' - value: null - UpdateName: - $ref: '#/components/examples/UpdateName' - value: null - UpdateNotificationEmail: - $ref: '#/components/examples/UpdateNotifications' + RouteAggregationNamePatchExample: + $ref: '#/components/examples/PatchRouteAggregationName' value: null schema: - $ref: '#/components/schemas/CloudRouterUpdateRequest' + $ref: '#/components/schemas/RouteAggregationsPatchRequest' required: true responses: - "200": + "202": content: application/json: examples: - cloudRouterResponse: - $ref: '#/components/examples/CloudRouterPatchResponseExample' + RouteAggregationNamePatchResponse: + $ref: '#/components/examples/RouteAggregationNamePatchResponse' value: null schema: - $ref: '#/components/schemas/CloudRouter' - description: Fabric Cloud Router object + $ref: '#/components/schemas/RouteAggregationsData' + description: Successful operation "400": content: application/json: @@ -6974,11 +7499,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 Aggregation ID Not Found "415": content: application/json: @@ -6994,54 +7519,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: Patch Aggregation tags: - - Cloud Routers - x-content-type: application/json-patch+json + - Route Aggregations + x-content-type: application/json x-accepts: application/json - /fabric/v4/routers/{routerId}/actions: + /fabric/v4/routeAggregations/{routeAggregationId}/changes: get: - description: This API provides capability to fetch action status - operationId: getCloudRouterActions + description: This API provides capability to retrieve all of a Route Aggregation's + Changes + operationId: getRouteAggregationChanges parameters: - - description: Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteAggregationId' style: simple - - description: Action state + - description: offset + example: 1 explode: true in: query - name: state + name: offset required: false schema: - $ref: '#/components/schemas/ActionState' + 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: - routerActionExample: - $ref: '#/components/examples/CloudRouterActionResponse' + RouteAggregationChangesResponse: + $ref: '#/components/examples/RouteAggregationGetAllChangesResponseExample' value: null schema: - $ref: '#/components/schemas/CloudRouterActionResponse' - description: Successful operation + $ref: '#/components/schemas/RouteAggregationChangeDataResponse' + description: Fabric Route Aggregation Change object "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_operation' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7071,87 +7610,67 @@ paths: 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' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error + description: Route Aggregation 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: Get actions + summary: Get All Changes tags: - - Cloud Routers + - Route Aggregations x-accepts: application/json - post: - description: This API provides capability to refresh route table and bgp session - summary information - operationId: createCloudRouterAction + /fabric/v4/routeAggregations/{routeAggregationId}/changes/{changeId}: + get: + description: This API provides capability to retrieve a specific Route Aggregation's + Changes + operationId: getRouteAggregationChangeByUuid parameters: - - description: Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteAggregationId' style: simple - requestBody: - content: - application/json: - examples: - RouteEntriesStatusUpdate: - $ref: '#/components/examples/RouteEntriesStatusUpdate' - value: null - ReceivedRouteEntriesStatusUpdate: - $ref: '#/components/examples/ReceivedRouteEntriesStatusUpdate' - value: null - AdvertisedRouteEntriesStatusUpdate: - $ref: '#/components/examples/AdvertisedRouteEntriesStatusUpdate' - value: null - schema: - $ref: '#/components/schemas/CloudRouterActionRequest' + - description: Routing Protocol Change UUID + explode: false + in: path + name: changeId required: true + schema: + $ref: '#/components/schemas/ChangeId_3' + style: simple responses: - "202": + "200": content: application/json: examples: - cloudRouterActionExample: - $ref: '#/components/examples/CloudRouterActionResponse' - value: null - receivedRouteEntriesExample: - $ref: '#/components/examples/CloudRouterReceivedRoutesActionResponse' - value: null - advertisedRouteEntriesExample: - $ref: '#/components/examples/CloudRouterAdvertisedRoutesActionResponse' + RouteAggregationChangeResponse: + $ref: '#/components/examples/RouteAggregationGetChangeResponseExample' value: null schema: - $ref: '#/components/schemas/CloudRouterActionResponse' - description: Successful operation + $ref: '#/components/schemas/RouteAggregationChangeData' + description: Fabric Route Aggregation Change object "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_operation' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7181,73 +7700,59 @@ paths: 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' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error + description: Route Aggregation 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: Route table actions + summary: Get Change By ID tags: - - Cloud Routers - x-content-type: application/json + - Route Aggregations x-accepts: application/json - /fabric/v4/routers/{routerId}/actions/search: - post: - description: This API provides capability to refresh route table and bgp session - summary information - operationId: searchRouterActions + /fabric/v4/routeAggregations/{routeAggregationId}/connections: + get: + description: This API provides capability to view all Connections using the + Route Aggregation + operationId: getRouteAggregationConnections parameters: - - description: Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteAggregationId' style: simple - requestBody: - content: - application/json: - examples: - CloudRouterActionsSearchByType: - $ref: '#/components/examples/CloudRouterActionsSearchByType' - value: null - schema: - $ref: '#/components/schemas/CloudRouterActionsSearchRequest' - required: true responses: "200": content: application/json: + examples: + RouteAggregationGetConnectionsResponse: + $ref: '#/components/examples/RouteAggregationGetConnectionsResponse' + value: null schema: - $ref: '#/components/schemas/CloudRouterActionsSearchResponse' + $ref: '#/components/schemas/GetRouteAggregationGetConnectionsResponse' description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_sorting' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7277,11 +7782,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 Aggregation ID Not Found "415": content: application/json: @@ -7291,68 +7796,56 @@ 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 actions + summary: Get All Connections on Route Aggregation tags: - - Cloud Routers - x-content-type: application/json + - Route Aggregations x-accepts: application/json - /fabric/v4/routers/{routerId}/actions/{actionId}: - get: - description: This API provides capability to fetch action status - operationId: getCloudRouterActionsByUuid - parameters: - - description: Router UUID - explode: false - in: path - name: routerId - required: true - schema: - $ref: '#/components/schemas/RouterId_1' - style: simple - - description: Action UUID - explode: false - in: path - name: actionId + /fabric/v4/routeAggregations/search: + post: + description: This API provides capability to search Route Aggregations + operationId: searchRouteAggregations + parameters: [] + requestBody: + content: + application/json: + examples: + searchRouteAggregationsRequest: + $ref: '#/components/examples/SearchRouteAggregationsRequest' + value: null + schema: + $ref: '#/components/schemas/RouteAggregationsSearchBase' required: true - schema: - $ref: '#/components/schemas/ActionId_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' + SearchRouteAggregationsResponse: + $ref: '#/components/examples/SearchRouteAggregationsResponse' value: null schema: - $ref: '#/components/schemas/CloudRouterActionResponse' + $ref: '#/components/schemas/RouteAggregationsSearchResponse' description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_operation' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7382,11 +7875,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 Aggregation ID Not Found "415": content: application/json: @@ -7396,75 +7889,75 @@ 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: Search Aggregations tags: - - Cloud Routers + - Route Aggregations + 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/routeAggregations/{routeAggregationId}/routeAggregationRules: + get: + description: This API provides capability to get all Route Aggregations Rules + for Fabric + operationId: getRouteAggregationRules parameters: - - description: Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId_1' + $ref: '#/components/schemas/RouteAggregationId' 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 + - 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: + getAllRouteAggregationRules: + $ref: '#/components/examples/RouteAggregationRulesGetAll' + value: null schema: - $ref: '#/components/schemas/RouteTableEntrySearchResponse' + $ref: '#/components/schemas/GetRouteAggregationRulesResponse' description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_sorting' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Bad request + description: Resource not found "401": content: application/json: @@ -7488,133 +7981,65 @@ paths: "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 + description: Route Aggregation Rule 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: Search Route Table + summary: GetRARules tags: - - Cloud Routers - x-content-type: application/json + - Route Aggregation Rules 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 + description: This API provides capability to create a Route Aggregation Rule + operationId: createRouteAggregationRule parameters: - - description: Cloud Router UUID + - description: Route Aggregations Id explode: false in: path - name: routerId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterId' + $ref: '#/components/schemas/RouteAggregationId' style: simple requestBody: content: application/json: examples: - ValidateDirectIpv4: - $ref: '#/components/examples/Request-direct-ipv4' - value: null - ValidateDirectIpv6: - $ref: '#/components/examples/Request-direct-ipv6' + RouteAggregationRuleBgpIpv4Prefix: + $ref: '#/components/examples/RouteAggregationRuleCreateBgpIpv4Prefix' value: null schema: - $ref: '#/components/schemas/ValidateRequest' + $ref: '#/components/schemas/RouteAggregationRulesBase' required: true responses: - "200": + "202": content: application/json: examples: - ValidateSubnet: - $ref: '#/components/examples/Response-200' + GetSpecificRouteAggregationRuleIpv4Response: + $ref: '#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/ValidateSubnetResponse' + $ref: '#/components/schemas/RouteAggregationRulesData' 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' + InvalidType: + $ref: '#/components/examples/400_bad_request' value: null - schema: - $ref: '#/components/schemas/SearchResponse' - description: Successful operation - "400": - content: - application/json: - examples: - example: - $ref: '#/components/examples/400_invalid_sorting' + InvalidId: + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7639,6 +8064,12 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Aggregation Rule ID Not Found "415": content: application/json: @@ -7654,50 +8085,58 @@ 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: Search Routers + summary: Create RARule tags: - - Cloud Routers + - Route Aggregation Rules 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 + /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}: + delete: + description: This API provides capability to delete a Route aggregation Rule + operationId: deleteRouteAggregationRuleByUuid parameters: - - description: offset - example: 1 - explode: true - in: query - name: offset - required: false + - description: Route Aggregations Id + explode: false + in: path + name: routeAggregationId + required: true schema: - type: integer - style: form - - description: number of records to fetch - example: 10 - explode: true - in: query - name: limit - required: false + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true schema: - type: integer - style: form + $ref: '#/components/schemas/RouteAggregationRuleId' + style: simple responses: - "200": + "202": content: application/json: examples: - Example: - $ref: '#/components/examples/ListFCRPackagesResponse' + RouteAggregationDeleteBgpIpv4PrefixResponse: + $ref: '#/components/examples/RouteAggregationRuleDeleteBgpIpv4PrefixResponse' value: null schema: - $ref: '#/components/schemas/PackageResponse' - description: Fabric Cloud Router Packages + $ref: '#/components/schemas/RouteAggregationRulesData' + description: Successful operation + "400": + content: + application/json: + examples: + example: + $ref: '#/components/examples/400_transient_aggregation' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -7718,12 +8157,22 @@ 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: Route Aggregation ID Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7733,42 +8182,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: List Packages + summary: DeleteRARule tags: - - Cloud Routers + - Route Aggregation Rules x-accepts: application/json - /fabric/v4/routerPackages/{routerPackageCode}: get: - description: This API provides capability to retrieve user's Cloud Routers Package - Details - operationId: getCloudRouterPackageByCode + description: This API provides capability to view a Route Aggregation Rule by + UUID + operationId: getRouteAggregationRuleByUuid parameters: - - description: Equinix-assigned Cloud Router package identifier + - description: Route Aggregations Id explode: false in: path - name: routerPackageCode + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/RouterPackageCode' + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationRuleId' style: simple responses: - "200": + "202": content: application/json: + examples: + GetSpecificRouteAggregationRuleIpv4Response: + $ref: '#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse' + value: null schema: - $ref: '#/components/schemas/CloudRouterPackage' - description: Fabric Cloud Router Package details + $ref: '#/components/schemas/RouteAggregationRulesData' + description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_package' + InvalidType: + $ref: '#/components/examples/400_bad_request' + value: null + InvalidId: + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7793,187 +8256,204 @@ 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 Aggregation 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": + description: Unsupported Media Type + "500": content: application/json: examples: - metroExample: - $ref: '#/components/examples/healthResponse' + example: + $ref: '#/components/examples/500_internal_error' value: null schema: - $ref: '#/components/schemas/HealthResponse' - description: Successful operation - summary: Get service status + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: GetRARule By UUID tags: - - Health + - Route Aggregation Rules x-accepts: application/json - /fabric/v4/connections/validate: - post: - description: This API provides capability to validate by auth key - operationId: validateConnections - parameters: [] + patch: + description: This API provides capability to partially update a Route Aggregation + Rule + operationId: patchRouteAggregationRuleByUuid + parameters: + - description: Route Aggregations Id + explode: false + in: path + name: routeAggregationId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationRuleId' + style: simple requestBody: content: application/json: examples: - Alibaba-ValidateAuthKey: - $ref: '#/components/examples/Request_Alibaba' - value: null - Aws-ValidateAuthKey: - $ref: '#/components/examples/Request_AWS' + RouteaggregationRuleName: + $ref: '#/components/examples/PatchRouteAggregationRuleName' 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' + RouteaggregationRulePrefix: + $ref: '#/components/examples/PatchRouteAggregationRulePrefix' value: null schema: - $ref: '#/components/schemas/ValidateRequest' + $ref: '#/components/schemas/RouteAggregationRulesPatchRequest' required: true responses: - "200": + "202": 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' + RouteAggregationRuleIpv4ReplaceResponse: + $ref: '#/components/examples/RouteAggregationRuleReplaceIpv4Response' value: null - Google-ValidateAuthKey: - $ref: '#/components/examples/Response-Google' + schema: + $ref: '#/components/schemas/RouteAggregationRulesData' + description: Successful operation + "400": + content: + application/json: + examples: + InvalidType: + $ref: '#/components/examples/400_bad_request' value: null - IBM-1.0-ValidateAuthKey: - $ref: '#/components/examples/Response-IBM-1' + InvalidId: + $ref: '#/components/examples/404_invalid_id' value: null - IBM-2.0-ValidateAuthKey: - $ref: '#/components/examples/Response-IBM-2' + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request + "401": + content: + application/json: + examples: + example: + $ref: '#/components/examples/401' value: null - Oracle-ValidateAuthKey: - $ref: '#/components/examples/Response-Oracle' + schema: + $ref: '#/components/schemas/ErrorList' + description: Unauthorized + "403": + content: + application/json: + examples: + example: + $ref: '#/components/examples/403' value: null - Dot1q-ValidateAuthKey: - $ref: '#/components/examples/Response-Dot1q-Vlan' + schema: + $ref: '#/components/schemas/ErrorList' + description: Forbidden + "404": + content: + application/json: + examples: + example: + $ref: '#/components/examples/404_invalid_id' value: null - Qinq-ValidateAuthKey: - $ref: '#/components/examples/Response-Qinq-Vlan' + schema: + $ref: '#/components/schemas/ErrorList' + description: Route Aggregation ID Not Found + "415": + content: + application/json: + examples: + example: + $ref: '#/components/examples/415' value: null schema: - $ref: '#/components/schemas/ConnectionResponse' - description: Successful operation - "400": + $ref: '#/components/schemas/ErrorList' + 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: PatchRARule tags: - - Connections + - Route Aggregation Rules 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 Aggregation Rule + completely + operationId: replaceRouteAggregationRuleByUuid + parameters: + - description: Route Aggregations Id + explode: false + in: path + name: routeAggregationId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationRuleId' + style: simple requestBody: content: application/json: examples: - CreateGlobalNetwork: - $ref: '#/components/examples/CreateGlobalNetwork' - value: null - CreateRegionalNetwork: - $ref: '#/components/examples/CreateRegionalNetwork' - value: null - CreateLocalNetwork: - $ref: '#/components/examples/CreateLocalNetwork' + RouteaggregationIpv4ReplaceExample: + $ref: '#/components/examples/UpdateRouteAggregationRuleIPv4' value: null schema: - $ref: '#/components/schemas/NetworkPostRequest' + $ref: '#/components/schemas/RouteAggregationRulesBase' required: true responses: "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkPostResponseExample' + RouteAggregationRuleIpv4ReplaceResponse: + $ref: '#/components/examples/RouteAggregationRuleReplaceIpv4Response' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteAggregationRulesData' + description: Successful operation "400": content: application/json: examples: - example: - $ref: '#/components/examples/400' + InvalidType: + $ref: '#/components/examples/400_bad_request' + value: null + InvalidId: + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -7998,6 +8478,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 Aggregation ID Not Found "415": content: application/json: @@ -8013,46 +8503,76 @@ 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: ReplaceRARule tags: - - Networks + - Route Aggregation Rules 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/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes: + get: + description: This API provides capability to retrieve all of a Route Aggregation + Rule's Changes + operationId: getRouteAggregationRuleChanges parameters: - - description: Network UUID + - description: Route Aggregations Id explode: false in: path - name: networkId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationRuleId' 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' + RouteAggregationRuleChangesResponse: + $ref: '#/components/examples/RouteAggregationRulesGetAllChangesResponseExample' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteAggregationRulesChangeDataResponse' + description: Fabric Route Aggregation Rule Change object "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_state' + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8082,38 +8602,79 @@ 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 Aggregation 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 Aggregation Rules x-accepts: application/json + /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/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 Aggregation + Rule's Changes + operationId: getRouteAggregationRuleChangeByUuid parameters: - - description: Network UUID + - description: Route Aggregations Id explode: false in: path - name: networkId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteAggregationId' + style: simple + - description: Route Aggregation Rules Id + explode: false + in: path + name: routeAggregationRuleId + required: true + schema: + $ref: '#/components/schemas/RouteAggregationRuleId' + style: simple + - description: Route Aggregation Rule Change UUID + explode: false + in: path + name: changeId + required: true + schema: + $ref: '#/components/schemas/ChangeId_4' style: simple responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkGetResponseExample' + RouteAggregationChangeResponse: + $ref: '#/components/examples/RouteAggregationRuleGetChangeResponseExample' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/RouteAggregationRulesChangeData' + description: Fabric Route Aggregation Change object + "400": + content: + application/json: + examples: + InvalidInput: + $ref: '#/components/examples/400_invalid_input' + value: null + InvalidId: + $ref: '#/components/examples/400_Invalid_id' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -8139,61 +8700,65 @@ 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 Aggregation 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 Aggregation Rules x-accepts: application/json - patch: - description: This API provides capability to update user's Fabric Network - operationId: updateNetworkByUuid + /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk: + post: + description: This API provides capability to create bulk route aggregation rules + operationId: createRouteAggregationRulesInBulk parameters: - - description: Network UUID + - description: Route Aggregations Id explode: false in: path - name: networkId + name: routeAggregationId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouteAggregationId' style: simple requestBody: content: - application/json-patch+json: - examples: - UpdateName: - $ref: '#/components/examples/UpdateNetworkName' - value: null - UpdateNotificationEmail: - $ref: '#/components/examples/UpdateNetworkNotifications' - value: null + application/json: schema: - $ref: '#/components/schemas/NetworkUpdateRequest' + $ref: '#/components/schemas/RouteAggregationRulesPostRequest' required: true responses: - "200": + "202": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkPatchResponseExample' + getAllRouteAggregationRules: + $ref: '#/components/examples/RouteAggregationRulesBulkResponse' value: null schema: - $ref: '#/components/schemas/Network' - description: Fabric Network Access point object + $ref: '#/components/schemas/GetRouteAggregationRulesResponse' + description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_state' + $ref: '#/components/examples/404_invalid_id' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Bad request + description: Resource not found "401": content: application/json: @@ -8219,7 +8784,7 @@ paths: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/400' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8234,47 +8799,83 @@ 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: Bulk RARules tags: - - Networks - x-content-type: application/json-patch+json + - Route Aggregation Rules + x-content-type: application/json x-accepts: application/json - /fabric/v4/networks/search: + /fabric/v4/routers: 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: [] + description: This API provides capability to create user's Cloud Routers + operationId: createCloudRouter + parameters: + - description: option to verify that API calls will succeed + explode: true + in: query + name: dryRun + required: false + schema: + default: false + type: boolean + style: form requestBody: content: application/json: examples: - SearchFilterByStatus: - $ref: '#/components/examples/SearchFilterByStatus' + CreateLabPackage: + $ref: '#/components/examples/CreateLabPackage' value: null - SearchFilterOrAnd: - $ref: '#/components/examples/SearchFilterOrAnd' + CreateProPackage: + $ref: '#/components/examples/CreateStandardPackage' + value: null + CreateWithMarketplaceSubscription: + $ref: '#/components/examples/CreateWithMarketplaceSubscription' value: null schema: - $ref: '#/components/schemas/NetworkSearchRequest' + $ref: '#/components/schemas/CloudRouterPostRequest' required: true responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkSearchResponseExample' + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterPostResponseExample' + value: null + cloudRouterResponseForMarketplaceSubscription: + $ref: '#/components/examples/CloudRouterPostResponseMarketplaceExample' + value: null + cloudRouterResponseDryRun: + $ref: '#/components/examples/CloudRouterResponseExampleDryRun' value: null schema: - $ref: '#/components/schemas/NetworkSearchResponse' - description: Fabric Network Access point object + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object "400": content: application/json: examples: - example: - $ref: '#/components/examples/400_invalid_sorting' + invalidPackage: + $ref: '#/components/examples/400_invalid_package' + value: null + invalidName: + $ref: '#/components/examples/400_invalid_name' + value: null + invalidAccount: + $ref: '#/components/examples/400_invalid_account' + value: null + maxLabFcrReached: + $ref: '#/components/examples/400_max_lab_fcr_demo' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8309,42 +8910,43 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Unsupported Media Type - summary: Search Network + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Create Routers tags: - - Networks + - Cloud Routers 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 + /fabric/v4/routers/{routerId}: + delete: + description: This API provides capability to delete user's Cloud Routers + operationId: deleteCloudRouterByUuid parameters: - - description: Network UUID + - description: Cloud Router UUID explode: false in: path - name: networkId + name: routerId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouterId' 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 + "204": + description: Deleted Cloud Router Successfully "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_uuid' + $ref: '#/components/examples/400_invalid_state' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8369,55 +8971,56 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/404' 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: + 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: The API provides capability to get list of user's Fabric Network - changes - operationId: getNetworkChanges + description: This API provides capability to retrieve user's Cloud Routers + operationId: getCloudRouterByUuid parameters: - - description: Network UUID + - description: Cloud Router UUID explode: false in: path - name: networkId + name: routerId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouterId' style: simple responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkChangeResponseExample' + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterResponseExample' 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' + cloudRouterResponseMarketplace: + $ref: '#/components/examples/CloudRouterResponseExampleMarketplace' value: null schema: - $ref: '#/components/schemas/ErrorList' - description: Bad request + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object "401": content: application/json: @@ -8438,59 +9041,75 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "415": + "404": content: application/json: examples: example: - $ref: '#/components/examples/415' + $ref: '#/components/examples/404' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type - summary: Get Network Changes + 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: - - Networks + - Cloud Routers 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 + patch: + description: This API provides capability to update user's Cloud Routers + operationId: updateCloudRouterByUuid parameters: - - description: Network UUID + - description: Cloud Router UUID explode: false in: path - name: networkId + name: routerId required: true schema: - $ref: '#/components/schemas/NetworkId' + $ref: '#/components/schemas/RouterId' style: simple - - description: Network Change UUID - explode: false - in: path - name: changeId + 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 - schema: - $ref: '#/components/schemas/ChangeId_3' - style: simple responses: "200": content: application/json: examples: - networkResponse: - $ref: '#/components/examples/NetworkGetChangeResponseExample' + cloudRouterResponse: + $ref: '#/components/examples/CloudRouterPatchResponseExample' value: null schema: - $ref: '#/components/schemas/NetworkChange' - description: Fabric Network Access point object + $ref: '#/components/schemas/CloudRouter' + description: Fabric Cloud Router object "400": content: application/json: examples: example: - $ref: '#/components/examples/400_invalid_uuid' + $ref: '#/components/examples/400_invalid_operation' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8525,195 +9144,69 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Not Found - summary: Get Change By ID + "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: - - Networks + - Cloud Routers + x-content-type: application/json-patch+json x-accepts: application/json - /fabric/v4/timeServices: - post: - description: The API provides capability to create Precision Time service - operationId: createTimeServices - parameters: [] - requestBody: - content: - application/json: - examples: - ntpStandard: - $ref: '#/components/examples/ntpStandardService' - value: null - ptpStandard: - $ref: '#/components/examples/ptpStandardService' - value: null - ntpEnterprise: - $ref: '#/components/examples/ntpEnterpriseService' - value: null - ptpEnterprise: - $ref: '#/components/examples/ptpEnterpriseService' - value: null - ptpStandardWithAdvancedConfiguration: - $ref: '#/components/examples/ptpStandardWithAdvancedConfiguration' - value: null - ptpEnterpriseWithAdvancedConfiguration: - $ref: '#/components/examples/ptpEnterpriseWithAdvancedConfiguration' - value: null - ntpEnterpriseWithAdvancedConfiguration: - $ref: '#/components/examples/ntpEnterpriseWithAdvancedConfiguration' - value: null - schema: - $ref: '#/components/schemas/precisionTimeServiceRequest' + /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: - "202": + "200": content: application/json: examples: - ntpStandard: - $ref: '#/components/examples/ntpStandardCreateResponse' - value: null - ntpEnterprise: - $ref: '#/components/examples/ntpEnterpriseCreateResponse' - value: null - ptpStandard: - $ref: '#/components/examples/ptpStandardCreateResponse' - value: null - ptpEnterprise: - $ref: '#/components/examples/ptpEnterpriseCreateResponse' + routerActionExample: + $ref: '#/components/examples/CloudRouterActionResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceResponse' - description: Successful Accepted operation + $ref: '#/components/schemas/CloudRouterActionResponse' + description: Successful operation "400": content: application/json: examples: - 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_operation' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -8738,6 +9231,16 @@ paths: 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: @@ -8747,7 +9250,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Internal server error "500": content: application/json: @@ -8758,36 +9261,66 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Time Service + summary: Get Route Table Actions tags: - - Precision Time - x-content-type: application/json + - Cloud Routers x-accepts: application/json - /fabric/v4/timeServices/{serviceId}: - delete: - description: The API provides capability to delete Precision Time Service by - service id. - operationId: deleteTimeServiceById + post: + description: This API provides capability to refresh route table and bgp session + summary information + operationId: createCloudRouterAction parameters: - - description: Service UUID + - description: Router UUID explode: false in: path - name: serviceId + name: routerId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouterId_1' style: simple + requestBody: + content: + application/json: + examples: + RouteEntriesStatusUpdate: + $ref: '#/components/examples/RouteEntriesStatusUpdate' + value: null + ReceivedRouteEntriesStatusUpdate: + $ref: '#/components/examples/ReceivedRouteEntriesStatusUpdate' + value: null + AdvertisedRouteEntriesStatusUpdate: + $ref: '#/components/examples/AdvertisedRouteEntriesStatusUpdate' + value: null + schema: + $ref: '#/components/schemas/CloudRouterActionRequest' + required: true responses: "202": content: application/json: examples: - ntpStandard: - $ref: '#/components/examples/ntpStandardDeletingResponse' + cloudRouterActionExample: + $ref: '#/components/examples/CloudRouterActionResponse' + value: null + receivedRouteEntriesExample: + $ref: '#/components/examples/CloudRouterReceivedRoutesActionResponse' + value: null + advertisedRouteEntriesExample: + $ref: '#/components/examples/CloudRouterAdvertisedRoutesActionResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceResponse' - description: Successful Delete + $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: @@ -8827,7 +9360,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Internal server error "500": content: application/json: @@ -8838,60 +9371,49 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Delete by ID. + summary: Create Route Table Action tags: - - Precision Time + - Cloud Routers + x-content-type: application/json x-accepts: application/json - get: - description: The API provides capability to get Precision Time Service details - operationId: getTimeServicesById + /fabric/v4/routers/{routerId}/actions/search: + post: + description: This API provides capability to refresh route table and bgp session + summary information + operationId: searchRouterActions parameters: - - description: Service UUID + - description: Router UUID explode: false in: path - name: serviceId + name: routerId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouterId_1' style: simple + requestBody: + content: + application/json: + examples: + CloudRouterActionsSearchByType: + $ref: '#/components/examples/CloudRouterActionsSearchByType' + value: null + schema: + $ref: '#/components/schemas/CloudRouterActionsSearchRequest' + required: true responses: "200": content: application/json: - examples: - ntpStandardOriginPort: - $ref: '#/components/examples/ntpStandardResponseASidePort' - value: null - ntpStandardOriginVirtualDevice: - $ref: '#/components/examples/ntpStandardResponseASideVirtualDevice' - value: null - ntpStandardOriginCloudRouter: - $ref: '#/components/examples/ntpStandardResponseASideCloudRouter' - value: null - ntpEnterpriseOriginPort: - $ref: '#/components/examples/ntpEnterpriseWOMD5ResponseASidePort' - value: null - ntpEnterpriseWithAdvConfigOriginPort: - $ref: '#/components/examples/ntpEnterpriseResponseASidePort' - value: null - ntpEnterpriseWithAdvConfigOriginVirtualDevice: - $ref: '#/components/examples/ntpEnterpriseResponseASideVirtualDevice' - value: null - ntpEnterpriseWithAdvConfigOriginCloudRouter: - $ref: '#/components/examples/ntpEnterpriseResponseASideCloudRouter' - value: null - ptpStandardOriginPort: - $ref: '#/components/examples/ptpStandardResponse' - value: null - ptpEnterpriseOriginPort: - $ref: '#/components/examples/ptpEnterpriseResponse' - value: null schema: - $ref: '#/components/schemas/precisionTimeServiceResponse' + $ref: '#/components/schemas/CloudRouterActionsSearchResponse' 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 @@ -8934,7 +9456,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Internal server error "500": content: application/json: @@ -8945,192 +9467,57 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Service By ID. + summary: Search Route Table Actions tags: - - Precision Time + - Cloud Routers + x-content-type: application/json x-accepts: application/json - patch: - description: The API provides capability to update Precision Time Service by - service id. - operationId: updateTimeServicesById + /fabric/v4/routers/{routerId}/actions/{actionId}: + get: + description: This API provides capability to fetch action status + operationId: getCloudRouterActionsByUuid parameters: - - description: Service UUID + - description: Router UUID explode: false in: path - name: serviceId + name: routerId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouterId_1' style: simple - requestBody: - content: - application/json-patch+json: - examples: - updateName: - $ref: '#/components/examples/updateName' - value: null - updatePackageCode: - $ref: '#/components/examples/updatePackageCode' - value: null - updateNetworkInformation: - $ref: '#/components/examples/updateNetworkInformation' - value: null - updatePtpAdvancedConfiguration: - $ref: '#/components/examples/updatePtpAdvancedConfiguration' - value: null - updateNtpAdvancedConfiguration: - $ref: '#/components/examples/updateNtpAdvancedConfiguration' - value: null - schema: - items: - $ref: '#/components/schemas/precisionTimeChangeOperation' - maxItems: 1 - minItems: 1 - type: array + - description: Action UUID + explode: false + in: path + name: actionId required: true + schema: + $ref: '#/components/schemas/ActionId_1' + style: simple + - description: Action state + explode: true + in: query + name: state + required: false + schema: + $ref: '#/components/schemas/ActionState' + style: form responses: - "202": + "200": content: application/json: examples: - ntpStandard: - $ref: '#/components/examples/ntpStandardReprovisionResponse' + routerActionExample: + $ref: '#/components/examples/CloudRouterActionResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceResponse' - description: Successful Accepted operation + $ref: '#/components/schemas/CloudRouterActionResponse' + description: Successful operation "400": content: application/json: examples: - 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_operation' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -9174,7 +9561,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Internal server error "500": content: application/json: @@ -9185,186 +9572,60 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Update By ID. + summary: Get Route Table Action by ID tags: - - Precision Time - x-content-type: application/json-patch+json + - Cloud Routers x-accepts: application/json - put: - description: The API provides capability to Configure/Fulfill the Precision - Time Service. - operationId: fulfillTimeServices + /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: Service UUID + - description: Router UUID explode: false in: path - name: serviceId + name: routerId required: true schema: - $ref: '#/components/schemas/ServiceId' + $ref: '#/components/schemas/RouterId_1' style: simple requestBody: content: application/json: examples: - ntpStandard: - $ref: '#/components/examples/configureStandardService' + SearchFilterByNextHop: + $ref: '#/components/examples/SearchFilterByNextHop' value: null - ptpStandard: - $ref: '#/components/examples/configureStandardService' + SearchFilterByPrefix: + $ref: '#/components/examples/SearchFilterByPrefix' value: null - ntpEnterpriseWithAdvanceConfiguration: - $ref: '#/components/examples/configureNtpEnterpriseAdvancedConfig' + SearchFilterByType: + $ref: '#/components/examples/SearchFilterByType' value: null - ptpEnterpriseWithAdvanceConfiguration: - $ref: '#/components/examples/configurePtpWithAdvancedConfig' + SearchFilterByStatus: + $ref: '#/components/examples/SearchFilterByStatus' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchFilterOrAnd' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceRequest' + $ref: '#/components/schemas/RouteTableEntrySearchRequest' required: true responses: - "202": + "200": content: application/json: - examples: - ntpStandard: - $ref: '#/components/examples/ntpStandardConfigureResponse' - value: null schema: - $ref: '#/components/schemas/precisionTimeServiceResponse' - description: Successful Accepted operation + $ref: '#/components/schemas/RouteTableEntrySearchResponse' + description: Successful operation "400": content: application/json: examples: - 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_sorting' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -9408,7 +9669,7 @@ paths: value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unsupported Media Type + description: Internal server error "500": content: application/json: @@ -9419,32 +9680,88 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Configure Service. + summary: Search Route Table tags: - - Precision Time + - Cloud Routers x-content-type: application/json x-accepts: application/json - /fabric/v4/timeServices/search: + /fabric/v4/routers/{routerId}/validate: post: - description: "The API provides capability to get list of user's Time Services\ + 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: searchTimeServices + operationId: searchCloudRouters parameters: [] requestBody: content: application/json: examples: SearchFilterByStatus: - $ref: '#/components/examples/SearchTimeServicesFilterByStatus' + $ref: '#/components/examples/SearchFilterByStatus' value: null - SearchFilterByNameAndProtocol: - $ref: '#/components/examples/SearchTimeServicesByNameAndProtocol' + SearchFilterByNameAndMetroName: + $ref: '#/components/examples/SearchFilterByNameAndMetroName' value: null SearchFilterOrAnd: - $ref: '#/components/examples/SearchTimeServicesFilterOrAnd' + $ref: '#/components/examples/SearchFilterOrAnd' value: null schema: - $ref: '#/components/schemas/TimeServicesSearchRequest' + $ref: '#/components/schemas/CloudRouterSearchRequest' required: true responses: "200": @@ -9452,17 +9769,17 @@ paths: application/json: examples: Example: - $ref: '#/components/examples/serviceSearchResponse' + $ref: '#/components/examples/search-example' value: null schema: - $ref: '#/components/schemas/ServiceSearchResponse' + $ref: '#/components/schemas/SearchResponse' description: Successful operation "400": content: application/json: examples: example: - $ref: '#/components/examples/service_400_invalid_sorting' + $ref: '#/components/examples/400_invalid_sorting' value: null schema: $ref: '#/components/schemas/ErrorList' @@ -9507,35 +9824,45 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Search Time Services + summary: Search Routers tags: - - Precision Time + - Cloud Routers x-content-type: application/json x-accepts: application/json - /fabric/v4/timeServices/{serviceId}/connections: + /fabric/v4/routerPackages: get: - description: The API provides capability to get prevision timing service's details - operationId: getTimeServicesConnectionsByServiceId + description: This API provides capability to retrieve user's Cloud Routers Packages + operationId: getCloudRouterPackages parameters: - - description: Service UUID - explode: false - in: path - name: serviceId - required: true + - description: offset + example: 1 + explode: true + in: query + name: offset + required: false schema: - $ref: '#/components/schemas/ServiceId' - style: simple + 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/serviceConnectionsResponse' + Example: + $ref: '#/components/examples/ListFCRPackagesResponse' value: null schema: - $ref: '#/components/schemas/precisionTimeServiceConnectionsResponse' - description: Return Time Service Connection + $ref: '#/components/schemas/PackageResponse' + description: Fabric Cloud Router Packages "401": content: application/json: @@ -9576,129 +9903,51 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Connection Links + summary: List Packages tags: - - Precision Time + - Cloud Routers x-accepts: application/json - /fabric/v4/timeServicePackages: + /fabric/v4/routerPackages/{routerPackageCode}: get: - description: The API provides capability to get timing service's packages - operationId: getTimeServicesPackages - parameters: [] + 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: - examples: - example: - $ref: '#/components/examples/servicePackagesResponse' - value: null schema: - $ref: '#/components/schemas/precisionTimeServicePackagesResponse' - description: Successful operation - "415": + $ref: '#/components/schemas/CloudRouterPackage' + description: Fabric Cloud Router Package details + "400": content: application/json: examples: - example: - $ref: '#/components/examples/415' + invalidPackage: + $ref: '#/components/examples/400_invalid_package' + value: null + invalidName: + $ref: '#/components/examples/400_invalid_name' + value: null + invalidAccount: + $ref: '#/components/examples/400_invalid_account' + value: null + maxLabFcrReached: + $ref: '#/components/examples/400_max_lab_fcr_demo' 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 Packages - tags: - - Precision Time - x-accepts: application/json - /fabric/v4/timeServicePackages/{packageCode}: - get: - description: The API provides capability to get timing service's package by - code - operationId: getTimeServicesPackageByCode - parameters: - - description: Package Code - explode: false - in: path - name: packageCode - required: true - schema: - enum: - - NTP_STANDARD - - NTP_ENTERPRISE - - PTP_STANDARD - - PTP_ENTERPRISE - type: string - style: simple - responses: - "200": - content: - application/json: - examples: - example: - $ref: '#/components/examples/servicePackageResponse' - value: null - schema: - $ref: '#/components/schemas/precisionTimePackageResponse' - description: Successful operation - "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 By Code - tags: - - Precision Time - x-accepts: application/json - /fabric/v4/marketplaceSubscriptions/{subscriptionId}: - get: - description: The API provides capability to get subscription - operationId: getSubscriptionById - parameters: - - description: Subscription UUID - explode: false - in: path - name: subscriptionId - required: true - schema: - $ref: '#/components/schemas/SubscriptionId' - style: simple - responses: - "200": - content: - application/json: - examples: - example: - $ref: '#/components/examples/subscription-response' - value: null - schema: - $ref: '#/components/schemas/SubscriptionResponse' - description: Successful operation - "401": + description: Bad request + "401": content: application/json: examples: @@ -9738,117 +9987,190 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Subscription + summary: Get Package Details tags: - - Marketplace Subscriptions - x-preview: false + - Cloud Routers x-accepts: application/json - /fabric/v4/streams: + /fabric/v4/health: get: - description: This API provides capability to retrieve streams - operationId: getStreams - 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 + 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: - Example: - $ref: '#/components/examples/stream-get-all-example' + metroExample: + $ref: '#/components/examples/healthResponse' value: null schema: - $ref: '#/components/schemas/GetAllStreamResponse' + $ref: '#/components/schemas/HealthResponse' description: Successful operation - "401": + 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: - example: - $ref: '#/components/examples/401' + Alibaba-ValidateAuthKey: + $ref: '#/components/examples/Response-Alibaba' value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Unauthorized - "403": - content: - application/json: - examples: - example: - $ref: '#/components/examples/403' + Aws-ValidateAuthKey: + $ref: '#/components/examples/Response-Aws' value: null - schema: - $ref: '#/components/schemas/ErrorList' - description: Forbidden - "404": - content: - application/json: - examples: - example: - $ref: '#/components/examples/404' + 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/ErrorList' - description: Not Found - "500": + $ref: '#/components/schemas/ConnectionResponse' + description: Successful operation + "400": content: application/json: examples: - example: - $ref: '#/components/examples/500' + Bad Request: + $ref: '#/components/examples/error-400' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Get Streams + description: Bad request + summary: Validate Connection tags: - - Streams + - Connections + x-content-type: application/json x-accepts: application/json + /fabric/v4/networks: post: - description: This API provides capability to create user's stream - operationId: createStreams - parameters: [] + description: This API provides capability to create user's Fabric Network + operationId: createNetwork + parameters: + - description: option to verify that API calls will succeed + explode: true + in: query + name: dryRun + required: false + schema: + default: false + type: boolean + style: form requestBody: content: application/json: examples: - CreateStream: - $ref: '#/components/examples/StreamPostRequestExample' + CreateGlobalNetwork: + $ref: '#/components/examples/CreateGlobalNetwork' + value: null + CreateRegionalNetwork: + $ref: '#/components/examples/CreateRegionalNetwork' + value: null + CreateLocalNetwork: + $ref: '#/components/examples/CreateLocalNetwork' + value: null + NetworkDryRunCreate: + $ref: '#/components/examples/CreateNetworkDryRunResponse' value: null schema: - $ref: '#/components/schemas/StreamPostRequest' + $ref: '#/components/schemas/NetworkPostRequest' required: true responses: + "200": + content: + application/json: + examples: + networkDryRun: + $ref: '#/components/examples/CreateNetworkDryRunResponse' + value: null + schema: + $ref: '#/components/schemas/Network' + description: Successful operation "202": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamResponseExample' + networkResponse: + $ref: '#/components/examples/NetworkPostResponseExample' value: null schema: - $ref: '#/components/schemas/Stream' - description: Stream object + $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 @@ -9892,38 +10214,42 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Stream + summary: Create Network tags: - - Streams + - Networks x-content-type: application/json x-accepts: application/json - /fabric/v4/streams/{streamId}: + /fabric/v4/networks/{networkId}: delete: - description: This API provides capability to delete user's stream - operationId: deleteStreamByUuid + description: This API provides capability to delete user's Fabric Network + operationId: deleteNetworkByUuid parameters: - - description: Stream UUID + - description: Network UUID explode: false in: path - name: streamId + name: networkId required: true schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/NetworkId' style: simple responses: "202": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamDeleteRequestExample' + networkResponse: + $ref: '#/components/examples/NetworkDeleteResponseExample' value: null schema: - $ref: '#/components/schemas/Stream' - description: Stream object + $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 @@ -9957,49 +10283,33 @@ paths: 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 Stream + summary: Delete Network By ID tags: - - Streams + - Networks x-accepts: application/json get: - description: This API provides capability to get user's stream - operationId: getStreamByUuid + description: This API provides capability to retrieve user's Fabric Network + operationId: getNetworkByUuid parameters: - - description: Stream UUID + - description: Network UUID explode: false in: path - name: streamId + name: networkId required: true schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/NetworkId' style: simple responses: "200": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamResponseExample' + networkResponse: + $ref: '#/components/examples/NetworkGetResponseExample' value: null schema: - $ref: '#/components/schemas/Stream' - description: Stream object - "400": - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorList' - description: Bad request + $ref: '#/components/schemas/Network' + description: Fabric Network Access point object "401": content: application/json: @@ -10030,56 +10340,53 @@ paths: 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 Stream + summary: Get Network By ID tags: - - Streams + - Networks x-accepts: application/json - put: - description: This API provides capability to update user's stream - operationId: updateStreamByUuid + patch: + description: This API provides capability to update user's Fabric Network + operationId: updateNetworkByUuid parameters: - - description: Stream UUID + - description: Network UUID explode: false in: path - name: streamId + name: networkId required: true schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/NetworkId' style: simple requestBody: content: - application/json: + application/json-patch+json: examples: - UpdateStream: - $ref: '#/components/examples/StreamPutRequestExample' + UpdateName: + $ref: '#/components/examples/UpdateNetworkName' + value: null + UpdateNotificationEmail: + $ref: '#/components/examples/UpdateNetworkNotifications' value: null schema: - $ref: '#/components/schemas/StreamPutRequest' + $ref: '#/components/schemas/NetworkUpdateRequest' required: true responses: - "202": + "200": content: application/json: examples: - StreamResponse: - $ref: '#/components/examples/StreamResponseExample' + networkResponse: + $ref: '#/components/examples/NetworkPatchResponseExample' value: null schema: - $ref: '#/components/schemas/Stream' - description: Stream object + $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 @@ -10123,153 +10430,118 @@ paths: 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 Stream + summary: Update Network By ID tags: - - Streams - x-content-type: application/json + - Networks + x-content-type: application/json-patch+json x-accepts: application/json - /fabric/v4/streamAssets/search: + /fabric/v4/networks/search: post: - description: This API provides capability to retrieve stream assets - operationId: getStreamsAssets - 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 + 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: - SearchAssets: - $ref: '#/components/examples/StreamAssetSearchRequestExample' + SearchFilterByStatus: + $ref: '#/components/examples/SearchFilterByStatus' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchFilterOrAnd' value: null schema: - $ref: '#/components/schemas/StreamAssetSearchRequest' + $ref: '#/components/schemas/NetworkSearchRequest' required: true responses: "200": content: application/json: examples: - Example: - $ref: '#/components/examples/stream-asset-get-all-example' + networkResponse: + $ref: '#/components/examples/NetworkSearchResponseExample' value: null schema: - $ref: '#/components/schemas/GetAllStreamAssetResponse' - description: Successful operation - "401": + $ref: '#/components/schemas/NetworkSearchResponse' + description: Fabric Network Access point object + "400": content: application/json: examples: example: - $ref: '#/components/examples/401' + $ref: '#/components/examples/400_invalid_sorting' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Unauthorized - "403": + description: Bad request + "401": content: application/json: examples: example: - $ref: '#/components/examples/403' + $ref: '#/components/examples/401' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Forbidden - "404": + description: Unauthorized + "403": content: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/403' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found - "500": + description: Forbidden + "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 Assets + description: Unsupported Media Type + summary: Search Network tags: - - Streams + - Networks x-content-type: application/json x-accepts: application/json - /fabric/v4/streams/{streamId}/{asset}/{assetId}: - delete: - description: This API provides capability to detach an asset from a stream - operationId: deleteStreamAssetByUuid + /fabric/v4/networks/{networkId}/connections: + get: + description: The API provides capability to get list of user's Fabric Network + connections + operationId: getConnectionsByNetworkUuid parameters: - - description: asset UUID + - description: Network UUID explode: false in: path - name: assetId + name: networkId required: true schema: - $ref: '#/components/schemas/AssetId' - style: simple - - description: asset - explode: false - in: path - name: asset - required: true - schema: - $ref: '#/components/schemas/Asset' - style: simple - - description: Stream UUID - explode: false - in: path - name: streamId - required: true - schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/NetworkId' style: simple responses: - "202": + "200": content: application/json: examples: - StreamAssetResponse: - $ref: '#/components/examples/StreamRouterAssetDetachResponseExample' + networkResponse: + $ref: '#/components/examples/GetNetworkConnectionExample' value: null schema: - $ref: '#/components/schemas/StreamAsset' - description: Stream object + $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 @@ -10293,73 +10565,129 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "404": + "415": content: application/json: examples: example: - $ref: '#/components/examples/404' + $ref: '#/components/examples/415' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Not Found - "500": + 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/500' + $ref: '#/components/examples/400_invalid_uuid' value: null schema: $ref: '#/components/schemas/ErrorList' - description: Internal server error - summary: Detach Asset + 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: - - Streams + - Networks x-accepts: application/json + /fabric/v4/networks/{networkId}/changes/{changeId}: get: - description: This API provides capability to get user's assets attached to a - stream - operationId: getStreamAssetByUuid + description: This API provides capability to retrieve user's Fabric Network + Change + operationId: getNetworkChangeByUuid parameters: - - description: asset UUID - explode: false - in: path - name: assetId - required: true - schema: - $ref: '#/components/schemas/AssetId' - style: simple - - description: asset + - description: Network UUID explode: false in: path - name: asset + name: networkId required: true schema: - $ref: '#/components/schemas/Asset' + $ref: '#/components/schemas/NetworkId' style: simple - - description: Stream UUID + - description: Network Change UUID explode: false in: path - name: streamId + name: changeId required: true schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/ChangeId_5' style: simple responses: "200": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamConnectionAssetResponseExample' + networkResponse: + $ref: '#/components/examples/NetworkGetChangeResponseExample' value: null schema: - $ref: '#/components/schemas/StreamAsset' - description: Stream asset object + $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 @@ -10393,72 +10721,196 @@ paths: 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 Asset + summary: Get Change By ID tags: - - Streams + - Networks x-accepts: application/json - put: - description: This API provides capability to attach an asset to a stream - operationId: updateStreamAssetByUuid - parameters: - - description: asset UUID - explode: false - in: path - name: assetId - required: true - schema: - $ref: '#/components/schemas/AssetId' - style: simple - - description: asset - explode: false - in: path - name: asset - required: true - schema: - $ref: '#/components/schemas/Asset' - style: simple - - description: Stream UUID - explode: false - in: path - name: streamId - required: true - schema: - $ref: '#/components/schemas/StreamId' - style: simple + /fabric/v4/timeServices: + post: + description: The API provides capability to create Precision Time service + operationId: createTimeServices + parameters: [] requestBody: content: application/json: examples: - UpdateStream: - $ref: '#/components/examples/StreamAssetPutRequestExample' + ntpStandard: + $ref: '#/components/examples/ntpStandardService' + value: null + ptpStandard: + $ref: '#/components/examples/ptpStandardService' + value: null + ntpEnterprise: + $ref: '#/components/examples/ntpEnterpriseService' + value: null + ptpEnterprise: + $ref: '#/components/examples/ptpEnterpriseService' + value: null + ptpStandardWithAdvancedConfiguration: + $ref: '#/components/examples/ptpStandardWithAdvancedConfiguration' + value: null + ptpEnterpriseWithAdvancedConfiguration: + $ref: '#/components/examples/ptpEnterpriseWithAdvancedConfiguration' + value: null + ntpEnterpriseWithAdvancedConfiguration: + $ref: '#/components/examples/ntpEnterpriseWithAdvancedConfiguration' value: null schema: - $ref: '#/components/schemas/StreamAssetPutRequest' + $ref: '#/components/schemas/precisionTimeServiceRequest' required: true responses: "202": content: application/json: examples: - StreamAssetResponse: - $ref: '#/components/examples/StreamRouterAssetAttachResponseExample' + ntpStandard: + $ref: '#/components/examples/ntpStandardCreateResponse' + value: null + ntpEnterprise: + $ref: '#/components/examples/ntpEnterpriseCreateResponse' + value: null + ptpStandard: + $ref: '#/components/examples/ptpStandardCreateResponse' + value: null + ptpEnterprise: + $ref: '#/components/examples/ptpEnterpriseCreateResponse' value: null schema: - $ref: '#/components/schemas/StreamAsset' - description: Stream object + $ref: '#/components/schemas/precisionTimeServiceResponse' + description: Successful Accepted operation "400": content: application/json: + examples: + 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 @@ -10482,16 +10934,6 @@ paths: 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: @@ -10512,53 +10954,36 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Attach Asset + summary: Create Time Service tags: - - Streams + - Precision Time x-content-type: application/json x-accepts: application/json - /fabric/v4/streams/{streamId}/streamSubscriptions: - get: - description: This API provides capability to retrieve subscriptions in a stream - operationId: getSubscriptionsInStream + /fabric/v4/timeServices/{serviceId}: + delete: + description: The API provides capability to delete Precision Time Service by + service id. + operationId: deleteTimeServiceById parameters: - - description: Stream UUID + - description: Service UUID explode: false in: path - name: streamId + name: serviceId required: true schema: - $ref: '#/components/schemas/StreamId' + $ref: '#/components/schemas/ServiceId' 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": + "202": content: application/json: examples: - Example: - $ref: '#/components/examples/stream-get-all-subscription-example' + ntpStandard: + $ref: '#/components/examples/ntpStandardDeletingResponse' value: null schema: - $ref: '#/components/schemas/GetSubscriptionsInStreamResponse' - description: Successful operation + $ref: '#/components/schemas/precisionTimeServiceResponse' + description: Successful Delete "401": content: application/json: @@ -10589,6 +11014,16 @@ paths: 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: @@ -10599,44 +11034,63 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Stream's Subs + summary: Delete by ID. tags: - - Streams + - Precision Time x-accepts: application/json - /fabric/v4/streamSubscriptions: get: - description: This API provides capability to retrieve stream subscriptions - operationId: getStreamSubscriptions + description: The API provides capability to get Precision Time Service details + operationId: getTimeServicesById 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 + - description: Service UUID + explode: false + in: path + name: serviceId + required: true schema: - type: integer - style: form + $ref: '#/components/schemas/ServiceId' + style: simple responses: "200": content: application/json: examples: - Example: - $ref: '#/components/examples/stream-subscription-get-all-example' + ntpStandardOriginPort: + $ref: '#/components/examples/ntpStandardResponseASidePort' + value: null + ntpStandardOriginVirtualDevice: + $ref: '#/components/examples/ntpStandardResponseASideVirtualDevice' + value: null + ntpStandardOriginCloudRouter: + $ref: '#/components/examples/ntpStandardResponseASideCloudRouter' + value: null + ntpEnterpriseOriginPort: + $ref: '#/components/examples/ntpEnterpriseWOMD5ResponseASidePort' + value: null + ntpEnterpriseWithAdvConfigOriginPort: + $ref: '#/components/examples/ntpEnterpriseResponseASidePort' + value: null + ntpEnterpriseWithAdvConfigOriginVirtualDevice: + $ref: '#/components/examples/ntpEnterpriseResponseASideVirtualDevice' + value: null + ntpEnterpriseWithAdvConfigOriginCloudRouter: + $ref: '#/components/examples/ntpEnterpriseResponseASideCloudRouter' + value: null + ptpStandardOriginPort: + $ref: '#/components/examples/ptpStandardResponse' + value: null + ptpEnterpriseOriginPort: + $ref: '#/components/examples/ptpEnterpriseResponse' value: null schema: - $ref: '#/components/schemas/GetAllStreamSubscriptionResponse' + $ref: '#/components/schemas/precisionTimeServiceResponse' description: Successful operation + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorList' + description: Bad request "401": content: application/json: @@ -10667,6 +11121,16 @@ paths: 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: @@ -10677,47 +11141,193 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Subscriptions + summary: Get Service By ID. tags: - - Stream Subscriptions + - Precision Time x-accepts: application/json - post: - description: This API provides capability to create user's Stream Subscriptions - operationId: createStreamSubscriptions - parameters: [] + patch: + description: The API provides capability to update Precision Time Service by + service id. + 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: + application/json-patch+json: examples: - CreateStreamSubscription_Splunk: - $ref: '#/components/examples/StreamSubscriptionPostRequestExampleSplunk' + updateName: + $ref: '#/components/examples/updateName' value: null - CreateStreamSubscription_Slack: - $ref: '#/components/examples/StreamSubscriptionPostRequestExampleSlack' + updatePackageCode: + $ref: '#/components/examples/updatePackageCode' value: null - CreateStreamSubscription_Pagerduty: - $ref: '#/components/examples/StreamSubscriptionPostRequestExamplePagerduty' + updateNetworkInformation: + $ref: '#/components/examples/updateNetworkInformation' value: null - CreateStreamSubscription_Datadog: - $ref: '#/components/examples/StreamSubscriptionPostRequestExampleDatadog' + updatePtpAdvancedConfiguration: + $ref: '#/components/examples/updatePtpAdvancedConfiguration' + value: null + updateNtpAdvancedConfiguration: + $ref: '#/components/examples/updateNtpAdvancedConfiguration' value: null schema: - $ref: '#/components/schemas/StreamSubscriptionPostRequest' + items: + $ref: '#/components/schemas/precisionTimeChangeOperation' + maxItems: 1 + minItems: 1 + type: array required: true responses: "202": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamSubscriptionResponseExample' + ntpStandard: + $ref: '#/components/examples/ntpStandardReprovisionResponse' value: null schema: - $ref: '#/components/schemas/StreamSubscription' - description: Stream Subscription object + $ref: '#/components/schemas/precisionTimeServiceResponse' + description: Successful Accepted operation "400": content: application/json: + examples: + 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 @@ -10741,6 +11351,16 @@ paths: 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: @@ -10761,38 +11381,187 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Create Subscription + summary: Update By ID. tags: - - Stream Subscriptions - x-content-type: application/json + - Precision Time + x-content-type: application/json-patch+json x-accepts: application/json - /fabric/v4/streamSubscriptions/{streamSubscriptionId}: - delete: - description: This API provides capability to delete user's Stream Subscriptions - operationId: deleteStreamSubscriptionByUuid + put: + description: The API provides capability to Configure/Fulfill the Precision + Time Service. + operationId: fulfillTimeServices parameters: - - description: Stream Subscription UUID + - description: Service UUID explode: false in: path - name: streamSubscriptionId + name: serviceId required: true schema: - $ref: '#/components/schemas/StreamSubscriptionId' + $ref: '#/components/schemas/ServiceId' style: simple + requestBody: + content: + application/json: + examples: + ntpStandard: + $ref: '#/components/examples/configureStandardService' + value: null + ptpStandard: + $ref: '#/components/examples/configureStandardService' + value: null + ntpEnterpriseWithAdvanceConfiguration: + $ref: '#/components/examples/configureNtpEnterpriseAdvancedConfig' + value: null + ptpEnterpriseWithAdvanceConfiguration: + $ref: '#/components/examples/configurePtpWithAdvancedConfig' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServiceRequest' + required: true responses: "202": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamSubscriptionDeleteResponseExample' + ntpStandard: + $ref: '#/components/examples/ntpStandardConfigureResponse' value: null schema: - $ref: '#/components/schemas/StreamSubscription' - description: Stream Subscription object + $ref: '#/components/schemas/precisionTimeServiceResponse' + description: Successful Accepted operation "400": content: application/json: + examples: + 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 @@ -10826,6 +11595,16 @@ paths: 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: @@ -10836,36 +11615,51 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Delete Subscription + summary: Configure Service. tags: - - Stream Subscriptions + - Precision Time + x-content-type: application/json x-accepts: application/json - get: - description: This API provides capability to delete user's get Stream Subscriptions - operationId: getStreamSubscriptionByUuid - parameters: - - description: Stream Subscription UUID - explode: false - in: path - name: streamSubscriptionId + /fabric/v4/timeServices/search: + post: + description: "The API provides capability to get list of user's Time Services\ + \ using search criteria, including optional filtering, pagination and sorting" + operationId: searchTimeServices + parameters: [] + requestBody: + content: + application/json: + examples: + SearchFilterByStatus: + $ref: '#/components/examples/SearchTimeServicesFilterByStatus' + value: null + SearchFilterByNameAndProtocol: + $ref: '#/components/examples/SearchTimeServicesByNameAndProtocol' + value: null + SearchFilterOrAnd: + $ref: '#/components/examples/SearchTimeServicesFilterOrAnd' + value: null + schema: + $ref: '#/components/schemas/TimeServicesSearchRequest' required: true - schema: - $ref: '#/components/schemas/StreamSubscriptionId' - style: simple responses: "200": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamSubscriptionResponseExample' + Example: + $ref: '#/components/examples/serviceSearchResponse' value: null schema: - $ref: '#/components/schemas/StreamSubscription' - description: Stream Subscription object + $ref: '#/components/schemas/ServiceSearchResponse' + description: Successful operation "400": content: application/json: + examples: + example: + $ref: '#/components/examples/service_400_invalid_sorting' + value: null schema: $ref: '#/components/schemas/ErrorList' description: Bad request @@ -10889,16 +11683,16 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "404": + "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: @@ -10909,49 +11703,35 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Internal server error - summary: Get Subscription + summary: Search Time Services tags: - - Stream Subscriptions + - Precision Time + x-content-type: application/json x-accepts: application/json - put: - description: This API provides capability to update user's Stream Subscriptions - operationId: updateStreamSubscriptionByUuid + /fabric/v4/timeServices/{serviceId}/connections: + get: + description: The API provides capability to get prevision timing service's details + operationId: getTimeServicesConnectionsByServiceId parameters: - - description: Stream Subscription UUID + - description: Service UUID explode: false in: path - name: streamSubscriptionId + name: serviceId required: true schema: - $ref: '#/components/schemas/StreamSubscriptionId' + $ref: '#/components/schemas/ServiceId' style: simple - requestBody: - content: - application/json: - examples: - UpdateSubscription: - $ref: '#/components/examples/StreamSubscriptionPutRequestExample' - value: null - schema: - $ref: '#/components/schemas/StreamSubscriptionPutRequest' - required: true responses: - "202": + "200": content: application/json: examples: - StreamSubscriptionResponse: - $ref: '#/components/examples/StreamSubscriptionResponseExample' + example: + $ref: '#/components/examples/serviceConnectionsResponse' value: null schema: - $ref: '#/components/schemas/StreamSubscription' - description: Stream Subscription object - "400": - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorList' - description: Bad request + $ref: '#/components/schemas/precisionTimeServiceConnectionsResponse' + description: Return Time Service Connection "401": content: application/json: @@ -10972,16 +11752,1431 @@ paths: schema: $ref: '#/components/schemas/ErrorList' description: Forbidden - "404": + "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' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Connection Links + tags: + - Precision Time + x-accepts: application/json + /fabric/v4/timeServicePackages: + get: + description: The API provides capability to get timing service's packages + operationId: getTimeServicesPackages + parameters: [] + responses: + "200": + content: + application/json: + examples: + example: + $ref: '#/components/examples/servicePackagesResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimeServicePackagesResponse' + description: Successful operation + "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 Packages + tags: + - Precision Time + x-accepts: application/json + /fabric/v4/timeServicePackages/{packageCode}: + get: + description: The API provides capability to get timing service's package by + code + operationId: getTimeServicesPackageByCode + parameters: + - description: Package Code + explode: false + in: path + name: packageCode + required: true + schema: + enum: + - NTP_STANDARD + - NTP_ENTERPRISE + - PTP_STANDARD + - PTP_ENTERPRISE + type: string + style: simple + responses: + "200": + content: + application/json: + examples: + example: + $ref: '#/components/examples/servicePackageResponse' + value: null + schema: + $ref: '#/components/schemas/precisionTimePackageResponse' + description: Successful operation + "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 By Code + tags: + - Precision Time + x-accepts: application/json + /fabric/v4/marketplaceSubscriptions/{subscriptionId}: + get: + description: The API provides capability to get subscription + operationId: getSubscriptionById + parameters: + - description: Subscription UUID + explode: false + in: path + name: subscriptionId + required: true + schema: + $ref: '#/components/schemas/SubscriptionId' + style: simple + responses: + "200": + content: + application/json: + examples: + example: + $ref: '#/components/examples/subscription-response' + value: null + schema: + $ref: '#/components/schemas/SubscriptionResponse' + 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: Get Subscription + tags: + - Marketplace Subscriptions + x-accepts: application/json + /fabric/v4/streams: + get: + description: This API provides capability to retrieve streams + operationId: getStreams + 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/stream-get-all-example' + value: null + schema: + $ref: '#/components/schemas/GetAllStreamResponse' + 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 + "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 Streams + tags: + - Streams + x-accepts: application/json + post: + description: This API provides capability to create user's stream + operationId: createStreams + parameters: [] + requestBody: + content: + application/json: + examples: + CreateStream: + $ref: '#/components/examples/StreamPostRequestExample' + value: null + schema: + $ref: '#/components/schemas/StreamPostRequest' + required: true + responses: + "202": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamResponseExample' + value: null + schema: + $ref: '#/components/schemas/Stream' + description: Stream object + "400": + content: + application/json: + 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 Stream + tags: + - Streams + x-content-type: application/json + x-accepts: application/json + /fabric/v4/streams/{streamId}: + delete: + description: This API provides capability to delete user's stream + operationId: deleteStreamByUuid + parameters: + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + responses: + "202": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamDeleteRequestExample' + value: null + schema: + $ref: '#/components/schemas/Stream' + description: Stream object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Delete Stream + tags: + - Streams + x-accepts: application/json + get: + description: This API provides capability to get user's stream + operationId: getStreamByUuid + parameters: + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + responses: + "200": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamResponseExample' + value: null + schema: + $ref: '#/components/schemas/Stream' + description: Stream object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Stream + tags: + - Streams + x-accepts: application/json + put: + description: This API provides capability to update user's stream + operationId: updateStreamByUuid + parameters: + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + requestBody: + content: + application/json: + examples: + UpdateStream: + $ref: '#/components/examples/StreamPutRequestExample' + value: null + schema: + $ref: '#/components/schemas/StreamPutRequest' + required: true + responses: + "202": + content: + application/json: + examples: + StreamResponse: + $ref: '#/components/examples/StreamResponseExample' + value: null + schema: + $ref: '#/components/schemas/Stream' + description: Stream object + "400": + content: + application/json: + 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 Stream + tags: + - Streams + x-content-type: application/json + x-accepts: application/json + /fabric/v4/streamAssets/search: + post: + description: This API provides capability to retrieve stream assets + operationId: getStreamsAssets + 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 + requestBody: + content: + application/json: + examples: + SearchAssets: + $ref: '#/components/examples/StreamAssetSearchRequestExample' + value: null + schema: + $ref: '#/components/schemas/StreamAssetSearchRequest' + required: true + responses: + "200": + content: + application/json: + examples: + Example: + $ref: '#/components/examples/stream-asset-get-all-example' + value: null + schema: + $ref: '#/components/schemas/GetAllStreamAssetResponse' + 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 + "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 Assets + tags: + - Streams + x-content-type: application/json + x-accepts: application/json + /fabric/v4/streams/{streamId}/{asset}/{assetId}: + delete: + description: This API provides capability to detach an asset from a stream + operationId: deleteStreamAssetByUuid + parameters: + - description: asset UUID + explode: false + in: path + name: assetId + required: true + schema: + $ref: '#/components/schemas/AssetId' + style: simple + - description: asset + explode: false + in: path + name: asset + required: true + schema: + $ref: '#/components/schemas/Asset' + style: simple + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + responses: + "202": + content: + application/json: + examples: + StreamAssetResponse: + $ref: '#/components/examples/StreamRouterAssetDetachResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamAsset' + description: Stream object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Detach Asset + tags: + - Streams + x-accepts: application/json + get: + description: This API provides capability to get user's assets attached to a + stream + operationId: getStreamAssetByUuid + parameters: + - description: asset UUID + explode: false + in: path + name: assetId + required: true + schema: + $ref: '#/components/schemas/AssetId' + style: simple + - description: asset + explode: false + in: path + name: asset + required: true + schema: + $ref: '#/components/schemas/Asset' + style: simple + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + responses: + "200": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamConnectionAssetResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamAsset' + description: Stream asset object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Asset + tags: + - Streams + x-accepts: application/json + put: + description: This API provides capability to attach an asset to a stream + operationId: updateStreamAssetByUuid + parameters: + - description: asset UUID + explode: false + in: path + name: assetId + required: true + schema: + $ref: '#/components/schemas/AssetId' + style: simple + - description: asset + explode: false + in: path + name: asset + required: true + schema: + $ref: '#/components/schemas/Asset' + style: simple + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + style: simple + requestBody: + content: + application/json: + examples: + UpdateStream: + $ref: '#/components/examples/StreamAssetPutRequestExample' + value: null + schema: + $ref: '#/components/schemas/StreamAssetPutRequest' + required: true + responses: + "202": + content: + application/json: + examples: + StreamAssetResponse: + $ref: '#/components/examples/StreamRouterAssetAttachResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamAsset' + description: Stream object + "400": + content: + application/json: + 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: Attach Asset + tags: + - Streams + x-content-type: application/json + x-accepts: application/json + /fabric/v4/streams/{streamId}/streamSubscriptions: + get: + description: This API provides capability to retrieve subscriptions in a stream + operationId: getSubscriptionsInStream + parameters: + - description: Stream UUID + explode: false + in: path + name: streamId + required: true + schema: + $ref: '#/components/schemas/StreamId' + 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: + Example: + $ref: '#/components/examples/stream-get-all-subscription-example' + value: null + schema: + $ref: '#/components/schemas/GetSubscriptionsInStreamResponse' + 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 + "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 Stream's Subs + tags: + - Streams + x-accepts: application/json + /fabric/v4/streamSubscriptions: + get: + description: This API provides capability to retrieve stream subscriptions + operationId: getStreamSubscriptions + 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/stream-subscription-get-all-example' + value: null + schema: + $ref: '#/components/schemas/GetAllStreamSubscriptionResponse' + 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 + "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 Subscriptions + tags: + - Stream Subscriptions + x-accepts: application/json + post: + description: This API provides capability to create user's Stream Subscriptions + operationId: createStreamSubscriptions + parameters: [] + requestBody: + content: + application/json: + examples: + CreateStreamSubscription_Splunk: + $ref: '#/components/examples/StreamSubscriptionPostRequestExampleSplunk' + value: null + CreateStreamSubscription_Slack: + $ref: '#/components/examples/StreamSubscriptionPostRequestExampleSlack' + value: null + CreateStreamSubscription_Pagerduty: + $ref: '#/components/examples/StreamSubscriptionPostRequestExamplePagerduty' + value: null + CreateStreamSubscription_Datadog: + $ref: '#/components/examples/StreamSubscriptionPostRequestExampleDatadog' + value: null + schema: + $ref: '#/components/schemas/StreamSubscriptionPostRequest' + required: true + responses: + "202": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamSubscriptionResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamSubscription' + description: Stream Subscription object + "400": + content: + application/json: + 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 Subscription + tags: + - Stream Subscriptions + x-content-type: application/json + x-accepts: application/json + /fabric/v4/streamSubscriptions/{streamSubscriptionId}: + delete: + description: This API provides capability to delete user's Stream Subscriptions + operationId: deleteStreamSubscriptionByUuid + parameters: + - description: Stream Subscription UUID + explode: false + in: path + name: streamSubscriptionId + required: true + schema: + $ref: '#/components/schemas/StreamSubscriptionId' + style: simple + responses: + "202": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamSubscriptionDeleteResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamSubscription' + description: Stream Subscription object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Delete Subscription + tags: + - Stream Subscriptions + x-accepts: application/json + get: + description: This API provides capability to delete user's get Stream Subscriptions + operationId: getStreamSubscriptionByUuid + parameters: + - description: Stream Subscription UUID + explode: false + in: path + name: streamSubscriptionId + required: true + schema: + $ref: '#/components/schemas/StreamSubscriptionId' + style: simple + responses: + "200": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamSubscriptionResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamSubscription' + description: Stream Subscription object + "400": + content: + application/json: + 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 + "500": + content: + application/json: + examples: + example: + $ref: '#/components/examples/500' + value: null + schema: + $ref: '#/components/schemas/ErrorList' + description: Internal server error + summary: Get Subscription + tags: + - Stream Subscriptions + x-accepts: application/json + put: + description: This API provides capability to update user's Stream Subscriptions + operationId: updateStreamSubscriptionByUuid + parameters: + - description: Stream Subscription UUID + explode: false + in: path + name: streamSubscriptionId + required: true + schema: + $ref: '#/components/schemas/StreamSubscriptionId' + style: simple + requestBody: + content: + application/json: + examples: + UpdateSubscription: + $ref: '#/components/examples/StreamSubscriptionPutRequestExample' + value: null + schema: + $ref: '#/components/schemas/StreamSubscriptionPutRequest' + required: true + responses: + "202": + content: + application/json: + examples: + StreamSubscriptionResponse: + $ref: '#/components/examples/StreamSubscriptionResponseExample' + value: null + schema: + $ref: '#/components/schemas/StreamSubscription' + description: Stream Subscription object + "400": + content: + application/json: + 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: @@ -12974,6 +15169,71 @@ components: emails: - test@equinix.com - test1@equinix.com + CreateConnectionDryRunRequest: + value: + type: EVPL_VC + name: My-EVPL-Connection + bandwidth: 500 + redundancy: + priority: PRIMARY + aSide: + accessPoint: + type: COLO + port: + uuid: 2a4fb415-5a7f-436f-bae6-02f5e403deec + linkProtocol: + type: DOT1Q + vlanTag: 1137 + zSide: + accessPoint: + type: SP + profile: + type: L2_PROFILE + uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 + location: + metroCode: DC + project: + projectId: 41418 + order: + purchaseOrderNumber: 1-129105284100 + notifications: + - type: ALL + emails: + - test@test.com + CreateConnectionDryRunResponse: + value: + type: EVPL_VC + name: My-EVPL-Connection + bandwidth: 500 + redundancy: + priority: PRIMARY + aSide: + accessPoint: + type: COLO + port: + href: https://api.equinix.com/fabric/v4/ports/2a4fb415-5a7f-436f-bae6-02f5e403deec + uuid: 2a4fb415-5a7f-436f-bae6-02f5e403deec + linkProtocol: + type: DOT1Q + vlanTag: 1137 + zSide: + accessPoint: + type: SP + profile: + href: https://api.equinix.com/fabric/v4/serviceProfiles/92dc376a-a932-43aa-a6a2-c806dedbd784 + type: L2_PROFILE + uuid: 92dc376a-a932-43aa-a6a2-c806dedbd784 + location: + metroHref: https://api.equinix.com/fabric/v4/metros/DC + metroCode: DC + project: + projectId: 41418 + order: + purchaseOrderNumber: 1-129105284100 + notifications: + - type: ALL + emails: + - test@test.com ConnectionExample: value: href: https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62 @@ -13215,7 +15475,7 @@ components: createdDateTime: 2022-10-05T19:37:12.748Z Vd2ServiceToken_Response: value: - href: http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8 + href: https://api.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8 type: EVPL_VC uuid: ebc37e2e-c36b-4e93-86a4-fc4efce7abc8 name: Test ST @@ -13266,7 +15526,7 @@ components: metroName: Ashburn metroCode: DC port: - href: http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee + href: https://api.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: @@ -13908,7 +16168,7 @@ components: Metal2Sp-IBM-Response: value: type: EVPL_VC - href: http://qa3api.corp.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a + href: https://api.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a uuid: f0e56501-d92f-4ca3-b047-f95628d4a32a name: Metal2IBM-Connection operation: @@ -13945,7 +16205,7 @@ components: location: metroCode: SV profile: - href: http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026 + href: https://api.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026 type: L2_PROFILE name: IBM Cloud Direct Link 2 uuid: 317dcd1c-83ba-4d7c-994a-3e7ddb875026 @@ -13954,7 +16214,7 @@ components: Metal2Port-Dot1q-Response: value: type: EVPL_VC - href: http://qa3api.corp.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd + href: https://api.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd uuid: 02b7b7d4-1726-4451-9598-e28091c096cd name: Metal2Port-dot1q operation: @@ -13991,8 +16251,8 @@ components: location: metroCode: SV port: + href: https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243 type: XF_PORT - href: http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243 uuid: 6c73d02c-87e1-4642-8e18-01eb4b87e243 name: 290061-SV1-CX-SEC-01 linkProtocol: @@ -14001,7 +16261,7 @@ components: Metal2Port-Qinq-Response: value: type: EVPL_VC - href: http://qa3api.corp.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d + href: https://api.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d uuid: d87489aa-c32d-4756-a81a-6f557afb871d name: Metal2Port-qinq operation: @@ -14038,8 +16298,8 @@ components: location: metroCode: SV port: + href: https://api.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d type: XF_PORT - href: http://qa3api.corp.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d uuid: 4ff4047c-7217-4b79-9943-c2c4a2f7324d name: 290061-SV1-CX-PRI-02 linkProtocol: @@ -14049,7 +16309,7 @@ components: Metal2ServiceToken-Response: value: type: EVPL_VC - href: http://qa3api.corp.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028 + href: https://api.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028 uuid: f712745e-ccf9-4a0d-9e4d-83c1bb5b9028 name: Metal2ServiceToken operation: @@ -14083,7 +16343,7 @@ components: uuid: 497f6eca-6276-4993-bfeb-53cbbbba6f08 zSide: serviceToken: - href: http://qa3api.corp.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90 + href: https://api.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90 uuid: bc1383be-579a-4d75-ae19-b0d487bbff90 project: projectId: "377533000114703" @@ -14091,8 +16351,8 @@ components: location: metroCode: SV port: + href: https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243 type: XF_PORT - href: http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243 uuid: 6c73d02c-87e1-4642-8e18-01eb4b87e243 name: 290061-SV1-CX-SEC-01 linkProtocol: @@ -14101,7 +16361,7 @@ components: Metal2Sp-Generic-Response: value: type: EVPL_VC - href: http://qa3api.corp.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94 + href: https://api.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94 uuid: 1a9ffa8f-d4d4-44ab-9733-362c9a36ec94 name: Metal2Generic operation: @@ -14138,7 +16398,7 @@ components: location: metroCode: SV profile: - href: http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d + href: https://api.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d type: L2_PROFILE name: Generic Service Profile uuid: f1a247aa-8f86-4a89-88c2-72497686cd0d @@ -14597,6 +16857,13 @@ components: uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 sellerRegion: us-west2 authenticationKey: xxxx-xxxx/us-west2/1 + "400_dry_run": + value: + - errorCode: EQ-3142411 + errorMessage: Dry run is not supported for this connection type + correlationId: 1012536-0000-108258589231-api + additionalInfo: + - reason: queryParam:dryRun createBulkGeneric: value: data: @@ -17909,6 +20176,102 @@ components: operator: = values: - "false" + PrecisionTimeNtpStandardPackage: + value: + filter: + and: + - property: /type + operator: = + values: + - PRECISION_TIME_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "270001" + - property: /timeService/type + operator: = + values: + - NTP + - property: /timeService/package/code + operator: = + values: + - NTP_STANDARD + - property: /connection/aSide/accessPoint/location/ibx + operator: = + values: + - CH3 + PrecisionTimeNtpEnterprisePackage: + value: + filter: + and: + - property: /type + operator: = + values: + - PRECISION_TIME_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "270001" + - property: /timeService/type + operator: = + values: + - NTP + - property: /timeService/package/code + operator: = + values: + - NTP_ENTERPRISE + - property: /connection/aSide/accessPoint/location/metroCode + operator: = + values: + - CH + PrecisionTimePtpStandardPackage: + value: + filter: + and: + - property: /type + operator: = + values: + - PRECISION_TIME_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "270001" + - property: /timeService/type + operator: = + values: + - PTP + - property: /timeService/package/code + operator: = + values: + - PTP_STANDARD + - property: /connection/aSide/accessPoint/location/ibx + operator: = + values: + - CH3 + PrecisionTimePtpEnterprisePackage: + value: + filter: + and: + - property: /type + operator: = + values: + - PRECISION_TIME_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "270001" + - property: /timeService/type + operator: = + values: + - PTP + - property: /timeService/package/code + operator: = + values: + - PTP_ENTERPRISE + - property: /connection/aSide/accessPoint/location/ibx + operator: = + values: + - CH3 VirtualConnection: value: pagination: @@ -18018,6 +20381,33 @@ components: serviceType: EPL settings: buyout: false + PrecisionTimeService: + value: + pagination: + offset: 0 + limit: 1 + total: 1 + data: + - type: PRECISION_TIME_PRODUCT + code: EDG00009.PROD + name: Equinix Precision Time Product + description: Equinix Precision Time Product + account: + accountNumber: 270001 + charges: + - type: MONTHLY_RECURRING + price: 495 + currency: USD + timeService: + type: NTP + package: + code: NTP_STANDARD + connection: + aSide: + accessPoint: + location: + metroCode: CH + ibx: CH3 "400_prices": value: - errorCode: EQ-3038010 @@ -19429,47 +21819,10 @@ components: type: VC_TOKEN name: Az_Zside_Dot1Q_Pri_SV description: Az_Zside_Dot1Q_Pri_SV_Description - issuerSide: Z_Side - connection: - type: EVPL_VC - allowRemoteConnection: true - allowCustombandwidth: false - supportedBandwidths: - - 10 - - 50 - - 200 - - 500 - - 1000 - - 2000 - - 5000 - - 10000 - - 25000 - - 50000 - zSide: - accessPointSelectors: - - type: COLO - hideAssetInfo: false - port: - uuid: b840a1db-5413-413f-97e0-328a5c00a874 - linkProtocol: - type: QINQ - vlanCTag: 1399 - vlanSTag: 1388 - expirationDateTime: 2021-03-18T06:43:49.980Z - notifications: - - type: NOTIFICATION - emails: - - abc@company.com - createZsideServiceTokenWithQnQ-CRH: - value: - type: VC_TOKEN - name: Az_Zside_Dot1Q_Pri_SV - description: Az_Zside_Dot1Q_Pri_SV_Description - issuerSide: Z_Side connection: type: EVPL_VC allowRemoteConnection: true - allowCustombandwidth: false + allowCustomBandwidth: false supportedBandwidths: - 10 - 50 @@ -19484,7 +21837,6 @@ components: zSide: accessPointSelectors: - type: COLO - hideAssetInfo: false port: uuid: b840a1db-5413-413f-97e0-328a5c00a874 linkProtocol: @@ -19495,7 +21847,6 @@ components: accountNumber: 272010 project: projectId: 30ad25e2-53dc-11ed-bdc3-0242ac120002 - expiry: 1 expirationDateTime: 2021-03-18T06:43:49.980Z notifications: - type: NOTIFICATION @@ -19506,11 +21857,10 @@ components: type: VC_TOKEN name: Az_Zside_Dot1Q_Pri_SV description: Az_Zside_Dot1Q_Pri_SV_Description - issuerSide: Z_Side connection: type: EVPL_VC allowRemoteConnection: true - allowCustombandwidth: false + allowCustomBandwidth: false supportedBandwidths: - 10 - 50 @@ -19525,7 +21875,6 @@ components: zSide: accessPointSelectors: - type: COLO - hideAssetInfo: false port: uuid: b840a1db-5413-413f-97e0-328a5c00a874 linkProtocol: @@ -19541,7 +21890,6 @@ components: type: VC_TOKEN name: Az_Zside_VxLAN_Pri_SV description: Az_Zside_VxLAN_Pri_SV_Description - issuerSide: Z_Side connection: type: EVPL_VC allowRemoteConnection: true @@ -19560,7 +21908,6 @@ components: zSide: accessPointSelectors: - type: COLO - hideAssetInfo: false port: uuid: b840a1db-5413-413f-97e0-328a5c00a874 linkProtocol: @@ -19626,6 +21973,55 @@ components: - type: NOTIFICATION emails: - abc@company.com + createServiceTokenDryRunRequest: + value: + type: VC_TOKEN + name: Aside_Dot1Q_Service_Token + description: Az_Aside_Dot1Q_DryRun_Description + expirationDateTime: 2024-12-18T06:43:49.980Z + connection: + type: EVPL_VC + allowRemoteConnection: false + bandwidthLimit: 50 + allowCustomBandwidth: false + aSide: + accessPointSelectors: + - type: COLO + port: + uuid: b840a1db-5758-758f-97e0-328a5c00a874 + linkProtocol: + type: DOT1Q + vlanTag: 1399 + notifications: + - type: NOTIFICATION + emails: + - abc@company.com + - provider@company.com + createServiceTokenDryRunResponse: + value: + type: VC_TOKEN + name: Aside_Dot1Q_Service_Token + description: Az_Aside_Dot1Q_DryRun_Description + expirationDateTime: 2024-12-18T06:43:49.980Z + connection: + type: EVPL_VC + allowRemoteConnection: false + bandwidthLimit: 50 + allowCustomBandwidth: false + aSide: + accessPointSelectors: + - type: COLO + port: + href: http://api.equinix.com/fabric/v4/ports/b840a1db-5758-758f-97e0-328a5c00a874 + uuid: b840a1db-5758-758f-97e0-328a5c00a874 + linkProtocol: + type: DOT1Q + vlanTag: 1399 + notifications: + - type: NOTIFICATION + emails: + - abc@company.com + - provider@company.com Resend_Service_Token: value: type: RESEND_EMAIL_NOTIFICATION @@ -19818,6 +22214,17 @@ components: additionalInfo: - property: pathparameter-metroCode reason: Provide valid metro code + ibxByMetro: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/v4/fabric/metros/AM/ibxs/AM1 + type: XF_IBX + code: AM1 + isTimeServiceEnabled: true ports: value: pagination: @@ -20576,7 +22983,7 @@ components: COLOBulkPortResponse: value: data: - - href: http://qa3api.corp.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603 + - href: https://api.equinix.com/fabric/v4/ports/a6f77b33-96c6-4eeb-8d79-76374d950603 uuid: a6f77b33-96c6-4eeb-8d79-76374d950603 physicalPortsSpeed: 1000 physicalPortsType: 1000BASE_LX @@ -20610,7 +23017,7 @@ components: - type: NOTIFICATION registeredUsers: - jaguarsuser-port-order - - href: http://qa3api.corp.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a + - href: https://api.equinix.com/fabric/v4/ports/22f8e668-4754-4564-825d-d1c7889c885a uuid: 22f8e668-4754-4564-825d-d1c7889c885a physicalPortsSpeed: 1000 physicalPortsType: 1000BASE_LX @@ -21158,6 +23565,58 @@ components: sort: - property: /device/name direction: DESC + ConnectionRouteAggregationsGetAll: + 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/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: DETACHING + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/52f7791a-fe90-49bc-8807-18b3d6eda566 + type: BGP_IPv6_PREFIX_AGGREGATION + uuid: 52f7791a-fe90-49bc-8807-18b3d6eda566 + attachmentStatus: ATTACHED + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652 + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 8b67bf1c-7afa-4a9e-98c3-d5ab17da6652 + attachmentStatus: ATTACHED + - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/65d74639-8f48-4e10-9684-45d364645e97 + type: BGP_IPv6_PREFIX_AGGREGATION + uuid: 65d74639-8f48-4e10-9684-45d364645e97 + attachmentStatus: ATTACHED + "400_invalid_input": + value: + - errorCode: EQ-3044305 + errorMessage: Invalid input + correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 + additionalInfo: + - property: type + AttachConnectionRouteAggregationsResponse: + value: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: ATTACHING + "400_transient_state": + value: + - errorCode: EQ-3044008 + errorMessage: Cannot attach or detach route aggregation with connection in + transient state + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Cannot attach or detach route aggregation with connection in transient + state + DetachConnectionRouteAggregationResponse: + value: + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: DETACHING ConnectionRouteFiltersGetAll: value: pagination: @@ -21187,13 +23646,6 @@ components: uuid: 65d74639-8f48-4e10-9684-45d364645e97 attachmentStatus: ATTACHED direction: OUTBOUND - "400_invalid_input": - value: - - errorCode: EQ-3044101 - errorMessage: Invalid input - correlationId: 20d32a80-0d61-4333-bc03-707b591ae2f5 - additionalInfo: - - property: type AttachConnectionRouteFiltersResponse: value: href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d @@ -21214,14 +23666,6 @@ components: 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 @@ -21309,9 +23753,9 @@ components: "400_attached_connection": value: - errorCode: EQ-3044007 - errorMessage: Cannot delete Route Filter still attached to a Connection + 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 + details: Cannot delete route filter still attached to a connection PatchRouteFilterName: value: - op: replace @@ -21342,7 +23786,7 @@ components: "400_invalid_operation": value: - errorCode: EQ-3044011 - errorMessage: Invalid Argument passed + errorMessage: Invalid argument passed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Only replace name operation is supported. RouteFilterGetAllChangesResponseExample: @@ -21716,9 +24160,9 @@ components: "400_transient_filter": value: - errorCode: EQ-3044215 - errorMessage: "Cannot delete Route Filter Rule, Route Filter transient state" + errorMessage: Cannot delete route filter rule in transient state correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - details: "Cannot delete Route Filter Rule, Route filter is in transient state" + details: Cannot delete route filter rule in transient state PatchRouteFilterRuleName: value: - op: replace @@ -21862,6 +24306,453 @@ components: createdByEmail: testuser@equinix.com createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:30:00Z + RouteAggregationCreateBgpIpv4Prefix: + value: + type: BGP_IPv4_PREFIX_AGGREGATION + name: My-route-aggregation-v4 + description: Test aggregation + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + RouteAggregationCreateBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-aggregation-v4 + description: Test aggregation + state: PROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_AGGREGATION_CREATION + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + rulesCount: 0 + connectionsCount: 0 + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteAggregationDeleteBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-aggregation-v4 + description: Test Aggregation + state: DEPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31 + type: BGP_IPv4_PREFIX_AGGREGATION_DELETION + uuid: c2ec84c5-6de6-4f5c-b506-3ce218630c31 + connectionsCount: 0 + rulesCount: 0 + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + 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 + PatchRouteAggregationName: + value: + - op: replace + path: /name + value: My-route-aggregation-v4-updated + RouteAggregationNamePatchResponse: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My-prefix-aggregation-v4-updated + description: Test aggregation + state: REPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_AGGREGATION_UPDATE + uuid: 04af0d37-9160-43d8-97ef-9da9786996a3 + connectionsCount: 1 + rulesCount: 0 + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteAggregationGetAllChangesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 4 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_AGGREGATION_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_AGGREGATION + name: My-route-aggregation-v4 + description: Test Aggregation + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_AGGREGATION_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-aggregations-v4-updated + previousValue: My-route-aggregations-v4 + RouteAggregationGetChangeResponseExample: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3 + type: BGP_IPv4_PREFIX_AGGREGATION_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_AGGREGATION + name: My-route-aggregation-v4 + description: Test aggregation + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + RouteAggregationGetConnectionsResponse: + 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 + SearchRouteAggregationsRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION + - property: /name + operator: like + values: + - '%Route_Aggregation_Demo%' + - property: /project/projectId + operator: = + values: + - dadd3ab6-c0af-430c-8216-43d44f08c1c5 + pagination: + offset: 1 + limit: 2 + total: 10 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteAggregationsResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: /routeAggregations?offset=3&limit=2 + previous: /routeAggregations?offset=0&limit=2 + data: + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My_Route_Aggregation_Demo_1 + description: Test aggregation + state: PROVISIONING + connectionsCount: 1 + rulesCount: 0 + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/routeAggregations/795a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + name: My_Route_Aggregation_Demo_2 + description: Test aggregation + state: PROVISIONING + connectionsCount: 0 + rulesCount: 0 + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteAggregationRulesGetAll: + value: + pagination: + offset: 0 + limit: 32 + total: 2 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b + name: Private-subnet-aggregation-2 + description: Test rule + prefix: 192.168.10.0/24 + state: PROVISIONED + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_AGGREGATION_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/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: ea48337b-fe04-4164-a3f0-48d81abf575b + name: Private-subnet-aggregation-2 + description: Test rule + prefix: 192.168.20.0/24 + state: PROVISIONED + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION + uuid: 9397f111-19aa-489c-b3c7-349c86818f2d + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + RouteAggregationRuleCreateBgpIpv4Prefix: + value: + name: Private-subnet-aggregation + description: Test rule + prefix: 192.168.0.0/24 + RouteAggregationRuleCreateBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-aggregation + state: PROVISIONING + description: Test rule + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION + uuid: ff9653dc-88c5-47b5-b552-8a08d2f73f7e + prefix: 192.168.0.0/24 + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z + updatedBy: testuser + updatedByEmail: testuser@equinix.com + updatedByFullName: testuser testuser + updatedDateTime: 2020-05-21T10:30:00Z + UpdateRouteAggregationRuleIPv4: + value: + name: Private-subnet-aggregation-update + description: Test rule + prefix: 192.168.0.0/24 + RouteAggregationRuleReplaceIpv4Response: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-aggregation-update + description: Test rule + state: REPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628 + type: BGP_IPv4_PREFIX_AGGREGATION_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 + RouteAggregationRuleDeleteBgpIpv4PrefixResponse: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403 + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: 9890d520-1579-4489-8003-154b34b8f403 + name: Private-subnet-aggregation + description: Test rule + state: DEPROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485 + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION + uuid: e8528788-14d3-4a7b-a740-99b702067485 + 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 + deletedBy: testuser1 + deletedByEmail: testuser@equinix.com + deletedByFullName: testuser testuser + deletedDateTime: 2020-05-21T10:30:00Z + "400_transient_aggregation": + value: + - errorCode: EQ-3044415 + errorMessage: "Cannot delete route aggregation rule, route aggregation in\ + \ transient state" + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: "Cannot delete route aggregation rule, route aggregation is in transient\ + \ state" + PatchRouteAggregationRuleName: + value: + - op: replace + path: /name + value: test-route-aggregation-name-patch + PatchRouteAggregationRulePrefix: + value: + - op: replace + path: /prefix + value: 192.168.0.0/30 + RouteAggregationRulesGetAllChangesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 3 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_AGGREGATION_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_AGGREGATION_RULE + name: Private-subnet-aggregation + description: Test rule + prefix: 192.168.0.0/25 + RouteAggregationRuleGetChangeResponseExample: + value: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e + type: BGP_IPv4_PREFIX_AGGREGATION_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_AGGREGATION_RULE + name: Private-subnet-aggregation + description: Test rule + prefix: 192.168.0.0/25 + RouteAggregationRulesBulkResponse: + value: + pagination: + offset: 0 + limit: 32 + total: 2 + next: null + previous: null + data: + - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b + name: Private-subnet-aggregation-2 + description: Test rule + prefix: 192.168.10.0/24 + state: PROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_AGGREGATION_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/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b + type: BGP_IPv4_PREFIX_AGGREGATION_RULE + uuid: ea48337b-fe04-4164-a3f0-48d81abf575b + name: Private-subnet-aggregation-2 + description: Test rule + prefix: 192.168.20.0/24 + state: PROVISIONING + change: + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d + type: IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION + uuid: 9397f111-19aa-489c-b3c7-349c86818f2d + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z CreateLabPackage: value: type: XF_ROUTER @@ -21918,9 +24809,11 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD order: purchaseOrderNumber: 1-129105284100 @@ -21932,8 +24825,6 @@ components: - abc@abc.com account: accountNumber: 123 - bgpIpv4RoutesCount: 0 - bgpIpv6RoutesCount: 0 connectionsCount: 0 changeLog: createdBy: abc@xyz.com @@ -21948,9 +24839,11 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD project: projectId: ae708bbb-d669-406a-845a-99b39ff65fd0 @@ -21958,8 +24851,6 @@ components: - type: ALL emails: - abc@abc.com - bgpIpv4RoutesCount: 0 - bgpIpv6RoutesCount: 0 connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 @@ -21970,12 +24861,54 @@ components: createdByFullName: abc createdByEmail: abc@xyz.com createdDateTime: 2021-09-24T06:59:46Z + CloudRouterResponseExampleDryRun: + value: + type: XF_ROUTER + name: My-Cloud-Router + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD + code: STANDARD + project: + projectId: e1c94b73-1be8-44d5-b577-99bbf67249a4 + notifications: + - type: ALL + emails: + - abc@abc.com + account: + accountNumber: 123 "400_invalid_package": value: - errorCode: EQ-3040028 errorMessage: Package not found correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: package must be of type LAB or PRO + "400_invalid_name": + value: + - errorCode: EQ-3040022 + errorMessage: Name is minimum 3 and up to 24 characters in length + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Name is minimum 3 and up to 24 characters in length + additionalInfo: + - property: /name + reason: Name is minimum 3 and up to 24 characters in length + "400_invalid_account": + value: + - errorCode: EQ-3040032 + errorMessage: Invalid account number + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Invalid account number + additionalInfo: + - property: /account/accountNumber + reason: Invalid project account number + "400_max_lab_fcr_demo": + value: + - errorCode: EQ-3040060 + errorMessage: Create request rejected + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + details: Only 3 Lab Fabric Cloud Routers allowed per Organization CloudRouterResponseExample: value: href: https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d @@ -21984,24 +24917,22 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD order: purchaseOrderNumber: 1-129105284100 project: - projectId: "123456" + projectId: ae708bbb-d669-406a-845a-99b39ff65fd0 notifications: - type: ALL emails: - abc@abc.com account: accountNumber: 123 - bgpIpv4RoutesCount: 4 - bgpIpv6RoutesCount: 4 - distinctIpv4PrefixesCount: 2 - distinctIpv6PrefixesCount: 2 connectionsCount: 0 changeLog: createdBy: abc@xyz.com @@ -22024,9 +24955,11 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD project: projectId: ae708bbb-d669-406a-845a-99b39ff65fd0 @@ -22034,10 +24967,6 @@ components: - type: ALL emails: - abc@abc.com - bgpIpv4RoutesCount: 4 - bgpIpv6RoutesCount: 4 - distinctIpv4PrefixesCount: 2 - distinctIpv6PrefixesCount: 2 connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 @@ -22085,9 +25014,11 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD order: purchaseOrderNumber: 1-129105284100 @@ -22099,8 +25030,6 @@ components: - abc@abc.com account: accountNumber: 123 - bgpIpv4RoutesCount: 0 - bgpIpv6RoutesCount: 0 connectionsCount: 0 change: uuid: 3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 @@ -22325,9 +25254,11 @@ components: type: XF_ROUTER name: My-Cloud-Router location: + metroHref: https://api.equinix.com/fabric/v4/metros/HH metroCode: HH equinixAsn: 30000 package: + href: https://api.equinix.com/fabric/v4/routerPackages/STANDARD code: STANDARD order: purchaseOrderNumber: 1-129105284100 @@ -22339,8 +25270,6 @@ components: - abc@abc.com account: accountNumber: 123 - bgpIpv4RoutesCount: 0 - bgpIpv6RoutesCount: 0 connectionsCount: 0 changeLog: createdBy: abc@xyz.com @@ -22368,13 +25297,7 @@ components: description: string totalIPv4RoutesMax: 50 totalIPv6RoutesMax: 50 - staticIPv4RoutesMax: 3 - staticIPv6RoutesMax: 3 - naclsMax: 2 - naclRulesMax: 5 - haSupported: true routeFilterSupported: true - natType: STATIC_NAT vcCountMax: 10 crCountMax: 3 vcBandwidthMax: 50 @@ -22387,13 +25310,7 @@ components: 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 @@ -22406,13 +25323,7 @@ components: description: string totalIPv4RoutesMax: 4000 totalIPv6RoutesMax: 250 - staticIPv4RoutesMax: 150 - staticIPv6RoutesMax: 150 - naclsMax: 60 - naclRulesMax: 1000 - haSupported: true routeFilterSupported: true - natType: STATIC_NAT vcCountMax: 99999 crCountMax: 3 vcBandwidthMax: 50000 @@ -22425,13 +25336,7 @@ components: description: string totalIPv4RoutesMax: 10000 totalIPv6RoutesMax: 500 - staticIPv4RoutesMax: 150 - staticIPv6RoutesMax: 150 - naclsMax: 60 - naclRulesMax: 1000 - haSupported: true routeFilterSupported: true - natType: STATIC_NAT vcCountMax: 10 crCountMax: 3 vcBandwidthMax: 50000 @@ -23061,6 +25966,17 @@ components: - type: ALL emails: - test@equinix.com + CreateNetworkDryRunResponse: + value: + type: EVPLAN + name: My-EVPLAN-1 + scope: GLOBAL + project: + projectId: z1a596ed-s24a-097c-12a8-44e00000ee11 + notifications: + - type: ALL + emails: + - test@equinix.com NetworkPostResponseExample: value: href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -24671,7 +27587,9 @@ components: offerId: offer-wqquayy2jy25o trial: enabled: true - expiryDateTime: 2020-05-21T10:30:00Z + metroCodes: + - SV + - DC entitlements: - uuid: a15b6b20-b765-4bf7-a661-a3e9372d5435 quantityEntitled: 1 @@ -24682,13 +27600,19 @@ components: package: code: STANDARD - uuid: 2e3a9041-19ce-4c80-add3-3e3a069fc5e9 - name: Connection 500 Mbps quantityEntitled: 1 quantityConsumed: 0 quantityAvailable: 1 asset: type: IP_VC bandwidth: 500 + - uuid: 9e30f661-d92e-4083-812f-db359807806e + quantityEntitled: 1 + quantityConsumed: 0 + quantityAvailable: 1 + asset: + type: IPWAN_VC + bandwidth: 200 changeLog: createdBy: adminuser createdDateTime: 2020-05-21T10:30:00Z @@ -24712,16 +27636,16 @@ components: state: PROVISIONED assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z StreamPostRequestExample: value: type: TELEMETRY_STREAM name: splunk1 description: subscription-1 - enabled: true project: projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + enabled: true StreamResponseExample: value: href: https://api.equinix.com/fabric/v4/streams/d684aa26-8276-48b7-bb42-a6d9def0a418 @@ -24735,7 +27659,7 @@ components: state: PROVISIONED assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z StreamPutRequestExample: value: @@ -24755,7 +27679,7 @@ components: state: DEPROVISIONING assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z StreamAssetSearchRequestExample: value: @@ -24780,12 +27704,14 @@ components: data: - href: https://api.equinix.com/fabric/v4/ports/e684aa26-8276-48b7-bb42-a6d9def0a419 uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + type: XF_PORT metricsEnabled: false attachmentStatus: ATTACHED StreamConnectionAssetResponseExample: value: - href: https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418 + href: https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418 uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + type: IP_VC metricsEnabled: false attachmentStatus: ATTACHED StreamAssetPutRequestExample: @@ -24793,14 +27719,16 @@ components: metricsEnabled: false StreamRouterAssetAttachResponseExample: value: - href: https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418 + href: https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418 uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + type: XF_ROUTER metricsEnabled: false attachmentStatus: ATTACHING StreamRouterAssetDetachResponseExample: value: - href: https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418 + href: https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418 uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + type: XF_ROUTER metricsEnabled: false attachmentStatus: DETACHING stream-get-all-subscription-example: @@ -24843,13 +27771,19 @@ components: operator: IN values: - "197607000886247" + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SPLUNK_HEC batchEnabled: false batchSizeMax: 50 batchWaitTimeMax: 5 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z StreamSubscriptionPostRequestExampleSplunk: value: @@ -24867,6 +27801,12 @@ components: operator: LIKE values: - '%com.equinix.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SPLUNK_HEC @@ -24887,6 +27827,18 @@ components: uuid: 36276e58-b5a1-4864-ab5e-be10dff9eac1 project: projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + filters: + and: + - property: /type + operator: LIKE + values: + - '%com.equinix.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SLACK @@ -24906,6 +27858,9 @@ components: operator: LIKE values: - '%com.equinix.fabric.connection%' + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: PAGERDUTY @@ -24930,6 +27885,9 @@ components: operator: LIKE values: - '%com.equinix.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xx.datadoghq.com type: DATADOG @@ -24960,6 +27918,12 @@ components: operator: LIKE values: - '%com.equinix.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SPLUNK_HEC @@ -24973,7 +27937,7 @@ components: batchEnabled: false batchSizeMax: 50 batchWaitTimeMax: 5 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z StreamSubscriptionPutRequestExample: value: @@ -24988,6 +27952,12 @@ components: operator: LIKE values: - '%equinix.event.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SPLUNK_HEC @@ -25022,6 +27992,12 @@ components: operator: LIKE values: - '%com.equinix.fabric.connection%' + metricSelector: + include: + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* sink: uri: https://xxxxxx type: SPLUNK_HEC @@ -25035,7 +28011,7 @@ components: batchEnabled: false batchSizeMax: 50 batchWaitTimeMax: 5 - changelog: + changeLog: createdDateTime: 2024-05-06T16:21:18.545214Z headers: ETag: @@ -25085,21 +28061,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -25119,31 +28096,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -25163,41 +28141,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -25217,31 +28196,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -25261,23 +28241,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -25351,8 +28332,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -25362,8 +28343,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -25385,8 +28366,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -25394,8 +28375,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -25427,7 +28408,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -25437,7 +28418,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -25463,7 +28444,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -25500,8 +28481,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -25527,7 +28508,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -25540,6 +28520,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -25553,14 +28534,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -25580,15 +28557,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -25663,15 +28640,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -25752,15 +28729,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -25806,17 +28783,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -25837,8 +28814,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -25859,51 +28836,14 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion - name: name - additionalInfo: - - value: value - key: key - - value: value - key: key project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - geoScope: null - redundancy: - priority: null - group: group type: null - marketplaceSubscription: - href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 - type: AWS_MARKETPLACE_SUBSCRIPTION - uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5 - notifications: - - emails: - - emails - - emails - sendInterval: sendInterval - registeredUsers: - - registeredUsers - - registeredUsers - type: BANDWIDTH_ALERT - - emails: - - emails - - emails - sendInterval: sendInterval - registeredUsers: - - registeredUsers - - registeredUsers - type: BANDWIDTH_ALERT - order: - orderNumber: orderNumber - customerReferenceNumber: customerReferenceNumber - orderId: orderId - purchaseOrderNumber: purchaseOrderNumber - billingTier: billingTier zSide: internetAccess: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 @@ -25940,21 +28880,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -25974,31 +28915,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26018,41 +28960,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26072,31 +29015,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26116,23 +29060,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -26206,8 +29151,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -26217,8 +29162,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -26240,8 +29185,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -26249,8 +29194,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -26282,7 +29227,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -26292,7 +29237,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -26318,7 +29263,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -26355,8 +29300,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -26382,7 +29327,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -26395,6 +29339,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -26408,14 +29353,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -26435,15 +29376,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -26518,15 +29459,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -26607,15 +29548,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -26661,17 +29602,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -26692,8 +29633,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -26714,11 +29655,52 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion + name: name + additionalInfo: + - value: value + key: key + - value: value + key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId + geoScope: null + redundancy: + priority: null + group: group + marketplaceSubscription: + href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 + type: AWS_MARKETPLACE_SUBSCRIPTION + uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5 + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + order: + orderNumber: orderNumber + customerReferenceNumber: customerReferenceNumber + orderId: orderId + purchaseOrderNumber: purchaseOrderNumber + billingTier: billingTier properties: type: $ref: '#/components/schemas/ConnectionType' @@ -26755,6 +29737,8 @@ components: type: array marketplaceSubscription: $ref: '#/components/schemas/marketplaceSubscription' + endCustomer: + $ref: '#/components/schemas/EndCustomer' required: - aSide - bandwidth @@ -26803,21 +29787,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26837,31 +29822,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26881,41 +29867,87 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM metroCode: AM + region: "AMER, APAC, EMEA" + ibx: AM1 + href: https://openapi-generator.tech + portName: portName + type: type + priority: priority + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + virtualDevice: + cluster: cluster + name: name + href: https://openapi-generator.tech + type: EDGE + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + type: COLO + interface: + id: 1 + type: NETWORK + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + linkProtocol: + vlanTag: 1697 + vlanCTag: 505 + type: null + vlanSTag: 3022 + network: + scope: LOCAL + name: name + location: + metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM + region: "AMER, APAC, EMEA" + ibx: AM1 + href: https://openapi-generator.tech + type: EVPLAN + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 + accountName: accountName + encapsulationProtocolType: encapsulationProtocolType + location: + metroName: Amsterdam metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -26935,67 +29967,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM - region: "AMER, APAC, EMEA" - ibx: AM1 - href: https://openapi-generator.tech - type: EVPLAN - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 - accountName: accountName - encapsulationProtocolType: encapsulationProtocolType - location: - metroName: Amsterdam - metroCode: AM - metroHref: https://api.equinix.com/fabric/v4/metros/AM - region: "AMER, APAC, EMEA" - ibx: AM1 - href: https://openapi-generator.tech - portName: portName - type: type - priority: priority - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - virtualDevice: - cluster: cluster - name: name - href: https://openapi-generator.tech - type: EDGE - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - type: COLO - interface: - id: 1 - type: NETWORK - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - linkProtocol: - vlanTag: 831 - vlanCTag: 3022 - type: null - vlanSTag: 1697 - network: - scope: LOCAL - name: name - location: - metroName: Amsterdam metroCode: AM - metroHref: https://api.equinix.com/fabric/v4/metros/AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -27069,8 +30058,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -27080,8 +30069,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -27103,8 +30092,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -27112,8 +30101,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -27145,7 +30134,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -27155,7 +30144,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -27181,7 +30170,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -27218,8 +30207,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -27245,7 +30234,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -27258,6 +30246,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -27271,14 +30260,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -27298,15 +30283,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -27381,15 +30366,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -27470,15 +30455,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -27524,17 +30509,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -27555,8 +30540,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -27577,10 +30562,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion change: data: @@ -27648,21 +30633,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -27682,31 +30668,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -27726,41 +30713,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -27780,31 +30768,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -27824,23 +30813,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -27914,8 +30904,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -27925,8 +30915,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -27948,8 +30938,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -27957,8 +30947,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -27990,7 +30980,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -28000,7 +30990,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -28026,7 +31016,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -28063,8 +31053,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -28090,7 +31080,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -28103,6 +31092,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -28116,14 +31106,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -28143,15 +31129,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -28226,15 +31212,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -28315,15 +31301,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -28369,17 +31355,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -28400,8 +31386,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -28422,10 +31408,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion name: name additionalInfo: @@ -28641,21 +31627,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -28675,31 +31662,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -28719,41 +31707,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -28773,31 +31762,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -28817,23 +31807,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -28907,8 +31898,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -28918,8 +31909,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -28941,8 +31932,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -28950,8 +31941,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -28983,7 +31974,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -28993,7 +31984,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -29019,7 +32010,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -29056,8 +32047,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -29083,7 +32074,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -29096,6 +32086,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -29109,14 +32100,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -29136,15 +32123,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -29219,15 +32206,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -29308,15 +32295,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -29362,17 +32349,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -29393,8 +32380,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -29415,10 +32402,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion description: description type: null @@ -29474,21 +32461,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -29508,31 +32496,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -29552,41 +32541,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -29606,31 +32596,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -29650,23 +32641,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -29740,8 +32732,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -29751,8 +32743,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -29774,8 +32766,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -29783,8 +32775,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -29816,7 +32808,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -29826,7 +32818,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -29852,7 +32844,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -29889,8 +32881,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -29916,7 +32908,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -29929,6 +32920,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -29942,14 +32934,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -29969,15 +32957,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -30052,15 +33040,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -30141,15 +33129,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -30195,17 +33183,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -30226,8 +33214,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -30248,10 +33236,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion description: description changeLog: @@ -30995,21 +33983,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31029,31 +34018,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31073,41 +34063,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31127,31 +34118,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31171,23 +34163,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -31261,8 +34254,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -31272,8 +34265,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -31295,8 +34288,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -31304,8 +34297,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -31337,7 +34330,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -31347,7 +34340,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -31373,7 +34366,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -31410,8 +34403,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -31437,7 +34430,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -31450,6 +34442,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -31463,14 +34456,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -31490,15 +34479,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -31573,15 +34562,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -31662,15 +34651,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -31716,17 +34705,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -31747,8 +34736,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -31769,10 +34758,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion change: data: @@ -31840,21 +34829,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31874,31 +34864,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31918,41 +34909,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -31972,31 +34964,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -32016,23 +35009,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -32106,8 +35100,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -32117,8 +35111,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -32140,8 +35134,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -32149,8 +35143,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -32182,7 +35176,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -32192,7 +35186,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -32218,7 +35212,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -32255,8 +35249,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -32282,7 +35276,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -32295,6 +35288,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -32308,14 +35302,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -32335,15 +35325,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -32418,15 +35408,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -32507,15 +35497,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -32561,17 +35551,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -32592,8 +35582,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -32614,10 +35604,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion name: name additionalInfo: @@ -32735,21 +35725,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -32769,31 +35760,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -32813,41 +35805,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -32867,31 +35860,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -32911,23 +35905,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -33001,8 +35996,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -33012,8 +36007,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -33035,8 +36030,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -33044,8 +36039,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -33077,7 +36072,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -33087,7 +36082,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -33113,7 +36108,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -33150,8 +36145,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -33177,7 +36172,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -33190,6 +36184,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -33203,14 +36198,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -33230,15 +36221,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -33313,15 +36304,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -33402,15 +36393,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -33456,17 +36447,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -33487,8 +36478,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -33509,10 +36500,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion change: data: @@ -33580,21 +36571,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -33614,31 +36606,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -33658,41 +36651,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -33712,31 +36706,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -33756,23 +36751,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -33846,8 +36842,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -33857,8 +36853,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -33880,8 +36876,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -33889,8 +36885,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -33922,7 +36918,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -33932,7 +36928,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -33958,7 +36954,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -33995,8 +36991,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -34022,7 +37018,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -34035,6 +37030,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -34048,14 +37044,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -34075,15 +37067,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -34158,15 +37150,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -34247,15 +37239,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -34301,17 +37293,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -34332,8 +37324,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -34354,10 +37346,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion name: name additionalInfo: @@ -34539,6 +37531,7 @@ components: prefixLength: 5 location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 description: description @@ -34553,6 +37546,7 @@ components: code: null location: metroCode: metroCode + ibx: ibx uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 termLength: 6 port: @@ -34582,6 +37576,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 type: null @@ -34595,6 +37590,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null @@ -34614,12 +37610,23 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + timeService: + package: + code: NTP_STANDARD + connection: + aSide: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + type: NTP - code: code catgory: null ipBlock: prefixLength: 5 location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 description: description @@ -34634,6 +37641,7 @@ components: code: null location: metroCode: metroCode + ibx: ibx uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 termLength: 6 port: @@ -34663,6 +37671,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 type: null @@ -34676,6 +37685,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null @@ -34695,6 +37705,16 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + timeService: + package: + code: NTP_STANDARD + connection: + aSide: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + type: NTP properties: data: items: @@ -35109,8 +38129,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -35120,8 +38140,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -35143,8 +38163,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -35152,8 +38172,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -35185,7 +38205,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -35195,7 +38215,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -35591,8 +38611,8 @@ components: sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -35626,8 +38646,8 @@ components: interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -35659,7 +38679,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -35888,7 +38908,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -35898,7 +38918,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -35941,21 +38961,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -35975,31 +38996,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36019,41 +39041,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36073,31 +39096,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36117,23 +39141,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -36173,15 +39198,16 @@ components: format: uri readOnly: true type: string + expiry: + deprecated: true + type: integer uuid: description: Equinix-assigned service token identifier format: uuid type: string issuerSide: + deprecated: true description: information about token side - enum: - - ASIDE - - ZSIDE type: string name: description: Customer-provided service token name @@ -36249,21 +39275,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36283,31 +39310,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36327,85 +39355,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM - region: "AMER, APAC, EMEA" - ibx: AM1 - href: https://openapi-generator.tech - portName: portName - type: type - priority: priority - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - virtualDevice: - cluster: cluster - name: name - href: https://openapi-generator.tech - type: EDGE - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - type: COLO - interface: - id: 1 - type: NETWORK - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - linkProtocol: - vlanTag: 831 - vlanCTag: 3022 - type: null - vlanSTag: 1697 - network: - scope: LOCAL - name: name - location: - metroName: Amsterdam metroCode: AM - metroHref: https://api.equinix.com/fabric/v4/metros/AM - region: "AMER, APAC, EMEA" - ibx: AM1 - href: https://openapi-generator.tech - type: EVPLAN - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 - accountName: accountName - encapsulationProtocolType: encapsulationProtocolType - location: - metroName: Amsterdam - metroCode: AM - metroHref: https://api.equinix.com/fabric/v4/metros/AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36425,88 +39410,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - href: https://openapi-generator.tech - state: null - notifications: - - emails: - - emails - - emails - sendInterval: sendInterval - registeredUsers: - - registeredUsers - - registeredUsers - type: BANDWIDTH_ALERT - - emails: - - emails - - emails - sendInterval: sendInterval - registeredUsers: - - registeredUsers - - registeredUsers - type: BANDWIDTH_ALERT - 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 - - expirationDateTime: 2020-11-06T07:00:00Z - description: description - 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 - project: - projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - type: null - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE - name: name - connection: - allowRemoteConnection: false - aSide: - accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36526,31 +39455,90 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + href: https://openapi-generator.tech + expiry: 2 + state: null + notifications: + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + - emails: + - emails + - emails + sendInterval: sendInterval + registeredUsers: + - registeredUsers + - registeredUsers + type: BANDWIDTH_ALERT + 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 + - expirationDateTime: 2020-11-06T07:00:00Z + description: description + 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 + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: null + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + issuerSide: issuerSide + name: name + connection: + allowRemoteConnection: false + aSide: + accessPointSelectors: + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36570,41 +39558,87 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM metroCode: AM + region: "AMER, APAC, EMEA" + ibx: AM1 + href: https://openapi-generator.tech + type: EVPLAN + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 + accountName: accountName + encapsulationProtocolType: encapsulationProtocolType + location: + metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM + region: "AMER, APAC, EMEA" + ibx: AM1 + href: https://openapi-generator.tech + portName: portName + type: type + priority: priority + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + virtualDevice: + cluster: cluster + name: name + href: https://openapi-generator.tech + type: EDGE + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + type: COLO + interface: + id: 1 + type: NETWORK + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + linkProtocol: + vlanTag: 1697 + vlanCTag: 505 + type: null + vlanSTag: 3022 + network: + scope: LOCAL + name: name + location: + metroName: Amsterdam metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36624,31 +39658,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -36668,23 +39703,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -36977,6 +40013,7 @@ components: enum: - CANADA - CONUS + - JAPAN type: string MetroErrorList: items: @@ -37073,6 +40110,10 @@ components: key: key - value: value key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId href: https://openapi-generator.tech id: 0 state: null @@ -37163,15 +40204,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37252,15 +40293,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37308,8 +40349,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: null @@ -37384,6 +40425,10 @@ components: key: key - value: value key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId href: https://openapi-generator.tech id: 0 state: null @@ -37474,15 +40519,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37563,15 +40608,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37619,8 +40664,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: null @@ -37707,6 +40752,10 @@ components: key: key - value: value key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId href: https://openapi-generator.tech id: 0 state: null @@ -37797,15 +40846,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37886,15 +40935,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -37942,8 +40991,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: null @@ -38105,6 +41154,8 @@ components: items: $ref: '#/components/schemas/PortAdditionalInfo' type: array + endCustomer: + $ref: '#/components/schemas/EndCustomer' physicalPorts: description: Physical ports that implement this port items: @@ -38157,15 +41208,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -38338,6 +41389,10 @@ components: key: key - value: value key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId href: https://openapi-generator.tech id: 0 state: null @@ -38428,15 +41483,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -38517,15 +41572,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -38573,8 +41628,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: null @@ -38649,6 +41704,10 @@ components: key: key - value: value key: key + endCustomer: + isDisclosed: false + name: name + mdmId: mdmId href: https://openapi-generator.tech id: 0 state: null @@ -38739,15 +41798,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -38828,15 +41887,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -38884,8 +41943,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: null @@ -38919,14 +41978,209 @@ components: type: NOTIFICATION properties: data: - description: Ports that are part of BulkPort + description: Ports that are part of BulkPort + items: + $ref: '#/components/schemas/Port' + type: array + type: object + BulkPhysicalPort: + description: Add to Lag request + example: + data: + - settings: + errorMessage: errorMessage + packageType: packageType + 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 + interface: + type: type + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + interfaceType: interfaceType + additionalInfo: + - value: value + key: key + - value: value + key: key + href: https://openapi-generator.tech + id: 6 + state: null + operation: + operationalStatus: UP + evplVCCount: 4 + connectionCount: 1 + opStatusChangedAt: 2020-11-06T07:00:00Z + accessVCCount: 9 + fgVCCount: 5 + 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 + notifications: + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + order: + customerReferenceId: customerReferenceId + 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 + type: EXEMPTION + startDate: startDate + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - settings: + errorMessage: errorMessage + packageType: packageType + 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 + interface: + type: type + uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + interfaceType: interfaceType + additionalInfo: + - value: value + key: key + - value: value + key: key + href: https://openapi-generator.tech + id: 6 + state: null + operation: + operationalStatus: UP + evplVCCount: 4 + connectionCount: 1 + opStatusChangedAt: 2020-11-06T07:00:00Z + accessVCCount: 9 + fgVCCount: 5 + 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 + notifications: + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + - registeredUsers: + - registeredUsers + - registeredUsers + type: NOTIFICATION + order: + customerReferenceId: customerReferenceId + 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 + type: EXEMPTION + 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: - settings: errorMessage: errorMessage @@ -38966,15 +42220,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -39055,15 +42309,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -39107,14 +42361,550 @@ 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 + vni: 20 + href: https://openapi-generator.tech + state: null + vlanTagMax: 200 + asset: + bandwidth: 100 + href: https://openapi-generator.tech + type: EVPL_VC + uuid: cd67f685-41b0-1b07-6de0-320a5c00abe + 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 + vni: 20 + href: https://openapi-generator.tech + state: null + vlanTagMax: 200 + asset: + bandwidth: 100 + href: https://openapi-generator.tech + type: EVPL_VC + uuid: cd67f685-41b0-1b07-6de0-320a5c00abe + 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 + GetAllConnectionRouteAggregationsResponse: + 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/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + - attachmentStatus: ATTACHING + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + properties: + pagination: + $ref: '#/components/schemas/Pagination' + data: + description: List of Route Aggregations attached to a Connection + items: + $ref: '#/components/schemas/ConnectionRouteAggregationData' + type: array + type: object + RouteAggregationId: + description: Route Aggregations UUID + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: string + ConnectionRouteAggregationData: + example: + attachmentStatus: ATTACHING + href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + properties: + href: + description: Route Aggregation URI + example: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uri + type: string + type: + description: Route Aggregation type + enum: + - BGP_IPv4_PREFIX_AGGREGATION + type: string + uuid: + description: Route Aggregation identifier + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uuid + type: string + attachmentStatus: + enum: + - ATTACHING + - ATTACHED + - DETACHED + - DETACHING + - FAILED + - PENDING_BGP_CONFIGURATION + type: string + 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 + - PENDING_BGP_CONFIGURATION + 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 + required: + - direction + type: object + RouteFiltersBase: + example: + name: My-direct-route-1 + description: description + project: + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: BGP_IPv4_PREFIX_FILTER + 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' + required: + - name + - project + - type + 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 + rulesCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + 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 + 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 + rulesCount: + example: 0 + type: integer + project: + $ref: '#/components/schemas/RouteFiltersData_project' + changelog: + $ref: '#/components/schemas/Changelog' + type: object + RouteFiltersPatchRequest: + description: Patch Route Filters request + items: + $ref: '#/components/schemas/RouteFiltersPatchRequestItem' + 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 + 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 + 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: - description: add physical ports to virtual port items: - $ref: '#/components/schemas/PhysicalPort' + $ref: '#/components/schemas/RouteFilterChangeData' type: array type: object - AllPhysicalPortsResponse: - description: GET All Physical Ports + 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 + 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: + $ref: '#/components/schemas/RouteFiltersChangeOperation' + type: object + GetRouteFilterGetConnectionsResponse: example: pagination: next: next @@ -39123,195 +42913,109 @@ components: previous: previous limit: 0 data: - - settings: - errorMessage: errorMessage - packageType: packageType - 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 - interface: - type: type - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - interfaceType: interfaceType - additionalInfo: - - value: value - key: key - - value: value - key: key - href: https://openapi-generator.tech - id: 9 - state: null - operation: - operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 - opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 - 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 - notifications: - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION - order: - customerReferenceId: customerReferenceId - 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 - type: EXEMPTION - startDate: startDate - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - settings: - errorMessage: errorMessage - packageType: packageType - 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 - interface: - type: type - uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - interfaceType: interfaceType - additionalInfo: - - value: value - key: key - - value: value - key: key - href: https://openapi-generator.tech - id: 9 - state: null - operation: - operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 - opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 - 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 - notifications: - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION - - registeredUsers: - - registeredUsers - - registeredUsers - type: NOTIFICATION - order: - customerReferenceId: customerReferenceId - 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 - type: EXEMPTION - 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 + RouteFiltersSearchBase: + example: + filter: + and: + - values: + - values + - values + property: /type + operator: operator + - values: + - values + - values + property: /type + operator: operator + pagination: + next: next + total: 0 + offset: 0 + previous: previous + limit: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + - property: /changeLog/updatedDateTime + direction: DESC + properties: + filter: + $ref: '#/components/schemas/RouteFiltersSearchBase_filter' + pagination: + $ref: '#/components/schemas/Pagination' + sort: + items: + $ref: '#/components/schemas/SortItem' + type: array + type: object + RouteFiltersSearchFilterItem: + example: + values: + - values + - values + property: /type + operator: operator + properties: + property: + enum: + - /type + - /name + - /project/projectId + - /uuid + - /state + type: string + operator: + type: string + values: + items: + type: string + type: array + type: object + SortItem: + example: + property: /changeLog/updatedDateTime + direction: DESC + properties: + property: + default: /changeLog/updatedDateTime + description: Possible field names to use on sorting + enum: + - /type + - /uuid + - /name + - /project/projectId + - /state + - /notMatchedRuleAction + - /connectionsCount + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + type: string + direction: + default: DESC + description: Sorting direction + enum: + - DESC + - ASC + type: string + type: object + RouteFiltersSearchResponse: example: pagination: next: next @@ -39320,9 +43024,17 @@ components: previous: previous limit: 0 data: - - vlanTag: 20 - vlanCTag: 20 - changeLog: + - change: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_FILTER_UPDATE + uuid: uuid + name: My-direct-route-1 + description: description + rulesCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + changelog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -39335,32 +43047,23 @@ 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 - vni: 20 - href: https://openapi-generator.tech + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d state: null - vlanTagMax: 200 - asset: - bandwidth: 100 - href: https://openapi-generator.tech - type: EVPL_VC - uuid: cd67f685-41b0-1b07-6de0-320a5c00abe - serviceToken: - bandwidth: 1000 + type: BGP_IPv4_PREFIX_FILTER + notMatchedRuleAction: ALLOW + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + connectionsCount: 0 + - 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_UPDATE + uuid: uuid + name: My-direct-route-1 + description: description + rulesCount: 0 + project: + href: https://api.equinix.com/resourceManager/v1/projects/567 + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + changelog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -39373,125 +43076,197 @@ 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 - vni: 20 - href: https://openapi-generator.tech + href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d state: null - vlanTagMax: 200 - asset: - bandwidth: 100 - href: https://openapi-generator.tech - type: EVPL_VC - uuid: cd67f685-41b0-1b07-6de0-320a5c00abe - serviceToken: - bandwidth: 1000 - href: https://openapi-generator.tech - type: TOKEN - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - vlanCTagMax: 200 + type: BGP_IPv4_PREFIX_FILTER + notMatchedRuleAction: ALLOW + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + connectionsCount: 0 properties: pagination: $ref: '#/components/schemas/Pagination' data: + description: List of route filters items: - $ref: '#/components/schemas/LinkProtocolResponse' + $ref: '#/components/schemas/RouteFiltersData' type: array type: object - PortV4SearchRequest: - description: Search requests containing criteria + GetRouteFilterRulesResponse: 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: + - 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 + state: null + 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: 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 + state: null + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b properties: - filter: - $ref: '#/components/schemas/PortExpression' pagination: - $ref: '#/components/schemas/PaginationRequest' - sort: + $ref: '#/components/schemas/Pagination' + data: + description: List of Route Filter Rules items: - $ref: '#/components/schemas/PortSortCriteria' + $ref: '#/components/schemas/RouteFilterRulesData' type: array type: object - PortExpression: + RouteFilterRulesBase: + example: + prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" + 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, exact" + type: string + required: + - prefix + type: object + RouteFilterRulesData: example: - or: - - null - - null - and: - - null - - null - values: - - values - - values - property: null - operator: = + 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 + state: null + type: BGP_IPv4_PREFIX_FILTER_RULE + uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b properties: - and: - items: - $ref: '#/components/schemas/PortExpression' - type: array - or: - items: - $ref: '#/components/schemas/PortExpression' - type: array - property: - $ref: '#/components/schemas/PortSearchFieldName' - operator: + 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 - values: - items: - type: string - type: array + 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 + state: + $ref: '#/components/schemas/RouteFilterRuleState' + 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 - PortExpressions: + 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/PortExpression' + $ref: '#/components/schemas/RouteFilterRulesPatchRequestItem' + minItems: 1 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: + RouteFilterRulesChangeDataResponse: + description: List of route filter rule changes example: pagination: next: next @@ -39500,94 +43275,120 @@ components: 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 + - updatedBy: updatedBy + data: + op: add + path: / + value: + prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" + 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: + op: add + path: / + value: + prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 properties: pagination: $ref: '#/components/schemas/Pagination' data: - description: List of Route Filters attached to a Connection items: - $ref: '#/components/schemas/ConnectionRouteFilterData' + $ref: '#/components/schemas/RouteFilterRulesChangeData' type: array type: object - RouteFilterId: - description: Route Filters UUID - example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + ChangeId_2: + description: Route Filter Rule Change UUID + example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 + format: uuid type: string - ConnectionRouteFilterData: + RouteFilterRulesChangeData: + allOf: + - $ref: '#/components/schemas/RouteFilterRulesChange' + description: Current state of latest route filter rules change 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 + updatedBy: updatedBy + data: + op: add + path: / + value: + prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" + createdBy: createdBy + createdDateTime: 2000-01-23T04:56:07.000+00:00 + status: COMPLETED + updatedDateTime: 2000-01-23T04:56:07.000+00:00 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 + status: + description: Current outcome of the change flow enum: - - BGP_IPv4_PREFIX_FILTER - - BGP_IPv6_PREFIX_FILTER + - COMPLETED + - FAILED + - REQUESTED type: string - uuid: - description: Route Filter identifier - example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d - format: uuid + createdBy: + description: Created by User Key type: string - attachmentStatus: - enum: - - ATTACHING - - ATTACHED - - DETACHED - - DETACHING - - FAILED - - PENDING_BGP_CONFIGURATION + createdDateTime: + description: Set when change flow starts + format: date-time type: string - direction: - enum: - - INBOUND - - OUTBOUND + 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 - ConnectionRouteFiltersBase: + RouteFilterRulesPostRequest: + description: Create Route Filter Rule POST request example: - direction: INBOUND + data: + - prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" + - prefix: 192.168.0.0/24 + name: Private-subnet-filter + description: description + prefixMatch: "orlonger, exact" properties: - direction: - description: Route Filter direction to attach to a connection - enum: - - INBOUND - - OUTBOUND - type: string - required: - - direction + data: + description: Route Filter Rule configuration + items: + $ref: '#/components/schemas/RouteFilterRulesBase' + type: array type: object - RouteFiltersBase: + RouteAggregationsBase: example: name: My-direct-route-1 description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - type: BGP_IPv4_PREFIX_FILTER + type: BGP_IPv4_PREFIX_AGGREGATION properties: type: - description: Route Filter type + description: Route Aggregation type enum: - - BGP_IPv4_PREFIX_FILTER - - BGP_IPv6_PREFIX_FILTER + - BGP_IPv4_PREFIX_AGGREGATION + - BGP_IPv6_PREFIX_AGGREGATION type: string name: example: My-direct-route-1 @@ -39602,19 +43403,19 @@ components: - project - type type: object - RouteFiltersData: + RouteAggregationsData: example: change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_UPDATE uuid: uuid name: My-direct-route-1 description: description rulesCount: 0 project: - href: https://api.equinix.com/resourceManager/v1/projects/567 + href: https://openapi-generator.tech projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -39627,26 +43428,25 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d state: null - type: BGP_IPv4_PREFIX_FILTER - notMatchedRuleAction: ALLOW + type: BGP_IPv4_PREFIX_AGGREGATION uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d connectionsCount: 0 properties: href: - description: Route Filter URI - example: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + description: Route Aggregation URI + example: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d format: uri type: string type: - description: Route Filter type + description: Route Aggregation type enum: - - BGP_IPv4_PREFIX_FILTER - - BGP_IPv6_PREFIX_FILTER + - BGP_IPv4_PREFIX_AGGREGATION + - BGP_IPv6_PREFIX_AGGREGATION type: string uuid: - description: Route Filter identifier + description: Route Aggregation identifier example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d format: uuid type: string @@ -39657,14 +43457,9 @@ components: description: Customer-provided connection description type: string state: - $ref: '#/components/schemas/RouteFilterState' + $ref: '#/components/schemas/RouteAggregationState' change: - $ref: '#/components/schemas/RouteFiltersChange' - notMatchedRuleAction: - enum: - - ALLOW - - DENY - type: string + $ref: '#/components/schemas/RouteAggregationsChange' connectionsCount: example: 0 type: integer @@ -39672,18 +43467,18 @@ components: example: 0 type: integer project: - $ref: '#/components/schemas/RouteFiltersData_project' - changelog: + $ref: '#/components/schemas/RouteAggregationsData_project' + changeLog: $ref: '#/components/schemas/Changelog' type: object - RouteFiltersPatchRequest: - description: Patch Route Filters request + RouteAggregationsPatchRequest: + description: Patch Route Aggregations request items: - $ref: '#/components/schemas/RouteFiltersPatchRequestItem' + $ref: '#/components/schemas/RouteAggregationsPatchRequestItem' minItems: 1 type: array - RouteFilterChangeDataResponse: - description: List of Route Filter changes + RouteAggregationChangeDataResponse: + description: List of Route Aggregation changes example: pagination: next: next @@ -39701,7 +43496,7 @@ components: description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - type: BGP_IPv4_PREFIX_FILTER + type: BGP_IPv4_PREFIX_AGGREGATION createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 information: information @@ -39716,7 +43511,7 @@ components: description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - type: BGP_IPv4_PREFIX_FILTER + type: BGP_IPv4_PREFIX_AGGREGATION createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 information: information @@ -39727,18 +43522,18 @@ components: $ref: '#/components/schemas/Pagination' data: items: - $ref: '#/components/schemas/RouteFilterChangeData' + $ref: '#/components/schemas/RouteAggregationChangeData' type: array type: object - ChangeId_1: - description: Route Filters Change UUID + ChangeId_3: + description: Route Aggregations Change UUID example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 format: uuid type: string - RouteFilterChangeData: + RouteAggregationChangeData: allOf: - - $ref: '#/components/schemas/RouteFiltersChange' - description: Current state of latest Route Filter change + - $ref: '#/components/schemas/RouteAggregationsChange' + description: Current state of latest Route Aggregation change example: updatedBy: updatedBy data: @@ -39749,7 +43544,7 @@ components: description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - type: BGP_IPv4_PREFIX_FILTER + type: BGP_IPv4_PREFIX_AGGREGATION createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 information: information @@ -39781,9 +43576,9 @@ components: description: Additional information type: string data: - $ref: '#/components/schemas/RouteFiltersChangeOperation' + $ref: '#/components/schemas/RouteAggregationsChangeOperation' type: object - GetRouteFilterGetConnectionsResponse: + GetRouteAggregationGetConnectionsResponse: example: pagination: next: next @@ -39804,12 +43599,12 @@ components: pagination: $ref: '#/components/schemas/Pagination' data: - description: List of Connections using a Route Filter + description: List of Connections using a Route Aggregation items: - $ref: '#/components/schemas/RouteFilterConnectionsData' + $ref: '#/components/schemas/RouteAggregationConnectionsData' type: array type: object - RouteFiltersSearchBase: + RouteAggregationsSearchBase: example: filter: and: @@ -39836,15 +43631,15 @@ components: direction: DESC properties: filter: - $ref: '#/components/schemas/RouteFiltersSearchBase_filter' + $ref: '#/components/schemas/RouteAggregationsSearchBase_filter' pagination: $ref: '#/components/schemas/Pagination' sort: items: - $ref: '#/components/schemas/SortItem' + $ref: '#/components/schemas/RouteAggregationSortItem' type: array type: object - RouteFiltersSearchFilterItem: + RouteAggregationsSearchFilterItem: example: values: - values @@ -39867,7 +43662,7 @@ components: type: string type: array type: object - SortItem: + RouteAggregationSortItem: example: property: /changeLog/updatedDateTime direction: DESC @@ -39881,7 +43676,6 @@ components: - /name - /project/projectId - /state - - /notMatchedRuleAction - /connectionsCount - /changeLog/createdDateTime - /changeLog/updatedDateTime @@ -39894,7 +43688,7 @@ components: - ASC type: string type: object - RouteFiltersSearchResponse: + RouteAggregationsSearchResponse: example: pagination: next: next @@ -39905,15 +43699,15 @@ components: data: - change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_UPDATE uuid: uuid name: My-direct-route-1 description: description rulesCount: 0 project: - href: https://api.equinix.com/resourceManager/v1/projects/567 + href: https://openapi-generator.tech projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -39926,23 +43720,22 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d state: null - type: BGP_IPv4_PREFIX_FILTER - notMatchedRuleAction: ALLOW + type: BGP_IPv4_PREFIX_AGGREGATION uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d connectionsCount: 0 - change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_UPDATE uuid: uuid name: My-direct-route-1 description: description rulesCount: 0 project: - href: https://api.equinix.com/resourceManager/v1/projects/567 + href: https://openapi-generator.tech projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -39955,22 +43748,21 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d state: null - type: BGP_IPv4_PREFIX_FILTER - notMatchedRuleAction: ALLOW + type: BGP_IPv4_PREFIX_AGGREGATION uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d connectionsCount: 0 properties: pagination: $ref: '#/components/schemas/Pagination' data: - description: List of Route Filters + description: List of Route Aggregations items: - $ref: '#/components/schemas/RouteFiltersData' + $ref: '#/components/schemas/RouteAggregationsData' type: array type: object - GetRouteFilterRulesResponse: + GetRouteAggregationRulesResponse: example: pagination: next: next @@ -39982,12 +43774,11 @@ components: - prefix: 192.168.0.0/24 change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE uuid: uuid - name: Private-subnet-filter-2 + name: Private-subnet-aggregation-2 description: description - action: PERMIT - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -40000,20 +43791,18 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b state: null - type: BGP_IPv4_PREFIX_FILTER_RULE + type: BGP_IPv4_PREFIX_AGGREGATION_RULE uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b - prefix: 192.168.0.0/24 change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE uuid: uuid - name: Private-subnet-filter-2 + name: Private-subnet-aggregation-2 description: description - action: PERMIT - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -40026,54 +43815,47 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b state: null - type: BGP_IPv4_PREFIX_FILTER_RULE + type: BGP_IPv4_PREFIX_AGGREGATION_RULE uuid: 65b025ef-022b-4180-85cf-82cfc1ab655b properties: pagination: $ref: '#/components/schemas/Pagination' data: - description: List of Route Filter Rules + description: List of Route Aggregation Rules items: - $ref: '#/components/schemas/RouteFilterRulesData' + $ref: '#/components/schemas/RouteAggregationRulesData' type: array type: object - RouteFilterRulesBase: + RouteAggregationRulesBase: example: prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" properties: name: - example: Private-subnet-filter + example: Private-subnet-Aggregation type: string description: - description: Customer-provided Route Filter Rule description + description: Customer-provided Route Aggregation Rule description type: string prefix: example: 192.168.0.0/24 type: string - prefixMatch: - default: orlonger - example: "orlonger, exact" - type: string required: - prefix type: object - RouteFilterRulesData: + RouteAggregationRulesData: example: prefix: 192.168.0.0/24 change: href: https://openapi-generator.tech - type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE uuid: uuid - name: Private-subnet-filter-2 + name: Private-subnet-aggregation-2 description: description - action: PERMIT - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -40086,66 +43868,54 @@ components: 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 + href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b state: null - type: BGP_IPv4_PREFIX_FILTER_RULE + type: BGP_IPv4_PREFIX_AGGREGATION_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 + description: Route Aggregation Rules URI + example: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b format: uri type: string type: - description: Route Filter type + description: Route Aggregation type enum: - - BGP_IPv4_PREFIX_FILTER_RULE - - BGP_IPv6_PREFIX_FILTER_RULE + - BGP_IPv4_PREFIX_AGGREGATION_RULE type: string uuid: - description: Route Filter Rule identifier + description: Route Aggregation Rule identifier example: 65b025ef-022b-4180-85cf-82cfc1ab655b format: uuid type: string name: - example: Private-subnet-filter-2 + example: Private-subnet-aggregation-2 type: string description: - description: Customer-provided Route Filter Rule description + description: Customer-provided Route Aggregation Rule description type: string state: - $ref: '#/components/schemas/RouteFilterRuleState' - prefixMatch: - default: orlonger - description: prefix matching operator - example: exact - type: string + $ref: '#/components/schemas/RouteAggregationRuleState' change: - $ref: '#/components/schemas/RouteFilterRulesChange' - action: - enum: - - PERMIT - - DENY - type: string + $ref: '#/components/schemas/RouteAggregationRulesChange' prefix: example: 192.168.0.0/24 type: string - changelog: + changeLog: $ref: '#/components/schemas/Changelog' type: object - RouteFilterRuleId: - description: Route Filter Rule UUID + RouteAggregationRuleId: + description: Route Aggregation Rule UUID example: 65b025ef-022b-4180-85cf-82cfc1ab655b type: string - RouteFilterRulesPatchRequest: - description: Patch Route Filters Rule request + RouteAggregationRulesPatchRequest: + description: Patch Route Aggregations Rule request items: - $ref: '#/components/schemas/RouteFilterRulesPatchRequestItem' + $ref: '#/components/schemas/RouteAggregationRulesPatchRequestItem' minItems: 1 type: array - RouteFilterRulesChangeDataResponse: - description: List of Route Filter Rule changes + RouteAggregationRulesChangeDataResponse: + description: List of Route Aggregation Rule changes example: pagination: next: next @@ -40160,9 +43930,8 @@ components: path: / value: prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 status: COMPLETED @@ -40173,9 +43942,8 @@ components: path: / value: prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 status: COMPLETED @@ -40185,18 +43953,18 @@ components: $ref: '#/components/schemas/Pagination' data: items: - $ref: '#/components/schemas/RouteFilterRulesChangeData' + $ref: '#/components/schemas/RouteAggregationRulesChangeData' type: array type: object - ChangeId_2: - description: Route Filter Rule Change UUID + ChangeId_4: + description: Route Aggregation Rule Change UUID example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 format: uuid type: string - RouteFilterRulesChangeData: + RouteAggregationRulesChangeData: allOf: - - $ref: '#/components/schemas/RouteFilterRulesChange' - description: Current state of latest Route Filter Rules change + - $ref: '#/components/schemas/RouteAggregationRulesChange' + description: Current state of latest Route Aggregation Rules change example: updatedBy: updatedBy data: @@ -40204,9 +43972,8 @@ components: path: / value: prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" createdBy: createdBy createdDateTime: 2000-01-23T04:56:07.000+00:00 status: COMPLETED @@ -40234,25 +44001,23 @@ components: format: date-time type: string data: - $ref: '#/components/schemas/RouteFilterRulesChangeOperation' + $ref: '#/components/schemas/RouteAggregationRulesChangeOperation' type: object - RouteFilterRulesPostRequest: - description: Create Route Filter Rule POST request + RouteAggregationRulesPostRequest: + description: Create Route Aggregation Rule POST request example: data: - prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" - prefix: 192.168.0.0/24 - name: Private-subnet-filter + name: Private-subnet-Aggregation description: description - prefixMatch: "orlonger, exact" properties: data: - description: Route Filter Rule configuration + description: Route Aggregation Rule configuration items: - $ref: '#/components/schemas/RouteFilterRulesBase' + $ref: '#/components/schemas/RouteAggregationRulesBase' type: array type: object CloudRouterPostRequest: @@ -40267,8 +44032,8 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 location: metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM metroCode: AM - href: href region: "AMER, APAC, EMEA" type: XF_ROUTER marketplaceSubscription: @@ -40343,7 +44108,6 @@ components: - $ref: '#/components/schemas/CloudRouterPostRequest' description: Fabric Cloud Router object example: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -40356,6 +44120,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -40369,14 +44134,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -40405,26 +44166,10 @@ components: example: 30000 format: int64 type: integer - bgpIpv4RoutesCount: - description: Access point used and maximum number of IPv4 BGP routes - minimum: 0 - type: integer - bgpIpv6RoutesCount: - description: Access point used and maximum number of IPv6 BGP routes - minimum: 0 - type: integer connectionsCount: description: Number of connections associated with this Access point minimum: 0 type: integer - distinctIpv4PrefixesCount: - description: Number of distinct ipv4 routes - minimum: 0 - type: integer - distinctIpv6PrefixesCount: - description: Number of distinct ipv6 routes - minimum: 0 - type: integer marketplaceSubscription: $ref: '#/components/schemas/marketplaceSubscription' changeLog: @@ -40451,14 +44196,14 @@ components: ActionState: $ref: '#/components/schemas/CloudRouterActionState' CloudRouterActionState: - description: Cloud Router action state + description: Cloud router action state enum: - SUCCEEDED - FAILED - PENDING type: string CloudRouterActionResponse: - description: Cloud Router actions response object + description: Cloud router actions response object example: description: description changeLog: @@ -40511,7 +44256,7 @@ components: - uuid type: object CloudRouterActionRequest: - description: Cloud Router action request + description: Cloud router action request example: connection: uuid: 557400f8-d360-11e9-bb65-2a2ae2dbcce4 @@ -41061,8 +44806,7 @@ components: previous: previous limit: 0 data: - - bgpIpv4RoutesCount: 0 - equinixAsn: 30000 + - equinixAsn: 30000 change: data: op: replace @@ -41074,6 +44818,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -41087,20 +44832,15 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION uuid: 20d32a80-0d61-4333-bc03-707b591ae2f5 - - bgpIpv4RoutesCount: 0 - equinixAsn: 30000 + - equinixAsn: 30000 change: data: op: replace @@ -41112,6 +44852,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -41125,14 +44866,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -41155,42 +44892,30 @@ components: previous: previous limit: 0 data: - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT + - code: LAB + totalIPv4RoutesMax: 50 + vcBandwidthMax: 50 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 + type: ROUTER_PACKAGE vcCountMax: 10 routeFilterSupported: true - - staticIPv6RoutesMax: 0 - naclRulesMax: 5 - code: LAB - natType: STATIC_NAT + - code: LAB + totalIPv4RoutesMax: 50 + vcBandwidthMax: 50 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 + type: ROUTER_PACKAGE vcCountMax: 10 routeFilterSupported: true properties: @@ -41213,23 +44938,17 @@ components: CloudRouterPackage: description: Fabric Cloud Router Package example: - staticIPv6RoutesMax: 0 - naclRulesMax: 5 code: LAB - natType: STATIC_NAT + totalIPv4RoutesMax: 50 + vcBandwidthMax: 50 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 + type: ROUTER_PACKAGE vcCountMax: 10 routeFilterSupported: true properties: @@ -41260,38 +44979,9 @@ components: example: 50 minimum: 0 type: integer - staticIPv4RoutesMax: - description: CloudRouter package static IPv4 routes limit - example: 3 - minimum: 0 - type: integer - staticIPv6RoutesMax: - description: CloudRouter package static IPv6 routes limit - minimum: 0 - type: integer - naclsMax: - description: CloudRouter package NACLs limit - example: 2 - minimum: 0 - type: integer - naclRulesMax: - description: CloudRouter package NACLs rules limit - example: 5 - minimum: 0 - type: integer - haSupported: - description: CloudRouter package high-available configuration support - example: true - type: boolean routeFilterSupported: description: CloudRouter package route filter support type: boolean - natType: - description: CloudRouter package NAT supported type - enum: - - STATIC_NAT - example: STATIC_NAT - type: string vcCountMax: description: CloudRouter package Max Connection limit example: 10 @@ -41378,21 +45068,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -41412,31 +45103,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -41456,41 +45148,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -41510,31 +45203,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -41554,23 +45248,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -41644,8 +45339,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -41655,8 +45350,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -41678,8 +45373,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -41687,8 +45382,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -41720,7 +45415,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -41730,7 +45425,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -41756,7 +45451,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -41793,8 +45488,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -41820,7 +45515,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -41833,6 +45527,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -41846,14 +45541,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -41873,15 +45564,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -41956,15 +45647,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -42045,15 +45736,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -42099,17 +45790,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -42130,8 +45821,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -42152,10 +45843,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion redundancy: priority: null @@ -42197,21 +45888,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -42231,31 +45923,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -42275,41 +45968,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -42329,31 +46023,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -42373,23 +46068,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -42463,8 +46159,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -42474,8 +46170,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -42497,8 +46193,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -42506,8 +46202,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -42539,7 +46235,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -42549,7 +46245,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -42575,7 +46271,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -42612,8 +46308,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -42639,7 +46335,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -42652,6 +46347,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -42665,14 +46361,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -42692,15 +46384,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -42775,15 +46467,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -42864,15 +46556,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -42918,17 +46610,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -42949,8 +46641,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -42971,10 +46663,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion - bandwidth: 4004 aSide: @@ -43013,21 +46705,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43047,31 +46740,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43091,41 +46785,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43145,31 +46840,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43189,23 +46885,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -43279,8 +46976,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -43290,8 +46987,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -43313,8 +47010,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -43322,8 +47019,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -43355,7 +47052,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -43365,7 +47062,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -43391,7 +47088,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -43428,8 +47125,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -43455,7 +47152,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -43468,6 +47164,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -43481,14 +47178,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -43508,15 +47201,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -43591,15 +47284,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -43680,15 +47373,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -43734,17 +47427,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -43765,8 +47458,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -43787,10 +47480,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion redundancy: priority: null @@ -43832,21 +47525,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43866,31 +47560,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43910,41 +47605,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -43964,31 +47660,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -44008,23 +47705,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -44098,8 +47796,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -44109,8 +47807,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -44132,8 +47830,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -44141,8 +47839,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -44174,7 +47872,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -44184,7 +47882,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -44210,7 +47908,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -44247,8 +47945,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -44274,7 +47972,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -44287,6 +47984,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -44300,14 +47998,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -44327,15 +48021,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -44410,15 +48104,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -44499,15 +48193,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -44553,17 +48247,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -44584,8 +48278,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -44606,10 +48300,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion additionalInfo: - value: value @@ -44672,8 +48366,8 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: null @@ -44941,21 +48635,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -44975,31 +48670,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45019,41 +48715,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45073,31 +48770,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45117,23 +48815,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -45207,8 +48906,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -45218,8 +48917,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -45241,8 +48940,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -45250,8 +48949,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -45283,7 +48982,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -45293,7 +48992,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -45319,7 +49018,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -45356,8 +49055,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -45383,7 +49082,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -45396,6 +49094,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -45409,14 +49108,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -45436,15 +49131,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -45519,15 +49214,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -45608,15 +49303,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -45662,17 +49357,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -45693,8 +49388,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -45715,10 +49410,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion change: data: @@ -45786,21 +49481,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45820,31 +49516,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45864,41 +49561,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45918,31 +49616,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -45962,23 +49661,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -46052,8 +49752,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -46063,8 +49763,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -46086,8 +49786,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -46095,8 +49795,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -46128,7 +49828,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -46138,7 +49838,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -46164,7 +49864,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -46201,8 +49901,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -46228,7 +49928,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -46241,6 +49940,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -46254,14 +49954,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -46281,15 +49977,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -46364,15 +50060,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -46453,15 +50149,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -46507,17 +50203,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -46538,8 +50234,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -46560,10 +50256,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion name: name additionalInfo: @@ -46681,21 +50377,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -46715,31 +50412,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -46759,41 +50457,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -46813,31 +50512,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -46857,23 +50557,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -46947,8 +50648,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -46958,8 +50659,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -46981,8 +50682,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -46990,8 +50691,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -47023,7 +50724,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -47033,7 +50734,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -47059,7 +50760,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -47096,8 +50797,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -47123,7 +50824,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -47136,6 +50836,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -47149,14 +50850,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -47176,15 +50873,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -47259,15 +50956,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -47348,15 +51045,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -47402,17 +51099,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -47433,8 +51130,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -47455,10 +51152,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion change: data: @@ -47526,21 +51223,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -47560,31 +51258,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -47604,41 +51303,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -47658,31 +51358,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -47702,23 +51403,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -47792,8 +51494,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -47803,8 +51505,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -47826,8 +51528,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -47835,8 +51537,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -47868,7 +51570,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -47878,7 +51580,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -47904,7 +51606,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -47941,8 +51643,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -47968,7 +51670,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -47981,6 +51682,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -47994,14 +51696,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -48021,15 +51719,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -48104,15 +51802,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -48193,15 +51891,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -48247,17 +51945,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -48278,8 +51976,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -48300,10 +51998,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion name: name additionalInfo: @@ -48436,7 +52134,7 @@ components: $ref: '#/components/schemas/NetworkChange' type: array type: object - ChangeId_3: + ChangeId_5: description: Network Change UUID example: 6d500177-9404-41f2-99e8-2bf1a84d8db5 format: uuid @@ -48631,8 +52329,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -48642,8 +52340,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -48665,8 +52363,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -48674,8 +52372,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -48707,7 +52405,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -48717,7 +52415,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -48743,7 +52441,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -48780,8 +52478,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -48807,7 +52505,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -48820,6 +52517,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -48833,14 +52531,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -48860,15 +52554,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -48943,15 +52637,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -49032,15 +52726,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -49086,17 +52780,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -49117,8 +52811,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -49139,10 +52833,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -49190,8 +52884,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -49201,8 +52895,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -49224,8 +52918,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -49233,8 +52927,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -49266,7 +52960,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -49276,7 +52970,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -49302,7 +52996,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -49339,8 +53033,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -49366,7 +53060,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -49379,6 +53072,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -49392,14 +53086,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -49419,15 +53109,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -49502,15 +53192,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -49591,15 +53281,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -49645,17 +53335,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -49676,8 +53366,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -49698,10 +53388,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion - aSide: accessPoint: @@ -49746,8 +53436,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -49757,8 +53447,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -49780,8 +53470,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -49789,8 +53479,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -49822,7 +53512,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -49832,7 +53522,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -49858,7 +53548,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -49895,8 +53585,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -49922,7 +53612,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -49935,6 +53624,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -49948,14 +53638,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -49975,15 +53661,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -50058,15 +53744,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -50147,15 +53833,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -50201,17 +53887,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -50232,8 +53918,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -50254,10 +53940,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -50305,8 +53991,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -50316,8 +54002,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -50339,8 +54025,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -50348,8 +54034,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -50381,7 +54067,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -50391,7 +54077,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -50417,7 +54103,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -50454,8 +54140,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -50481,7 +54167,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -50494,6 +54179,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -50507,14 +54193,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -50534,15 +54216,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -50617,15 +54299,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -50706,15 +54388,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -50760,17 +54442,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -50791,8 +54473,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -50813,10 +54495,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion account: resellerOrgId: 5 @@ -50831,6 +54513,13 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + pricing: + charges: + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + currency: currency order: orderNumber: orderNumber customerReferenceNumber: customerReferenceNumber @@ -50857,6 +54546,7 @@ components: description: Precision Time Service Status. enum: - CANCELLED + - CANCELLING - CONFIGURING - CONFIGURING_FAILED - DRAFT @@ -50894,6 +54584,8 @@ components: $ref: '#/components/schemas/SimplifiedAccount' order: $ref: '#/components/schemas/precisionTimeOrder' + pricing: + $ref: '#/components/schemas/precisionTimePrice' changeLog: $ref: '#/components/schemas/Changelog' required: @@ -51163,8 +54855,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -51174,8 +54866,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -51197,8 +54889,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -51206,8 +54898,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -51239,7 +54931,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -51249,7 +54941,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -51275,7 +54967,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -51312,8 +55004,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -51339,7 +55031,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -51352,6 +55043,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -51365,14 +55057,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -51392,15 +55080,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -51475,15 +55163,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -51564,15 +55252,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -51618,17 +55306,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -51649,8 +55337,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -51671,10 +55359,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -51722,8 +55410,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -51733,8 +55421,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -51756,8 +55444,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -51765,8 +55453,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -51798,7 +55486,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -51808,7 +55496,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -51834,7 +55522,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -51871,8 +55559,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -51898,7 +55586,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -51911,6 +55598,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -51924,14 +55612,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -51951,15 +55635,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -52034,15 +55718,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -52123,15 +55807,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -52177,17 +55861,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -52208,8 +55892,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -52230,10 +55914,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion - aSide: accessPoint: @@ -52278,8 +55962,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -52289,8 +55973,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -52312,8 +55996,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -52321,8 +56005,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -52354,7 +56038,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -52364,7 +56048,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -52390,7 +56074,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -52427,8 +56111,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -52454,7 +56138,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -52467,6 +56150,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -52480,14 +56164,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -52507,15 +56187,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -52590,15 +56270,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -52679,15 +56359,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -52733,17 +56413,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -52764,8 +56444,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -52786,10 +56466,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -52837,8 +56517,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -52848,8 +56528,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -52871,8 +56551,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -52880,8 +56560,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -52913,7 +56593,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -52923,7 +56603,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -52949,7 +56629,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -52986,8 +56666,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -53013,7 +56693,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -53026,6 +56705,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -53039,14 +56719,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -53066,15 +56742,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -53149,15 +56825,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -53238,15 +56914,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -53292,17 +56968,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -53323,8 +56999,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -53345,10 +57021,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion account: resellerOrgId: 5 @@ -53363,6 +57039,13 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + pricing: + charges: + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + currency: currency order: orderNumber: orderNumber customerReferenceNumber: customerReferenceNumber @@ -53468,8 +57151,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -53479,8 +57162,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -53502,8 +57185,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -53511,8 +57194,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -53544,7 +57227,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -53554,7 +57237,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -53580,7 +57263,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -53617,8 +57300,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -53644,7 +57327,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -53657,6 +57339,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -53670,14 +57353,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -53697,15 +57376,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -53780,15 +57459,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -53869,15 +57548,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -53923,17 +57602,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -53954,8 +57633,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -53976,10 +57655,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -54027,8 +57706,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -54038,8 +57717,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -54061,8 +57740,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -54070,8 +57749,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -54103,7 +57782,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -54113,7 +57792,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -54139,7 +57818,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -54176,8 +57855,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -54203,7 +57882,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -54216,6 +57894,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -54229,14 +57908,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -54256,15 +57931,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -54339,15 +58014,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -54428,15 +58103,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -54482,17 +58157,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -54513,8 +58188,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -54535,10 +58210,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion - aSide: accessPoint: @@ -54583,8 +58258,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -54594,8 +58269,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -54617,8 +58292,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -54626,8 +58301,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -54659,7 +58334,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -54669,7 +58344,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -54695,7 +58370,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -54732,8 +58407,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -54759,7 +58434,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -54772,6 +58446,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -54785,14 +58460,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -54812,15 +58483,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -54895,15 +58566,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -54984,15 +58655,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -55038,17 +58709,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -55069,8 +58740,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -55091,10 +58762,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -55142,8 +58813,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -55153,8 +58824,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -55176,8 +58847,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -55185,8 +58856,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -55218,7 +58889,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -55228,7 +58899,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -55254,7 +58925,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -55291,8 +58962,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -55318,7 +58989,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -55331,6 +59001,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -55344,14 +59015,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -55371,15 +59038,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -55454,15 +59121,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -55543,15 +59210,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -55597,17 +59264,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -55628,8 +59295,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -55650,10 +59317,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion account: resellerOrgId: 5 @@ -55668,6 +59335,13 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + pricing: + charges: + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + currency: currency order: orderNumber: orderNumber customerReferenceNumber: customerReferenceNumber @@ -55878,11 +59552,13 @@ components: updatedDateTime: 2020-11-06T07:00:00Z href: https://openapi-generator.tech state: null + metroCodes: + - metroCodes + - metroCodes uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 trial: expiryDateTime: 2000-01-23T04:56:07.000+00:00 enabled: true - subscriptionKey: subscriptionKey properties: href: description: Subscription URL @@ -55917,9 +59593,11 @@ components: type: string trial: $ref: '#/components/schemas/SubscriptionTrial' - subscriptionKey: - description: Subscription Key - type: string + metroCodes: + description: List of available metro + items: + type: string + type: array entitlements: description: List of entitlements associated with the subscription items: @@ -55932,7 +59610,6 @@ components: - marketplace - state type: object - x-preview: false SubscriptionState: description: Subscription State enum: @@ -56028,7 +59705,7 @@ components: data: - assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56046,7 +59723,7 @@ components: uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56105,7 +59782,7 @@ components: example: assetsCount: 1 streamSubscriptionsCount: 2 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56150,7 +59827,7 @@ components: description: Stream subscriptions count example: 2 type: integer - changelog: + changeLog: $ref: '#/components/schemas/Changelog' type: object StreamId: @@ -56299,10 +59976,12 @@ components: - metricsEnabled: false attachmentStatus: ATTACHING href: https://openapi-generator.tech + type: XF_PORT uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - metricsEnabled: false attachmentStatus: ATTACHING href: https://openapi-generator.tech + type: XF_PORT uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 properties: pagination: @@ -56324,6 +60003,8 @@ components: - connections - routers - metros + - organizations + - projects type: string StreamAsset: description: Stream object @@ -56331,6 +60012,7 @@ components: metricsEnabled: false attachmentStatus: ATTACHING href: https://openapi-generator.tech + type: XF_PORT uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 properties: href: @@ -56343,6 +60025,18 @@ components: example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 format: uuid type: string + type: + description: Asset types + enum: + - XF_PORT + - IP_VC + - EVPLAN_VC + - EVPL_VC + - XF_METRO + - XF_ROUTER + - ORGANIZATION + - PROJECT + type: string metricsEnabled: description: enable metric example: false @@ -56400,8 +60094,32 @@ components: previous: previous limit: 0 data: - - stream: - uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + - metricSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* sink: batchSizeMax: 0 settings: @@ -56418,11 +60136,10 @@ components: type: DATADOG uri: uri batchEnabled: false - name: name description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56435,8 +60152,6 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - state: PROVISIONING filters: and: - null @@ -56447,8 +60162,37 @@ components: type: STREAM_SUBSCRIPTION uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 enabled: true - - stream: + stream: uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + name: name + href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + state: PROVISIONING + - metricSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* sink: batchSizeMax: 0 settings: @@ -56465,11 +60209,10 @@ components: type: DATADOG uri: uri batchEnabled: false - name: name description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56482,8 +60225,6 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - state: PROVISIONING filters: and: - null @@ -56494,6 +60235,11 @@ components: type: STREAM_SUBSCRIPTION uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 enabled: true + stream: + uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + name: name + href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + state: PROVISIONING properties: pagination: $ref: '#/components/schemas/Pagination' @@ -56506,8 +60252,34 @@ components: StreamSubscriptionPostRequest: description: Create Stream Subscription example: + metricSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* stream: uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + eventSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* sink: batchSizeMax: 0 settings: @@ -56558,6 +60330,10 @@ components: $ref: '#/components/schemas/StreamTarget' filters: $ref: '#/components/schemas/StreamSubscriptionFilter' + metricSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' + eventSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' sink: $ref: '#/components/schemas/StreamSubscriptionSink' type: object @@ -56612,6 +60388,45 @@ components: maxItems: 3 type: array type: object + StreamSubscriptionSelector: + example: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + properties: + include: + items: + $ref: '#/components/schemas/StreamSubscriptionExpression' + maxItems: 8 + type: array + except: + items: + $ref: '#/components/schemas/StreamSubscriptionExpression' + maxItems: 8 + type: array + type: object + StreamSubscriptionExpression: + description: | + Possible event or metric names to use on event and metric selectors: + * `*` - all events or metrics + * `equinix.fabric.port.*` - port events or metrics + * `equinix.fabric.connection.*` - connection events or metrics + * `equinix.fabric.cloudrouter.*` - cloud router events + * `equinix.fabric.metro.*` - metro metrics + * `equinix.fabric.network.*` - network events + * `equinix.fabric.service_token.*` - service token events + * `equinix.fabric.network_edge.*` - network edge events + example: equinix.fabric.connection.* + type: string StreamSubscriptionSink: description: Create Stream destination example: @@ -56708,8 +60523,32 @@ components: StreamSubscription: description: Stream Subscription object example: - stream: - uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + metricSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + eventSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* sink: batchSizeMax: 0 settings: @@ -56726,11 +60565,10 @@ components: type: DATADOG uri: uri batchEnabled: false - name: name description: description project: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 - changelog: + changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith updatedBy: johnsmith @@ -56743,8 +60581,6 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - state: PROVISIONING filters: and: - null @@ -56755,6 +60591,11 @@ components: type: STREAM_SUBSCRIPTION uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 enabled: true + stream: + uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + name: name + href: https://api.equinix.com/fabric/v4/streamSubscription/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + state: PROVISIONING properties: href: description: Stream Subscription URI @@ -56796,9 +60637,13 @@ components: $ref: '#/components/schemas/StreamTarget' filters: $ref: '#/components/schemas/StreamSubscriptionFilter' + metricSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' + eventSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' sink: $ref: '#/components/schemas/StreamSubscriptionSink' - changelog: + changeLog: $ref: '#/components/schemas/Changelog' type: object StreamSubscriptionId: @@ -56809,8 +60654,34 @@ components: StreamSubscriptionPutRequest: description: Update Stream Subscription example: + metricSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* stream: uuid: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + eventSelector: + include: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + except: + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* + - equinix.fabric.connection.* sink: batchSizeMax: 0 settings: @@ -56852,6 +60723,10 @@ components: type: boolean filters: $ref: '#/components/schemas/StreamSubscriptionFilter' + metricSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' + eventSelector: + $ref: '#/components/schemas/StreamSubscriptionSelector' sink: $ref: '#/components/schemas/StreamSubscriptionSink' type: object @@ -56983,21 +60858,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -57017,31 +60893,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -57061,41 +60938,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -57115,31 +60993,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -57159,23 +61038,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -57249,8 +61129,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -57260,8 +61140,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -57283,8 +61163,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -57292,8 +61172,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -57325,7 +61205,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -57335,7 +61215,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -57361,7 +61241,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -57398,8 +61278,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -57425,7 +61305,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -57438,6 +61317,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -57451,14 +61331,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -57478,15 +61354,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -57561,15 +61437,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -57650,15 +61526,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -57704,17 +61580,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -57735,8 +61611,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -57757,10 +61633,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: serviceToken: @@ -57821,6 +61697,8 @@ components: description: Marketplace Subscription type enum: - AWS_MARKETPLACE_SUBSCRIPTION + - GCP_MARKETPLACE_SUBSCRIPTION + - AZURE_MARKETPLACE_SUBSCRIPTION example: AWS_MARKETPLACE_SUBSCRIPTION type: string uuid: @@ -57828,6 +61706,21 @@ components: example: 20d32a80-0d61-4333-bc03-707b591ae2f5 type: string type: object + EndCustomer: + example: + isDisclosed: false + name: name + mdmId: mdmId + properties: + isDisclosed: + default: false + description: Indicate if endCustomer info should be disclosed or not + type: boolean + name: + type: string + mdmId: + type: string + type: object ConnectionState: description: Connection status enum: @@ -58182,21 +62075,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -58216,31 +62110,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -58260,41 +62155,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -58314,31 +62210,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -58358,23 +62255,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -58448,8 +62346,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -58459,8 +62357,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -58482,8 +62380,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -58491,8 +62389,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -58524,7 +62422,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -58534,7 +62432,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -58560,7 +62458,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -58597,8 +62495,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -58624,7 +62522,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -58637,6 +62534,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -58650,14 +62548,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -58677,15 +62571,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -58760,15 +62654,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -58849,15 +62743,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -58903,17 +62797,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -58934,8 +62828,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -58956,10 +62850,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: zSide: @@ -58988,7 +62882,7 @@ components: type: integer type: object ConnectionRouteTableEntry: - description: Adv/Rec Route table entry object + description: Advertised and received route table entry object example: nextHop: 10.10.10.5 prefix: 192.168.10.0/24 @@ -59378,6 +63272,7 @@ components: prefixLength: 5 location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 description: description @@ -59392,6 +63287,7 @@ components: code: null location: metroCode: metroCode + ibx: ibx uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 termLength: 6 port: @@ -59421,6 +63317,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 type: null @@ -59434,6 +63331,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null @@ -59453,6 +63351,16 @@ components: accountNumber: 0 globalCustId: globalCustId orgId: 6 + timeService: + package: + code: NTP_STANDARD + connection: + aSide: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + type: NTP properties: href: description: An absolute URL that returns specified pricing data @@ -59495,6 +63403,8 @@ components: $ref: '#/components/schemas/FabricCloudRouterPrice' port: $ref: '#/components/schemas/VirtualPortPrice' + timeService: + $ref: '#/components/schemas/TimeServicePrice' type: object ServiceProfileTypeEnum: description: Service profile type @@ -59512,11 +63422,14 @@ components: SimplifiedLocation: example: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 properties: + metroHref: + example: https://api.equinix.com/fabric/v4/metros/AM + type: string region: example: "AMER, APAC, EMEA" type: string @@ -59526,9 +63439,6 @@ components: metroCode: example: AM type: string - metroHref: - example: https://api.equinix.com/fabric/v4/metros/AM - type: string ibx: deprecated: true example: AM1 @@ -59555,15 +63465,16 @@ components: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -59583,31 +63494,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -59627,41 +63539,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -59681,31 +63594,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -59725,17 +63639,17 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -59746,6 +63660,7 @@ components: description: Type of Connection enum: - EVPL_VC + - EPL_VC - EVPLAN_VC - EPLAN_VC - IPWAN_VC @@ -59889,11 +63804,11 @@ components: description: Operational specifications for ports. example: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 properties: operationalStatus: description: Availability of a given physical port. @@ -60320,7 +64235,7 @@ components: - NOT_DEPROVISIONED type: string RouteFiltersChange: - description: Current state of latest Route Filter change + description: Current state of latest route filter change example: href: https://openapi-generator.tech type: BGP_IPv4_PREFIX_FILTER_UPDATE @@ -60340,7 +64255,7 @@ components: - BGP_IPv6_PREFIX_FILTER_DELETION type: string href: - description: Route Filter Change URI + description: Route filter change URI format: uri type: string required: @@ -60348,7 +64263,7 @@ components: - uuid type: object RouteFiltersPatchRequestItem: - description: Route Filter change operation data + description: Route filter change operation data example: op: replace path: /name @@ -60371,7 +64286,7 @@ components: - value type: object RouteFiltersChangeOperation: - description: Route Filter change operation data + description: Route filter change operation data example: op: add path: / @@ -60415,7 +64330,7 @@ components: type: $ref: '#/components/schemas/ConnectionType' uuid: - description: Route Filter identifier + description: Route filter identifier example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d format: uuid type: string @@ -60424,7 +64339,7 @@ components: type: string type: object RouteFilterRuleState: - description: Route Filter Rule status + description: Route filter rule status enum: - PROVISIONING - REPROVISIONING @@ -60435,7 +64350,7 @@ components: - NOT_DEPROVISIONED type: string RouteFilterRulesChange: - description: Current state of latest Route Filter Rule change + description: Current state of latest route filter rule change example: href: https://openapi-generator.tech type: BGP_IPv4_PREFIX_FILTER_RULE_UPDATE @@ -60463,7 +64378,7 @@ components: - uuid type: object RouteFilterRulesPatchRequestItem: - description: Route Filter Rule change operation data + description: Route filter rule change operation data example: op: replace path: /prefixMatch @@ -60486,7 +64401,7 @@ components: - value type: object RouteFilterRulesChangeOperation: - description: Route Filter Rule change operation data + description: Route filter rule change operation data example: op: add path: / @@ -60514,15 +64429,218 @@ components: - path - value type: object + RouteAggregationState: + description: Route Aggregation status + enum: + - PROVISIONING + - REPROVISIONING + - DEPROVISIONING + - PROVISIONED + - DEPROVISIONED + - NOT_PROVISIONED + - NOT_DEPROVISIONED + type: string + RouteAggregationsChange: + description: Current state of latest Route Aggregation change + example: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_AGGREGATION_UPDATE + uuid: uuid + properties: + uuid: + description: Uniquely identifies a change + type: string + type: + description: Type of change + enum: + - BGP_IPv4_PREFIX_AGGREGATION_UPDATE + - BGP_IPv4_PREFIX_AGGREGATION_CREATION + - BGP_IPv4_PREFIX_AGGREGATION_DELETION + - BGP_IPv6_PREFIX_AGGREGATION_UPDATE + - BGP_IPv6_PREFIX_AGGREGATION_CREATION + - BGP_IPv6_PREFIX_AGGREGATION_DELETION + type: string + href: + description: Route AGGREGATION Change URI + format: uri + type: string + required: + - type + - uuid + type: object + RouteAggregationsPatchRequestItem: + description: Route Aggregation change operation data + example: + op: replace + path: /name + value: "{}" + properties: + op: + description: Handy shortcut for operation name + example: replace + type: string + path: + description: path to change + example: /name + type: string + value: + description: new value for updated parameter + type: object + required: + - op + - path + - value + type: object + RouteAggregationsChangeOperation: + description: Route Aggregation 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_AGGREGATION + 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/RouteAggregationsBase' + required: + - op + - path + - value + type: object + RouteAggregationConnectionsData: + 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 Aggregation identifier + example: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + format: uuid + type: string + name: + example: connection-1 + type: string + type: object + RouteAggregationRuleState: + description: Route Aggregation Rule status + enum: + - PROVISIONING + - REPROVISIONING + - DEPROVISIONING + - PROVISIONED + - DEPROVISIONED + - NOT_PROVISIONED + - NOT_DEPROVISIONED + type: string + RouteAggregationRulesChange: + description: Current state of latest Route Aggregation Rule change + example: + href: https://openapi-generator.tech + type: BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE + uuid: uuid + properties: + uuid: + description: Uniquely identifies a change + type: string + type: + description: Type of change + enum: + - BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE + - BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION + - BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION + type: string + href: + description: Route Aggregation Change URI + format: uri + type: string + required: + - type + - uuid + type: object + RouteAggregationRulesPatchRequestItem: + description: Route Aggregation Rule change operation data + example: + op: replace + path: /prefix + value: "{}" + properties: + op: + description: Handy shortcut for operation name + example: replace + type: string + path: + description: path to change + example: /prefix + type: string + value: + description: new value for updated parameter + type: object + required: + - op + - path + - value + type: object + RouteAggregationRulesChangeOperation: + description: Route Aggregation Rule change operation data + example: + op: add + path: / + value: + prefix: 192.168.0.0/24 + name: Private-subnet-Aggregation + description: description + 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/RouteAggregationRulesBase' + required: + - op + - path + - value + type: object SimplifiedLocationWithoutIBX: example: metroName: Amsterdam + metroHref: https://api.equinix.com/fabric/v4/metros/AM metroCode: AM - href: href region: "AMER, APAC, EMEA" properties: - href: + metroHref: description: The Canonical URL at which the resource resides. + example: https://api.equinix.com/fabric/v4/metros/AM type: string region: example: "AMER, APAC, EMEA" @@ -60652,7 +64770,7 @@ components: - value type: object CloudRouterActionType: - description: Cloud Router action type + description: Cloud router action type enum: - BGP_SESSION_STATUS_UPDATE - ROUTE_TABLE_ENTRY_UPDATE @@ -60676,11 +64794,11 @@ components: bgpIpv6RoutesCount: 6 properties: bgpIpv4RoutesCount: - description: IPV4 Route Count + description: IPV4 route count example: 6 type: integer bgpIpv6RoutesCount: - description: IPV6 Route Count + description: IPV6 route count example: 6 type: integer type: object @@ -60830,21 +64948,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -60864,31 +64983,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -60908,41 +65028,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -60962,31 +65083,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -61006,23 +65128,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -61096,8 +65219,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -61107,8 +65230,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -61130,8 +65253,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -61139,8 +65262,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -61172,7 +65295,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -61182,7 +65305,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -61208,7 +65331,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -61245,8 +65368,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -61272,7 +65395,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -61285,6 +65407,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -61298,14 +65421,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -61325,15 +65444,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -61408,15 +65527,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -61497,15 +65616,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -61551,17 +65670,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -61582,8 +65701,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -61604,10 +65723,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion redundancy: priority: null @@ -61649,21 +65768,22 @@ components: projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - issuerSide: ASIDE + issuerSide: issuerSide name: name connection: allowRemoteConnection: false aSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -61683,31 +65803,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -61727,41 +65848,42 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - bandwidthLimit: 23021 + bandwidthLimit: 70614 allowCustomBandwidth: false href: https://openapi-generator.tech type: EVPL_VC uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 supportedBandwidths: - - 7 - - 7 + - 9 + - 9 zSide: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -61781,31 +65903,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -61825,23 +65948,24 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 href: https://openapi-generator.tech + expiry: 2 state: null notifications: - emails: @@ -61915,8 +66039,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -61926,8 +66050,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -61949,8 +66073,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -61958,8 +66082,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -61991,7 +66115,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -62001,7 +66125,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -62027,7 +66151,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -62064,8 +66188,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -62091,7 +66215,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -62104,6 +66227,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -62117,14 +66241,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -62144,15 +66264,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -62227,15 +66347,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -62316,15 +66436,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -62370,17 +66490,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -62401,8 +66521,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -62423,10 +66543,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: uuid: @@ -62806,8 +66926,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -62817,8 +66937,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -62840,8 +66960,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -62849,8 +66969,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -62882,7 +67002,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -62892,7 +67012,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -62918,7 +67038,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -62955,8 +67075,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -62982,7 +67102,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -62995,6 +67114,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -63008,14 +67128,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -63035,15 +67151,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -63118,15 +67234,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -63207,15 +67323,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -63261,17 +67377,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -63292,8 +67408,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -63314,10 +67430,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion href: https://openapi-generator.tech type: type @@ -63365,8 +67481,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -63376,8 +67492,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -63399,8 +67515,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -63408,8 +67524,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -63441,7 +67557,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -63451,7 +67567,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -63477,7 +67593,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -63514,8 +67630,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -63541,7 +67657,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -63554,6 +67669,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -63567,14 +67683,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -63594,15 +67706,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -63677,15 +67789,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -63766,15 +67878,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -63820,17 +67932,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -63851,8 +67963,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -63873,10 +67985,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: href: @@ -63901,6 +68013,25 @@ components: - uuid title: fabricConnectionResponse type: object + precisionTimePrice: + description: Precision Time Price + example: + charges: + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + - price: 0.08008281904610115 + type: MONTHLY_RECURRING + currency: currency + properties: + currency: + description: offering price currency + type: string + charges: + items: + $ref: '#/components/schemas/PriceCharge' + type: array + title: precisionTimePrice + type: object connectionLink: example: href: https://api.equinix.com/fabric/v4/timeServices/92dc376a-a932-43aa-a6a2-c806dedbd784/connections @@ -64003,8 +68134,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -64014,8 +68145,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -64037,8 +68168,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -64046,8 +68177,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -64079,7 +68210,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -64089,7 +68220,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -64115,7 +68246,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -64152,8 +68283,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -64179,7 +68310,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -64192,6 +68322,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -64205,14 +68336,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -64232,15 +68359,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -64315,15 +68442,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -64404,15 +68531,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -64458,17 +68585,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -64489,8 +68616,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -64511,10 +68638,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: type: @@ -64710,6 +68837,7 @@ components: - IP_BLOCK_PRODUCT - VIRTUAL_PORT_PRODUCT - CLOUD_ROUTER_PRODUCT + - PRECISION_TIME_PRODUCT type: string PriceCharge: description: Price Charge @@ -64746,6 +68874,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 type: null @@ -64759,6 +68888,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null @@ -64785,6 +68915,7 @@ components: prefixLength: 5 location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: @@ -64806,6 +68937,7 @@ components: code: null location: metroCode: metroCode + ibx: ibx uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: uuid: @@ -64866,19 +68998,44 @@ components: settings: $ref: '#/components/schemas/VirtualPortConfiguration' type: object + TimeServicePrice: + description: Time Service Product configuration + example: + package: + code: NTP_STANDARD + connection: + aSide: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + type: NTP + properties: + type: + description: Precision Time Service Type refers to the corresponding Protocol. + enum: + - NTP + - PTP + type: string + package: + $ref: '#/components/schemas/precisionTimePackageRequest' + connection: + $ref: '#/components/schemas/TimeServicePriceConnection' + type: object ServiceTokenSide: description: "Connection link protocol,virtual device or network configuration" example: accessPointSelectors: - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -64898,31 +69055,32 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech type: EVPLAN uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - - port: - cvpId: 9 - bandwidth: 3.616076749251911 + - hideAssetInfo: true + port: + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -64942,17 +69100,17 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -65113,7 +69271,7 @@ components: keyNumber: description: The authentication Key ID. example: 10 - maximum: 65534 + maximum: 65535 minimum: 1 type: integer key: @@ -65169,8 +69327,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -65180,8 +69338,8 @@ components: - sellerRegionDescription: sellerRegionDescription location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: XF_PORT @@ -65203,8 +69361,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -65212,8 +69370,8 @@ components: - interfaceUuid: 94662143-e21b-4098-bfcf-e9416f47eae1 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 type: VD @@ -65245,7 +69403,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -65255,7 +69413,7 @@ components: ibxs: - ibxs - ibxs - vcBandwidthMax: 3 + vcBandwidthMax: 6 displayName: displayName name: name inTrail: true @@ -65281,7 +69439,7 @@ components: type: null interface: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -65318,8 +69476,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -65345,7 +69503,6 @@ components: href: https://openapi-generator.tech uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 router: - bgpIpv4RoutesCount: 0 equinixAsn: 30000 change: data: @@ -65358,6 +69515,7 @@ components: uuid: uuid status: COMPLETED updatedDateTime: 2020-11-06T07:00:00Z + name: test-fg-1 changeLog: createdByEmail: john.smith@example.com deletedByFullName: John Smith @@ -65371,14 +69529,10 @@ components: deletedBy: johnsmith deletedByEmail: john.smith@example.com updatedDateTime: 2020-11-06T07:00:00Z - bgpIpv6RoutesCount: 0 - uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 - connectionsCount: 0 - distinctIpv4PrefixesCount: 0 - name: test-fg-1 - distinctIpv6PrefixesCount: 0 href: https://api.equinix.com/fabric/v4/routers/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 state: null + uuid: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + connectionsCount: 0 marketplaceSubscription: href: https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5 type: AWS_MARKETPLACE_SUBSCRIPTION @@ -65398,15 +69552,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -65481,15 +69635,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -65570,15 +69724,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -65624,17 +69778,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -65655,8 +69809,8 @@ components: orgId: 6 location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 vpic_interface: @@ -65677,10 +69831,10 @@ components: orgId: 6 peeringType: null linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 sellerRegion: sellerRegion properties: accessPoint: @@ -65718,15 +69872,15 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 physicalPortsSpeed: 0 connectionsCount: 0 - physicalPortQuantity: 8 + physicalPortQuantity: 9 usedBandwidth: 0 additionalInfo: - value: value key: key - value: value key: key - id: 1 href: https://openapi-generator.tech + id: 1 state: null redundancy: priority: null @@ -65801,15 +69955,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -65890,15 +70044,15 @@ components: - value: value key: key href: https://openapi-generator.tech - id: 9 + id: 6 state: null operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 account: resellerOrgId: 5 organizationName: organizationName @@ -65944,17 +70098,17 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 operation: operationalStatus: UP - evplVCCount: 1 - connectionCount: 7 + evplVCCount: 4 + connectionCount: 1 opStatusChangedAt: 2020-11-06T07:00:00Z - accessVCCount: 5 - fgVCCount: 4 + accessVCCount: 9 + fgVCCount: 5 device: name: name redundancy: @@ -65974,17 +70128,17 @@ components: globalCustId: globalCustId orgId: 6 properties: - type: - $ref: '#/components/schemas/PortType' - id: - description: Equinix assigned response attribute for Port Id - type: integer href: description: Equinix assigned response attribute for an absolute URL that is the subject of the link's context. format: uri readOnly: true type: string + type: + $ref: '#/components/schemas/PortType' + id: + description: Equinix assigned response attribute for Port Id + type: integer uuid: description: Equinix assigned response attribute for port identifier format: uuid @@ -66073,10 +70227,10 @@ components: SimplifiedLinkProtocol: description: Connection link protocol Configuration example: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 properties: type: $ref: '#/components/schemas/LinkProtocolType' @@ -66141,7 +70295,7 @@ components: description: Interface Information example: href: https://openapi-generator.tech - id: 5 + id: 2 type: CLOUD uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 projectId: projectId @@ -66203,8 +70357,8 @@ components: contentType: contentType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -66339,6 +70493,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: @@ -66355,6 +70510,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null @@ -66373,9 +70529,12 @@ components: PriceLocation: example: metroCode: metroCode + ibx: ibx properties: metroCode: type: string + ibx: + type: string type: object FabricCloudRouterPackages: description: Cloud Router package @@ -66453,19 +70612,32 @@ components: \ Standard ports do not. The default is false." type: boolean type: object + TimeServicePriceConnection: + description: Time Service Price Connection configuration + example: + aSide: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + properties: + aSide: + $ref: '#/components/schemas/TimeServicePriceConnectionASide' + type: object AccessPointSelector: description: "List of criteria for selecting network access points with optimal\ \ efficiency, security, compatibility, and availability." example: + hideAssetInfo: true port: - cvpId: 9 - bandwidth: 3.616076749251911 + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -66485,17 +70657,17 @@ components: type: NETWORK uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkProtocol: - vlanTag: 831 - vlanCTag: 3022 + vlanTag: 1697 + vlanCTag: 505 type: null - vlanSTag: 1697 + vlanSTag: 3022 network: scope: LOCAL name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -66509,6 +70681,9 @@ components: - VD - NETWORK type: string + hideAssetInfo: + deprecated: true + type: boolean port: $ref: '#/components/schemas/SimplifiedMetadataEntity' linkProtocol: @@ -66565,17 +70740,28 @@ components: - BMMR - REMOTE type: string + TimeServicePriceConnectionASide: + description: Time Service Price Connection ASide configuration + example: + accessPoint: + location: + metroCode: metroCode + ibx: ibx + properties: + accessPoint: + $ref: '#/components/schemas/TimeServicePriceConnectionAccessPoint' + type: object SimplifiedMetadataEntity: description: Configuration details for port used at the access point. example: - cvpId: 9 - bandwidth: 3.616076749251911 + cvpId: 3 + bandwidth: 2.027123023002322 accountName: accountName encapsulationProtocolType: encapsulationProtocolType location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -66670,8 +70856,8 @@ components: name: name location: metroName: Amsterdam - metroCode: AM metroHref: https://api.equinix.com/fabric/v4/metros/AM + metroCode: AM region: "AMER, APAC, EMEA" ibx: AM1 href: https://openapi-generator.tech @@ -66706,6 +70892,16 @@ components: location: $ref: '#/components/schemas/SimplifiedLocation' type: object + TimeServicePriceConnectionAccessPoint: + description: Time Service Price Connection Access Point configuration + example: + location: + metroCode: metroCode + ibx: ibx + properties: + location: + $ref: '#/components/schemas/PriceLocation' + type: object PriceError_additionalInfo: example: reason: reason @@ -66752,6 +70948,41 @@ components: $ref: '#/components/schemas/RouteFiltersSearchFilterItem' type: array type: object + RouteAggregationsData_project: + example: + href: https://openapi-generator.tech + projectId: 44f4c4f8-2f39-494e-838c-d8e640591be5 + properties: + projectId: + description: Subscriber-assigned project ID + example: 44f4c4f8-2f39-494e-838c-d8e640591be5 + type: string + href: + description: Project URI + format: uri + type: string + required: + - projectId + type: object + RouteAggregationsSearchBase_filter: + example: + and: + - values: + - values + - values + property: /type + operator: operator + - values: + - values + - values + property: /type + operator: operator + properties: + and: + items: + $ref: '#/components/schemas/RouteAggregationsSearchFilterItem' + type: array + type: object ValidateRequest_filter_and: example: values: @@ -66904,6 +71135,7 @@ components: buyout: false location: metroCode: metroCode + ibx: ibx type: null uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: @@ -66949,6 +71181,7 @@ components: uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 location: metroCode: metroCode + ibx: ibx bridge: package: code: null diff --git a/equinix-openapi-fabric/docs/AccessPointSelector.md b/equinix-openapi-fabric/docs/AccessPointSelector.md index 5c506dc..7021c62 100644 --- a/equinix-openapi-fabric/docs/AccessPointSelector.md +++ b/equinix-openapi-fabric/docs/AccessPointSelector.md @@ -9,6 +9,7 @@ List of criteria for selecting network access points with optimal efficiency, se | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**type** | [**TypeEnum**](#TypeEnum) | Type of Access point | [optional] | +|**hideAssetInfo** | **Boolean** | | [optional] | |**port** | [**SimplifiedMetadataEntity**](SimplifiedMetadataEntity.md) | | [optional] | |**linkProtocol** | [**SimplifiedLinkProtocol**](SimplifiedLinkProtocol.md) | | [optional] | |**virtualDevice** | [**SimplifiedVirtualDevice**](SimplifiedVirtualDevice.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/Asset.md b/equinix-openapi-fabric/docs/Asset.md index d50a647..19c816d 100644 --- a/equinix-openapi-fabric/docs/Asset.md +++ b/equinix-openapi-fabric/docs/Asset.md @@ -13,5 +13,9 @@ * `METROS` (value: `"metros"`) +* `ORGANIZATIONS` (value: `"organizations"`) + +* `PROJECTS` (value: `"projects"`) + diff --git a/equinix-openapi-fabric/docs/CloudRouter.md b/equinix-openapi-fabric/docs/CloudRouter.md index dbe10d6..25a947e 100644 --- a/equinix-openapi-fabric/docs/CloudRouter.md +++ b/equinix-openapi-fabric/docs/CloudRouter.md @@ -13,11 +13,7 @@ Fabric Cloud Router object |**name** | **String** | Customer-provided Cloud Router name | [optional] | |**state** | **CloudRouterAccessPointState** | | [optional] | |**equinixAsn** | **Long** | Equinix ASN | [optional] | -|**bgpIpv4RoutesCount** | **Integer** | Access point used and maximum number of IPv4 BGP routes | [optional] | -|**bgpIpv6RoutesCount** | **Integer** | Access point used and maximum number of IPv6 BGP routes | [optional] | |**connectionsCount** | **Integer** | Number of connections associated with this Access point | [optional] | -|**distinctIpv4PrefixesCount** | **Integer** | Number of distinct ipv4 routes | [optional] | -|**distinctIpv6PrefixesCount** | **Integer** | Number of distinct ipv6 routes | [optional] | |**marketplaceSubscription** | [**MarketplaceSubscription**](MarketplaceSubscription.md) | | [optional] | |**changeLog** | [**Changelog**](Changelog.md) | | [optional] | |**change** | [**CloudRouterChange**](CloudRouterChange.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/CloudRouterActionRequest.md b/equinix-openapi-fabric/docs/CloudRouterActionRequest.md index 14f4c2e..a92f401 100644 --- a/equinix-openapi-fabric/docs/CloudRouterActionRequest.md +++ b/equinix-openapi-fabric/docs/CloudRouterActionRequest.md @@ -2,7 +2,7 @@ # CloudRouterActionRequest -Cloud Router action request +Cloud router action request ## Properties diff --git a/equinix-openapi-fabric/docs/CloudRouterActionResponse.md b/equinix-openapi-fabric/docs/CloudRouterActionResponse.md index 038afde..9ab314b 100644 --- a/equinix-openapi-fabric/docs/CloudRouterActionResponse.md +++ b/equinix-openapi-fabric/docs/CloudRouterActionResponse.md @@ -2,7 +2,7 @@ # CloudRouterActionResponse -Cloud Router actions response object +Cloud router actions response object ## Properties diff --git a/equinix-openapi-fabric/docs/CloudRouterPackage.md b/equinix-openapi-fabric/docs/CloudRouterPackage.md index cd8c06e..7c07ba5 100644 --- a/equinix-openapi-fabric/docs/CloudRouterPackage.md +++ b/equinix-openapi-fabric/docs/CloudRouterPackage.md @@ -14,13 +14,7 @@ Fabric Cloud Router Package |**description** | **String** | Fabric Cloud Router Package description | [optional] | |**totalIPv4RoutesMax** | **Integer** | Cloud Router package BGP IPv4 routes limit | [optional] | |**totalIPv6RoutesMax** | **Integer** | Cloud Router package BGP IPv6 routes limit | [optional] | -|**staticIPv4RoutesMax** | **Integer** | CloudRouter package static IPv4 routes limit | [optional] | -|**staticIPv6RoutesMax** | **Integer** | CloudRouter package static IPv6 routes limit | [optional] | -|**naclsMax** | **Integer** | CloudRouter package NACLs limit | [optional] | -|**naclRulesMax** | **Integer** | CloudRouter package NACLs rules limit | [optional] | -|**haSupported** | **Boolean** | CloudRouter package high-available configuration support | [optional] | |**routeFilterSupported** | **Boolean** | CloudRouter package route filter support | [optional] | -|**natType** | [**NatTypeEnum**](#NatTypeEnum) | CloudRouter package NAT supported type | [optional] | |**vcCountMax** | **Integer** | CloudRouter package Max Connection limit | [optional] | |**crCountMax** | **Integer** | CloudRouter package Max CloudRouter limit | [optional] | |**vcBandwidthMax** | **Integer** | CloudRouter package Max Bandwidth limit | [optional] | @@ -36,11 +30,3 @@ Fabric Cloud Router Package -## Enum: NatTypeEnum - -| Name | Value | -|---- | -----| -| STATIC_NAT | "STATIC_NAT" | - - - diff --git a/equinix-openapi-fabric/docs/CloudRoutersApi.md b/equinix-openapi-fabric/docs/CloudRoutersApi.md index e6de82f..ec86061 100644 --- a/equinix-openapi-fabric/docs/CloudRoutersApi.md +++ b/equinix-openapi-fabric/docs/CloudRoutersApi.md @@ -5,24 +5,24 @@ All URIs are relative to *https://api.equinix.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createCloudRouter**](CloudRoutersApi.md#createCloudRouter) | **POST** /fabric/v4/routers | Create Routers | -| [**createCloudRouterAction**](CloudRoutersApi.md#createCloudRouterAction) | **POST** /fabric/v4/routers/{routerId}/actions | Route table actions | +| [**createCloudRouterAction**](CloudRoutersApi.md#createCloudRouterAction) | **POST** /fabric/v4/routers/{routerId}/actions | Create Route Table Action | | [**deleteCloudRouterByUuid**](CloudRoutersApi.md#deleteCloudRouterByUuid) | **DELETE** /fabric/v4/routers/{routerId} | Delete Routers | -| [**getCloudRouterActions**](CloudRoutersApi.md#getCloudRouterActions) | **GET** /fabric/v4/routers/{routerId}/actions | Get actions | -| [**getCloudRouterActionsByUuid**](CloudRoutersApi.md#getCloudRouterActionsByUuid) | **GET** /fabric/v4/routers/{routerId}/actions/{actionId} | Get actions | +| [**getCloudRouterActions**](CloudRoutersApi.md#getCloudRouterActions) | **GET** /fabric/v4/routers/{routerId}/actions | Get Route Table Actions | +| [**getCloudRouterActionsByUuid**](CloudRoutersApi.md#getCloudRouterActionsByUuid) | **GET** /fabric/v4/routers/{routerId}/actions/{actionId} | Get Route Table Action by ID | | [**getCloudRouterByUuid**](CloudRoutersApi.md#getCloudRouterByUuid) | **GET** /fabric/v4/routers/{routerId} | Get Routers | | [**getCloudRouterPackageByCode**](CloudRoutersApi.md#getCloudRouterPackageByCode) | **GET** /fabric/v4/routerPackages/{routerPackageCode} | Get Package Details | | [**getCloudRouterPackages**](CloudRoutersApi.md#getCloudRouterPackages) | **GET** /fabric/v4/routerPackages | List Packages | | [**searchCloudRouterRoutes**](CloudRoutersApi.md#searchCloudRouterRoutes) | **POST** /fabric/v4/routers/{routerId}/routes/search | Search Route Table | | [**searchCloudRouters**](CloudRoutersApi.md#searchCloudRouters) | **POST** /fabric/v4/routers/search | Search Routers | -| [**searchConnectionAdvertisedRoutes**](CloudRoutersApi.md#searchConnectionAdvertisedRoutes) | **POST** /fabric/v4/connections/{connectionId}/advertisedRoutes/search | search advertised | -| [**searchConnectionReceivedRoutes**](CloudRoutersApi.md#searchConnectionReceivedRoutes) | **POST** /fabric/v4/connections/{connectionId}/receivedRoutes/search | Search received | -| [**searchRouterActions**](CloudRoutersApi.md#searchRouterActions) | **POST** /fabric/v4/routers/{routerId}/actions/search | Search actions | +| [**searchConnectionAdvertisedRoutes**](CloudRoutersApi.md#searchConnectionAdvertisedRoutes) | **POST** /fabric/v4/connections/{connectionId}/advertisedRoutes/search | Search Advertised Routes | +| [**searchConnectionReceivedRoutes**](CloudRoutersApi.md#searchConnectionReceivedRoutes) | **POST** /fabric/v4/connections/{connectionId}/receivedRoutes/search | Search Received Routes | +| [**searchRouterActions**](CloudRoutersApi.md#searchRouterActions) | **POST** /fabric/v4/routers/{routerId}/actions/search | Search Route Table Actions | | [**updateCloudRouterByUuid**](CloudRoutersApi.md#updateCloudRouterByUuid) | **PATCH** /fabric/v4/routers/{routerId} | Update Routers | # **createCloudRouter** -> CloudRouter createCloudRouter(cloudRouterPostRequest) +> CloudRouter createCloudRouter(cloudRouterPostRequest, dryRun) Create Routers @@ -49,8 +49,9 @@ public class Example { CloudRoutersApi apiInstance = new CloudRoutersApi(defaultClient); CloudRouterPostRequest cloudRouterPostRequest = new CloudRouterPostRequest(); // CloudRouterPostRequest | + Boolean dryRun = false; // Boolean | option to verify that API calls will succeed try { - CloudRouter result = apiInstance.createCloudRouter(cloudRouterPostRequest); + CloudRouter result = apiInstance.createCloudRouter(cloudRouterPostRequest, dryRun); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CloudRoutersApi#createCloudRouter"); @@ -68,6 +69,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **cloudRouterPostRequest** | [**CloudRouterPostRequest**](CloudRouterPostRequest.md)| | | +| **dryRun** | **Boolean**| option to verify that API calls will succeed | [optional] [default to false] | ### Return type @@ -96,7 +98,7 @@ public class Example { # **createCloudRouterAction** > CloudRouterActionResponse createCloudRouterAction(routerId, cloudRouterActionRequest) -Route table actions +Create Route Table Action This API provides capability to refresh route table and bgp session summary information @@ -242,7 +244,7 @@ null (empty response body) # **getCloudRouterActions** > CloudRouterActionResponse getCloudRouterActions(routerId, state) -Get actions +Get Route Table Actions This API provides capability to fetch action status @@ -317,7 +319,7 @@ public class Example { # **getCloudRouterActionsByUuid** > CloudRouterActionResponse getCloudRouterActionsByUuid(routerId, actionId, state) -Get actions +Get Route Table Action by ID This API provides capability to fetch action status @@ -757,7 +759,7 @@ public class Example { # **searchConnectionAdvertisedRoutes** > ConnectionRouteTableEntrySearchResponse searchConnectionAdvertisedRoutes(connectionId, connectionRouteSearchRequest) -search advertised +Search Advertised Routes The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting @@ -830,7 +832,7 @@ public class Example { # **searchConnectionReceivedRoutes** > ConnectionRouteTableEntrySearchResponse searchConnectionReceivedRoutes(connectionId, connectionRouteSearchRequest) -Search received +Search Received Routes The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting @@ -903,7 +905,7 @@ public class Example { # **searchRouterActions** > CloudRouterActionsSearchResponse searchRouterActions(routerId, cloudRouterActionsSearchRequest) -Search actions +Search Route Table Actions This API provides capability to refresh route table and bgp session summary information diff --git a/equinix-openapi-fabric/docs/ConnectionPostRequest.md b/equinix-openapi-fabric/docs/ConnectionPostRequest.md index 82b1558..7ccd672 100644 --- a/equinix-openapi-fabric/docs/ConnectionPostRequest.md +++ b/equinix-openapi-fabric/docs/ConnectionPostRequest.md @@ -20,6 +20,7 @@ Create connection post request |**project** | [**Project**](Project.md) | | [optional] | |**additionalInfo** | [**List<ConnectionSideAdditionalInfo>**](ConnectionSideAdditionalInfo.md) | Connection additional information | [optional] | |**marketplaceSubscription** | [**MarketplaceSubscription**](MarketplaceSubscription.md) | | [optional] | +|**endCustomer** | [**EndCustomer**](EndCustomer.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/ConnectionRouteAggregationData.md b/equinix-openapi-fabric/docs/ConnectionRouteAggregationData.md new file mode 100644 index 0000000..424a038 --- /dev/null +++ b/equinix-openapi-fabric/docs/ConnectionRouteAggregationData.md @@ -0,0 +1,37 @@ + + +# ConnectionRouteAggregationData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Aggregation URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Aggregation type | [optional] | +|**uuid** | **UUID** | Route Aggregation identifier | [optional] | +|**attachmentStatus** | [**AttachmentStatusEnum**](#AttachmentStatusEnum) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| BGP_IPV4_PREFIX_AGGREGATION | "BGP_IPv4_PREFIX_AGGREGATION" | + + + +## Enum: AttachmentStatusEnum + +| Name | Value | +|---- | -----| +| ATTACHING | "ATTACHING" | +| ATTACHED | "ATTACHED" | +| DETACHED | "DETACHED" | +| DETACHING | "DETACHING" | +| FAILED | "FAILED" | +| PENDING_BGP_CONFIGURATION | "PENDING_BGP_CONFIGURATION" | + + + diff --git a/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md b/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md index 44c485f..9c05de8 100644 --- a/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md +++ b/equinix-openapi-fabric/docs/ConnectionRouteFilterData.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**href** | **URI** | Route Filter URI | [optional] | -|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | +|**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] | diff --git a/equinix-openapi-fabric/docs/ConnectionRouteTableEntry.md b/equinix-openapi-fabric/docs/ConnectionRouteTableEntry.md index 7cd8ffb..747c9b8 100644 --- a/equinix-openapi-fabric/docs/ConnectionRouteTableEntry.md +++ b/equinix-openapi-fabric/docs/ConnectionRouteTableEntry.md @@ -2,7 +2,7 @@ # ConnectionRouteTableEntry -Adv/Rec Route table entry object +Advertised and received route table entry object ## Properties diff --git a/equinix-openapi-fabric/docs/ConnectionsApi.md b/equinix-openapi-fabric/docs/ConnectionsApi.md index 9158552..d975572 100644 --- a/equinix-openapi-fabric/docs/ConnectionsApi.md +++ b/equinix-openapi-fabric/docs/ConnectionsApi.md @@ -15,7 +15,7 @@ All URIs are relative to *https://api.equinix.com* # **createConnection** -> Connection createConnection(connectionPostRequest) +> Connection createConnection(connectionPostRequest, dryRun) Create Connection @@ -42,8 +42,9 @@ public class Example { ConnectionsApi apiInstance = new ConnectionsApi(defaultClient); ConnectionPostRequest connectionPostRequest = new ConnectionPostRequest(); // ConnectionPostRequest | + Boolean dryRun = false; // Boolean | option to verify that API calls will succeed try { - Connection result = apiInstance.createConnection(connectionPostRequest); + Connection result = apiInstance.createConnection(connectionPostRequest, dryRun); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ConnectionsApi#createConnection"); @@ -61,6 +62,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **connectionPostRequest** | [**ConnectionPostRequest**](ConnectionPostRequest.md)| | | +| **dryRun** | **Boolean**| option to verify that API calls will succeed | [optional] [default to false] | ### Return type @@ -78,6 +80,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| +| **200** | Successful operation | - | | **201** | Accept Connection Request | - | | **400** | Bad request | - | | **403** | Forbidden | - | diff --git a/equinix-openapi-fabric/docs/EndCustomer.md b/equinix-openapi-fabric/docs/EndCustomer.md new file mode 100644 index 0000000..9a4f418 --- /dev/null +++ b/equinix-openapi-fabric/docs/EndCustomer.md @@ -0,0 +1,15 @@ + + +# EndCustomer + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**isDisclosed** | **Boolean** | Indicate if endCustomer info should be disclosed or not | [optional] | +|**name** | **String** | | [optional] | +|**mdmId** | **String** | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/GeoScopeType.md b/equinix-openapi-fabric/docs/GeoScopeType.md index 3a1c7eb..94f5c6c 100644 --- a/equinix-openapi-fabric/docs/GeoScopeType.md +++ b/equinix-openapi-fabric/docs/GeoScopeType.md @@ -9,5 +9,7 @@ * `CONUS` (value: `"CONUS"`) +* `JAPAN` (value: `"JAPAN"`) + diff --git a/equinix-openapi-fabric/docs/GetAllConnectionRouteAggregationsResponse.md b/equinix-openapi-fabric/docs/GetAllConnectionRouteAggregationsResponse.md new file mode 100644 index 0000000..1990eae --- /dev/null +++ b/equinix-openapi-fabric/docs/GetAllConnectionRouteAggregationsResponse.md @@ -0,0 +1,14 @@ + + +# GetAllConnectionRouteAggregationsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<ConnectionRouteAggregationData>**](ConnectionRouteAggregationData.md) | List of Route Aggregations attached to a Connection | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/GetRouteAggregationGetConnectionsResponse.md b/equinix-openapi-fabric/docs/GetRouteAggregationGetConnectionsResponse.md new file mode 100644 index 0000000..d4c00f7 --- /dev/null +++ b/equinix-openapi-fabric/docs/GetRouteAggregationGetConnectionsResponse.md @@ -0,0 +1,14 @@ + + +# GetRouteAggregationGetConnectionsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationConnectionsData>**](RouteAggregationConnectionsData.md) | List of Connections using a Route Aggregation | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/GetRouteAggregationRulesResponse.md b/equinix-openapi-fabric/docs/GetRouteAggregationRulesResponse.md new file mode 100644 index 0000000..20bbe99 --- /dev/null +++ b/equinix-openapi-fabric/docs/GetRouteAggregationRulesResponse.md @@ -0,0 +1,14 @@ + + +# GetRouteAggregationRulesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationRulesData>**](RouteAggregationRulesData.md) | List of Route Aggregation Rules | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/MarketplaceSubscription.md b/equinix-openapi-fabric/docs/MarketplaceSubscription.md index 7c575ad..e5af9e5 100644 --- a/equinix-openapi-fabric/docs/MarketplaceSubscription.md +++ b/equinix-openapi-fabric/docs/MarketplaceSubscription.md @@ -19,6 +19,8 @@ Equinix Fabric Entity for Marketplace Subscription | Name | Value | |---- | -----| | AWS_MARKETPLACE_SUBSCRIPTION | "AWS_MARKETPLACE_SUBSCRIPTION" | +| GCP_MARKETPLACE_SUBSCRIPTION | "GCP_MARKETPLACE_SUBSCRIPTION" | +| AZURE_MARKETPLACE_SUBSCRIPTION | "AZURE_MARKETPLACE_SUBSCRIPTION" | diff --git a/equinix-openapi-fabric/docs/MetrosApi.md b/equinix-openapi-fabric/docs/MetrosApi.md index 4601553..62655ad 100644 --- a/equinix-openapi-fabric/docs/MetrosApi.md +++ b/equinix-openapi-fabric/docs/MetrosApi.md @@ -14,7 +14,7 @@ All URIs are relative to *https://api.equinix.com* Get Metro by Code -GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. . +GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. ### Example ```java diff --git a/equinix-openapi-fabric/docs/NetworksApi.md b/equinix-openapi-fabric/docs/NetworksApi.md index 4ee4d8c..8115b4e 100644 --- a/equinix-openapi-fabric/docs/NetworksApi.md +++ b/equinix-openapi-fabric/docs/NetworksApi.md @@ -16,7 +16,7 @@ All URIs are relative to *https://api.equinix.com* # **createNetwork** -> Network createNetwork(networkPostRequest) +> Network createNetwork(networkPostRequest, dryRun) Create Network @@ -43,8 +43,9 @@ public class Example { NetworksApi apiInstance = new NetworksApi(defaultClient); NetworkPostRequest networkPostRequest = new NetworkPostRequest(); // NetworkPostRequest | + Boolean dryRun = false; // Boolean | option to verify that API calls will succeed try { - Network result = apiInstance.createNetwork(networkPostRequest); + Network result = apiInstance.createNetwork(networkPostRequest, dryRun); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling NetworksApi#createNetwork"); @@ -62,6 +63,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **networkPostRequest** | [**NetworkPostRequest**](NetworkPostRequest.md)| | | +| **dryRun** | **Boolean**| option to verify that API calls will succeed | [optional] [default to false] | ### Return type @@ -79,6 +81,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| +| **200** | Successful operation | - | | **202** | Fabric Network Access point object | - | | **400** | Bad request | - | | **401** | Unauthorized | - | diff --git a/equinix-openapi-fabric/docs/Operation.md b/equinix-openapi-fabric/docs/Operation.md index 07c17cb..a776cdf 100644 --- a/equinix-openapi-fabric/docs/Operation.md +++ b/equinix-openapi-fabric/docs/Operation.md @@ -8,8 +8,8 @@ Operation object for router actions | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**bgpIpv4RoutesCount** | **Integer** | IPV4 Route Count | [optional] | -|**bgpIpv6RoutesCount** | **Integer** | IPV6 Route Count | [optional] | +|**bgpIpv4RoutesCount** | **Integer** | IPV4 route count | [optional] | +|**bgpIpv6RoutesCount** | **Integer** | IPV6 route count | [optional] | diff --git a/equinix-openapi-fabric/docs/Port.md b/equinix-openapi-fabric/docs/Port.md index d4fb5b6..155c368 100644 --- a/equinix-openapi-fabric/docs/Port.md +++ b/equinix-openapi-fabric/docs/Port.md @@ -46,6 +46,7 @@ Port specification |**physicalPortQuantity** | **Integer** | Number of physical ports | [optional] | |**notifications** | [**List<PortNotification>**](PortNotification.md) | Notification preferences | [optional] | |**additionalInfo** | [**List<PortAdditionalInfo>**](PortAdditionalInfo.md) | Port additional information | [optional] | +|**endCustomer** | [**EndCustomer**](EndCustomer.md) | | [optional] | |**physicalPorts** | [**List<PhysicalPort>**](PhysicalPort.md) | Physical ports that implement this port | [optional] | |**loas** | [**List<PortLoa>**](PortLoa.md) | Port Loas | [optional] | diff --git a/equinix-openapi-fabric/docs/PortRequest.md b/equinix-openapi-fabric/docs/PortRequest.md index 0101c0d..1a75dd4 100644 --- a/equinix-openapi-fabric/docs/PortRequest.md +++ b/equinix-openapi-fabric/docs/PortRequest.md @@ -46,6 +46,7 @@ PortRequest is the Request Object for creating single and bulk fabric ports |**physicalPortQuantity** | **Integer** | Number of physical ports | [optional] | |**notifications** | [**List<PortNotification>**](PortNotification.md) | Notification preferences | [optional] | |**additionalInfo** | [**List<PortAdditionalInfo>**](PortAdditionalInfo.md) | Port additional information | [optional] | +|**endCustomer** | [**EndCustomer**](EndCustomer.md) | | [optional] | |**physicalPorts** | [**List<PhysicalPort>**](PhysicalPort.md) | Physical ports that implement this port | [optional] | |**loas** | [**List<PortLoa>**](PortLoa.md) | Port Loas | [optional] | diff --git a/equinix-openapi-fabric/docs/PrecisionTimePrice.md b/equinix-openapi-fabric/docs/PrecisionTimePrice.md new file mode 100644 index 0000000..d772bb1 --- /dev/null +++ b/equinix-openapi-fabric/docs/PrecisionTimePrice.md @@ -0,0 +1,15 @@ + + +# PrecisionTimePrice + +Precision Time Price + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**currency** | **String** | offering price currency | [optional] | +|**charges** | [**List<PriceCharge>**](PriceCharge.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/PrecisionTimeServiceResponse.md b/equinix-openapi-fabric/docs/PrecisionTimeServiceResponse.md index 7549d2e..426a6b0 100644 --- a/equinix-openapi-fabric/docs/PrecisionTimeServiceResponse.md +++ b/equinix-openapi-fabric/docs/PrecisionTimeServiceResponse.md @@ -21,6 +21,7 @@ Precision Time Service Response Schema. |**project** | [**Project**](Project.md) | | [optional] | |**account** | [**SimplifiedAccount**](SimplifiedAccount.md) | | [optional] | |**order** | [**PrecisionTimeOrder**](PrecisionTimeOrder.md) | | [optional] | +|**pricing** | [**PrecisionTimePrice**](PrecisionTimePrice.md) | | [optional] | |**changeLog** | [**Changelog**](Changelog.md) | | [optional] | @@ -39,6 +40,7 @@ Precision Time Service Response Schema. | Name | Value | |---- | -----| | CANCELLED | "CANCELLED" | +| CANCELLING | "CANCELLING" | | CONFIGURING | "CONFIGURING" | | CONFIGURING_FAILED | "CONFIGURING_FAILED" | | DRAFT | "DRAFT" | diff --git a/equinix-openapi-fabric/docs/Price.md b/equinix-openapi-fabric/docs/Price.md index d8fcbba..3734ff4 100644 --- a/equinix-openapi-fabric/docs/Price.md +++ b/equinix-openapi-fabric/docs/Price.md @@ -21,6 +21,7 @@ |**ipBlock** | [**IpBlockPrice**](IpBlockPrice.md) | | [optional] | |**router** | [**FabricCloudRouterPrice**](FabricCloudRouterPrice.md) | | [optional] | |**port** | [**VirtualPortPrice**](VirtualPortPrice.md) | | [optional] | +|**timeService** | [**TimeServicePrice**](TimeServicePrice.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/PriceLocation.md b/equinix-openapi-fabric/docs/PriceLocation.md index 09ceb3c..0767c2a 100644 --- a/equinix-openapi-fabric/docs/PriceLocation.md +++ b/equinix-openapi-fabric/docs/PriceLocation.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**metroCode** | **String** | | [optional] | +|**ibx** | **String** | | [optional] | diff --git a/equinix-openapi-fabric/docs/ProductType.md b/equinix-openapi-fabric/docs/ProductType.md index ee21af9..af47bec 100644 --- a/equinix-openapi-fabric/docs/ProductType.md +++ b/equinix-openapi-fabric/docs/ProductType.md @@ -13,5 +13,7 @@ * `CLOUD_ROUTER_PRODUCT` (value: `"CLOUD_ROUTER_PRODUCT"`) +* `PRECISION_TIME_PRODUCT` (value: `"PRECISION_TIME_PRODUCT"`) + diff --git a/equinix-openapi-fabric/docs/RouteAggregationChangeData.md b/equinix-openapi-fabric/docs/RouteAggregationChangeData.md new file mode 100644 index 0000000..68fea21 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationChangeData.md @@ -0,0 +1,46 @@ + + +# RouteAggregationChangeData + +Current state of latest Route Aggregation 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** | [**RouteAggregationsChangeOperation**](RouteAggregationsChangeOperation.md) | | [optional] | +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route AGGREGATION Change URI | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| REQUESTED | "REQUESTED" | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_AGGREGATION_UPDATE | "BGP_IPv4_PREFIX_AGGREGATION_UPDATE" | +| IPV4_PREFIX_AGGREGATION_CREATION | "BGP_IPv4_PREFIX_AGGREGATION_CREATION" | +| IPV4_PREFIX_AGGREGATION_DELETION | "BGP_IPv4_PREFIX_AGGREGATION_DELETION" | +| IPV6_PREFIX_AGGREGATION_UPDATE | "BGP_IPv6_PREFIX_AGGREGATION_UPDATE" | +| IPV6_PREFIX_AGGREGATION_CREATION | "BGP_IPv6_PREFIX_AGGREGATION_CREATION" | +| IPV6_PREFIX_AGGREGATION_DELETION | "BGP_IPv6_PREFIX_AGGREGATION_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteAggregationChangeDataResponse.md new file mode 100644 index 0000000..a9937bb --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationChangeDataResponse.md @@ -0,0 +1,15 @@ + + +# RouteAggregationChangeDataResponse + +List of Route Aggregation changes + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationChangeData>**](RouteAggregationChangeData.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationConnectionsData.md b/equinix-openapi-fabric/docs/RouteAggregationConnectionsData.md new file mode 100644 index 0000000..b458b94 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationConnectionsData.md @@ -0,0 +1,16 @@ + + +# RouteAggregationConnectionsData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Connection URI | [optional] | +|**type** | **ConnectionType** | | [optional] | +|**uuid** | **UUID** | Route Aggregation identifier | [optional] | +|**name** | **String** | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRuleState.md b/equinix-openapi-fabric/docs/RouteAggregationRuleState.md new file mode 100644 index 0000000..8b6e800 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRuleState.md @@ -0,0 +1,23 @@ + + +# RouteAggregationRuleState + +## 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/RouteAggregationRulesApi.md b/equinix-openapi-fabric/docs/RouteAggregationRulesApi.md new file mode 100644 index 0000000..6363f8b --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesApi.md @@ -0,0 +1,701 @@ +# RouteAggregationRulesApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createRouteAggregationRule**](RouteAggregationRulesApi.md#createRouteAggregationRule) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | Create RARule | +| [**createRouteAggregationRulesInBulk**](RouteAggregationRulesApi.md#createRouteAggregationRulesInBulk) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk | Bulk RARules | +| [**deleteRouteAggregationRuleByUuid**](RouteAggregationRulesApi.md#deleteRouteAggregationRuleByUuid) | **DELETE** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | DeleteRARule | +| [**getRouteAggregationRuleByUuid**](RouteAggregationRulesApi.md#getRouteAggregationRuleByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | GetRARule By UUID | +| [**getRouteAggregationRuleChangeByUuid**](RouteAggregationRulesApi.md#getRouteAggregationRuleChangeByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes/{changeId} | Get Change By ID | +| [**getRouteAggregationRuleChanges**](RouteAggregationRulesApi.md#getRouteAggregationRuleChanges) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes | Get All Changes | +| [**getRouteAggregationRules**](RouteAggregationRulesApi.md#getRouteAggregationRules) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | GetRARules | +| [**patchRouteAggregationRuleByUuid**](RouteAggregationRulesApi.md#patchRouteAggregationRuleByUuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | PatchRARule | +| [**replaceRouteAggregationRuleByUuid**](RouteAggregationRulesApi.md#replaceRouteAggregationRuleByUuid) | **PUT** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | ReplaceRARule | + + + +# **createRouteAggregationRule** +> RouteAggregationRulesData createRouteAggregationRule(routeAggregationId, routeAggregationRulesBase) + +Create RARule + +This API provides capability to create a Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + RouteAggregationRulesBase routeAggregationRulesBase = new RouteAggregationRulesBase(); // RouteAggregationRulesBase | + try { + RouteAggregationRulesData result = apiInstance.createRouteAggregationRule(routeAggregationId, routeAggregationRulesBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#createRouteAggregationRule"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRulesBase** | [**RouteAggregationRulesBase**](RouteAggregationRulesBase.md)| | | + +### Return type + +[**RouteAggregationRulesData**](RouteAggregationRulesData.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 Aggregation Rule ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **createRouteAggregationRulesInBulk** +> GetRouteAggregationRulesResponse createRouteAggregationRulesInBulk(routeAggregationId, routeAggregationRulesPostRequest) + +Bulk RARules + +This API provides capability to create bulk route aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + RouteAggregationRulesPostRequest routeAggregationRulesPostRequest = new RouteAggregationRulesPostRequest(); // RouteAggregationRulesPostRequest | + try { + GetRouteAggregationRulesResponse result = apiInstance.createRouteAggregationRulesInBulk(routeAggregationId, routeAggregationRulesPostRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#createRouteAggregationRulesInBulk"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRulesPostRequest** | [**RouteAggregationRulesPostRequest**](RouteAggregationRulesPostRequest.md)| | | + +### Return type + +[**GetRouteAggregationRulesResponse**](GetRouteAggregationRulesResponse.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** | Resource not found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **deleteRouteAggregationRuleByUuid** +> RouteAggregationRulesData deleteRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId) + +DeleteRARule + +This API provides capability to delete a Route aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + try { + RouteAggregationRulesData result = apiInstance.deleteRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#deleteRouteAggregationRuleByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | + +### Return type + +[**RouteAggregationRulesData**](RouteAggregationRulesData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationRuleByUuid** +> RouteAggregationRulesData getRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId) + +GetRARule By UUID + +This API provides capability to view a Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + try { + RouteAggregationRulesData result = apiInstance.getRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#getRouteAggregationRuleByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | + +### Return type + +[**RouteAggregationRulesData**](RouteAggregationRulesData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationRuleChangeByUuid** +> RouteAggregationRulesChangeData getRouteAggregationRuleChangeByUuid(routeAggregationId, routeAggregationRuleId, changeId) + +Get Change By ID + +This API provides capability to retrieve a specific Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + UUID changeId = UUID.randomUUID(); // UUID | Route Aggregation Rule Change UUID + try { + RouteAggregationRulesChangeData result = apiInstance.getRouteAggregationRuleChangeByUuid(routeAggregationId, routeAggregationRuleId, changeId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#getRouteAggregationRuleChangeByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | +| **changeId** | **UUID**| Route Aggregation Rule Change UUID | | + +### Return type + +[**RouteAggregationRulesChangeData**](RouteAggregationRulesChangeData.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 Aggregation Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationRuleChanges** +> RouteAggregationRulesChangeDataResponse getRouteAggregationRuleChanges(routeAggregationId, routeAggregationRuleId, offset, limit) + +Get All Changes + +This API provides capability to retrieve all of a Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + RouteAggregationRulesChangeDataResponse result = apiInstance.getRouteAggregationRuleChanges(routeAggregationId, routeAggregationRuleId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#getRouteAggregationRuleChanges"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**RouteAggregationRulesChangeDataResponse**](RouteAggregationRulesChangeDataResponse.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 Aggregation Rule Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationRules** +> GetRouteAggregationRulesResponse getRouteAggregationRules(routeAggregationId, offset, limit) + +GetRARules + +This API provides capability to get all Route Aggregations 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + GetRouteAggregationRulesResponse result = apiInstance.getRouteAggregationRules(routeAggregationId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#getRouteAggregationRules"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**GetRouteAggregationRulesResponse**](GetRouteAggregationRulesResponse.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** | Resource not found | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation Rule ID Not Found | - | +| **500** | Internal server error | - | + + +# **patchRouteAggregationRuleByUuid** +> RouteAggregationRulesData patchRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem) + +PatchRARule + +This API provides capability to partially update a Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + List routeAggregationRulesPatchRequestItem = Arrays.asList(); // List | + try { + RouteAggregationRulesData result = apiInstance.patchRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#patchRouteAggregationRuleByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | +| **routeAggregationRulesPatchRequestItem** | [**List<RouteAggregationRulesPatchRequestItem>**](RouteAggregationRulesPatchRequestItem.md)| | | + +### Return type + +[**RouteAggregationRulesData**](RouteAggregationRulesData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **replaceRouteAggregationRuleByUuid** +> RouteAggregationRulesData replaceRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase) + +ReplaceRARule + +This API provides capability to replace a Route Aggregation 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.RouteAggregationRulesApi; + +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"); + + RouteAggregationRulesApi apiInstance = new RouteAggregationRulesApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String routeAggregationRuleId = "routeAggregationRuleId_example"; // String | Route Aggregation Rules Id + RouteAggregationRulesBase routeAggregationRulesBase = new RouteAggregationRulesBase(); // RouteAggregationRulesBase | + try { + RouteAggregationRulesData result = apiInstance.replaceRouteAggregationRuleByUuid(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#replaceRouteAggregationRuleByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationRuleId** | **String**| Route Aggregation Rules Id | | +| **routeAggregationRulesBase** | [**RouteAggregationRulesBase**](RouteAggregationRulesBase.md)| | | + +### Return type + +[**RouteAggregationRulesData**](RouteAggregationRulesData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesBase.md b/equinix-openapi-fabric/docs/RouteAggregationRulesBase.md new file mode 100644 index 0000000..2f1255f --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesBase.md @@ -0,0 +1,15 @@ + + +# RouteAggregationRulesBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided Route Aggregation Rule description | [optional] | +|**prefix** | **String** | | | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesChange.md b/equinix-openapi-fabric/docs/RouteAggregationRulesChange.md new file mode 100644 index 0000000..f76497a --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesChange.md @@ -0,0 +1,26 @@ + + +# RouteAggregationRulesChange + +Current state of latest Route Aggregation Rule change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Aggregation Change URI | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| UPDATE | "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE" | +| CREATION | "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION" | +| DELETION | "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesChangeData.md b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeData.md new file mode 100644 index 0000000..b269f9b --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeData.md @@ -0,0 +1,42 @@ + + +# RouteAggregationRulesChangeData + +Current state of latest Route Aggregation 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** | [**RouteAggregationRulesChangeOperation**](RouteAggregationRulesChangeOperation.md) | | [optional] | +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route Aggregation Change URI | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| REQUESTED | "REQUESTED" | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| UPDATE | "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE" | +| CREATION | "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION" | +| DELETION | "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeDataResponse.md new file mode 100644 index 0000000..0a83f5a --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeDataResponse.md @@ -0,0 +1,15 @@ + + +# RouteAggregationRulesChangeDataResponse + +List of Route Aggregation Rule changes + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationRulesChangeData>**](RouteAggregationRulesChangeData.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesChangeOperation.md b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeOperation.md new file mode 100644 index 0000000..27ec938 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesChangeOperation.md @@ -0,0 +1,26 @@ + + +# RouteAggregationRulesChangeOperation + +Route Aggregation Rule 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** | [**RouteAggregationRulesBase**](RouteAggregationRulesBase.md) | | | + + + +## Enum: OpEnum + +| Name | Value | +|---- | -----| +| ADD | "add" | +| REPLACE | "replace" | +| REMOVE | "remove" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesData.md b/equinix-openapi-fabric/docs/RouteAggregationRulesData.md new file mode 100644 index 0000000..854b4f7 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesData.md @@ -0,0 +1,29 @@ + + +# RouteAggregationRulesData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Aggregation Rules URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Aggregation type | [optional] | +|**uuid** | **UUID** | Route Aggregation Rule identifier | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided Route Aggregation Rule description | [optional] | +|**state** | **RouteAggregationRuleState** | | [optional] | +|**change** | [**RouteAggregationRulesChange**](RouteAggregationRulesChange.md) | | [optional] | +|**prefix** | **String** | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| BGP_IPV4_PREFIX_AGGREGATION_RULE | "BGP_IPv4_PREFIX_AGGREGATION_RULE" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationRulesPatchRequestItem.md b/equinix-openapi-fabric/docs/RouteAggregationRulesPatchRequestItem.md new file mode 100644 index 0000000..2b12cdb --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesPatchRequestItem.md @@ -0,0 +1,16 @@ + + +# RouteAggregationRulesPatchRequestItem + +Route Aggregation 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/RouteAggregationRulesPostRequest.md b/equinix-openapi-fabric/docs/RouteAggregationRulesPostRequest.md new file mode 100644 index 0000000..edc98eb --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationRulesPostRequest.md @@ -0,0 +1,14 @@ + + +# RouteAggregationRulesPostRequest + +Create Route Aggregation Rule POST request + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<RouteAggregationRulesBase>**](RouteAggregationRulesBase.md) | Route Aggregation Rule configuration | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationSortItem.md b/equinix-openapi-fabric/docs/RouteAggregationSortItem.md new file mode 100644 index 0000000..c1c8fcc --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationSortItem.md @@ -0,0 +1,38 @@ + + +# RouteAggregationSortItem + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | [**PropertyEnum**](#PropertyEnum) | Possible field names to use on sorting | [optional] | +|**direction** | [**DirectionEnum**](#DirectionEnum) | Sorting direction | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| UUID | "/uuid" | +| NAME | "/name" | +| PROJECT_PROJECTID | "/project/projectId" | +| STATE | "/state" | +| CONNECTIONSCOUNT | "/connectionsCount" | +| CHANGELOG_CREATEDDATETIME | "/changeLog/createdDateTime" | +| CHANGELOG_UPDATEDDATETIME | "/changeLog/updatedDateTime" | + + + +## Enum: DirectionEnum + +| Name | Value | +|---- | -----| +| DESC | "DESC" | +| ASC | "ASC" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationState.md b/equinix-openapi-fabric/docs/RouteAggregationState.md new file mode 100644 index 0000000..eefb5e3 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationState.md @@ -0,0 +1,23 @@ + + +# RouteAggregationState + +## 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/RouteAggregationsApi.md b/equinix-openapi-fabric/docs/RouteAggregationsApi.md new file mode 100644 index 0000000..f4b7b1c --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsApi.md @@ -0,0 +1,908 @@ +# RouteAggregationsApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**attachConnectionRouteAggregation**](RouteAggregationsApi.md#attachConnectionRouteAggregation) | **PUT** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Attach Aggregation | +| [**createRouteAggregation**](RouteAggregationsApi.md#createRouteAggregation) | **POST** /fabric/v4/routeAggregations | Create Aggregations | +| [**deleteRouteAggregationByUuid**](RouteAggregationsApi.md#deleteRouteAggregationByUuid) | **DELETE** /fabric/v4/routeAggregations/{routeAggregationId} | Delete Aggregation | +| [**detachConnectionRouteAggregation**](RouteAggregationsApi.md#detachConnectionRouteAggregation) | **DELETE** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Detach Aggregation | +| [**getConnectionRouteAggregationByUuid**](RouteAggregationsApi.md#getConnectionRouteAggregationByUuid) | **GET** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Get Aggregation | +| [**getConnectionRouteAggregations**](RouteAggregationsApi.md#getConnectionRouteAggregations) | **GET** /fabric/v4/connections/{connectionId}/routeAggregations | Get All Aggregations | +| [**getRouteAggregationByUuid**](RouteAggregationsApi.md#getRouteAggregationByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId} | Get Aggregation | +| [**getRouteAggregationChangeByUuid**](RouteAggregationsApi.md#getRouteAggregationChangeByUuid) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes/{changeId} | Get Change By ID | +| [**getRouteAggregationChanges**](RouteAggregationsApi.md#getRouteAggregationChanges) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes | Get All Changes | +| [**getRouteAggregationConnections**](RouteAggregationsApi.md#getRouteAggregationConnections) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/connections | Get All Connections on Route Aggregation | +| [**patchRouteAggregationByUuid**](RouteAggregationsApi.md#patchRouteAggregationByUuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId} | Patch Aggregation | +| [**searchRouteAggregations**](RouteAggregationsApi.md#searchRouteAggregations) | **POST** /fabric/v4/routeAggregations/search | Search Aggregations | + + + +# **attachConnectionRouteAggregation** +> ConnectionRouteAggregationData attachConnectionRouteAggregation(routeAggregationId, connectionId) + +Attach Aggregation + +This API provides capability to attach a Route Aggregation 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String connectionId = "connectionId_example"; // String | Connection Id + try { + ConnectionRouteAggregationData result = apiInstance.attachConnectionRouteAggregation(routeAggregationId, connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#attachConnectionRouteAggregation"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**ConnectionRouteAggregationData**](ConnectionRouteAggregationData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **createRouteAggregation** +> RouteAggregationsData createRouteAggregation(routeAggregationsBase) + +Create Aggregations + +This API provides capability to create a Route Aggregation + +### 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + RouteAggregationsBase routeAggregationsBase = new RouteAggregationsBase(); // RouteAggregationsBase | + try { + RouteAggregationsData result = apiInstance.createRouteAggregation(routeAggregationsBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#createRouteAggregation"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationsBase** | [**RouteAggregationsBase**](RouteAggregationsBase.md)| | | + +### Return type + +[**RouteAggregationsData**](RouteAggregationsData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **deleteRouteAggregationByUuid** +> RouteAggregationsData deleteRouteAggregationByUuid(routeAggregationId) + +Delete Aggregation + +This API provides capability to delete a Route Aggregation + +### 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + try { + RouteAggregationsData result = apiInstance.deleteRouteAggregationByUuid(routeAggregationId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#deleteRouteAggregationByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | + +### Return type + +[**RouteAggregationsData**](RouteAggregationsData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **detachConnectionRouteAggregation** +> ConnectionRouteAggregationData detachConnectionRouteAggregation(routeAggregationId, connectionId) + +Detach Aggregation + +This API provides capability to detach a Route Aggregation 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String connectionId = "connectionId_example"; // String | Connection Id + try { + ConnectionRouteAggregationData result = apiInstance.detachConnectionRouteAggregation(routeAggregationId, connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#detachConnectionRouteAggregation"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**ConnectionRouteAggregationData**](ConnectionRouteAggregationData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getConnectionRouteAggregationByUuid** +> ConnectionRouteAggregationData getConnectionRouteAggregationByUuid(routeAggregationId, connectionId) + +Get Aggregation + +This API provides capability to view a specific Route Aggregation 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + String connectionId = "connectionId_example"; // String | Connection Id + try { + ConnectionRouteAggregationData result = apiInstance.getConnectionRouteAggregationByUuid(routeAggregationId, connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getConnectionRouteAggregationByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **connectionId** | **String**| Connection Id | | + +### Return type + +[**ConnectionRouteAggregationData**](ConnectionRouteAggregationData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getConnectionRouteAggregations** +> GetAllConnectionRouteAggregationsResponse getConnectionRouteAggregations(connectionId) + +Get All Aggregations + +This API provides capability to view all Route Aggregations 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String connectionId = "connectionId_example"; // String | Connection Id + try { + GetAllConnectionRouteAggregationsResponse result = apiInstance.getConnectionRouteAggregations(connectionId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getConnectionRouteAggregations"); + 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 + +[**GetAllConnectionRouteAggregationsResponse**](GetAllConnectionRouteAggregationsResponse.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationByUuid** +> RouteAggregationsData getRouteAggregationByUuid(routeAggregationId) + +Get Aggregation + +This API provides capability to view a Route Aggregation 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + try { + RouteAggregationsData result = apiInstance.getRouteAggregationByUuid(routeAggregationId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getRouteAggregationByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | + +### Return type + +[**RouteAggregationsData**](RouteAggregationsData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationChangeByUuid** +> RouteAggregationChangeData getRouteAggregationChangeByUuid(routeAggregationId, changeId) + +Get Change By ID + +This API provides capability to retrieve a specific Route Aggregation'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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + UUID changeId = UUID.randomUUID(); // UUID | Routing Protocol Change UUID + try { + RouteAggregationChangeData result = apiInstance.getRouteAggregationChangeByUuid(routeAggregationId, changeId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getRouteAggregationChangeByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **changeId** | **UUID**| Routing Protocol Change UUID | | + +### Return type + +[**RouteAggregationChangeData**](RouteAggregationChangeData.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 Aggregation Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationChanges** +> RouteAggregationChangeDataResponse getRouteAggregationChanges(routeAggregationId, offset, limit) + +Get All Changes + +This API provides capability to retrieve all of a Route Aggregation'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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + RouteAggregationChangeDataResponse result = apiInstance.getRouteAggregationChanges(routeAggregationId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getRouteAggregationChanges"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**RouteAggregationChangeDataResponse**](RouteAggregationChangeDataResponse.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 Aggregation Change object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation ID Not Found | - | +| **500** | Internal server error | - | + + +# **getRouteAggregationConnections** +> GetRouteAggregationGetConnectionsResponse getRouteAggregationConnections(routeAggregationId) + +Get All Connections on Route Aggregation + +This API provides capability to view all Connections using the Route Aggregation + +### 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + try { + GetRouteAggregationGetConnectionsResponse result = apiInstance.getRouteAggregationConnections(routeAggregationId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#getRouteAggregationConnections"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | + +### Return type + +[**GetRouteAggregationGetConnectionsResponse**](GetRouteAggregationGetConnectionsResponse.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **patchRouteAggregationByUuid** +> RouteAggregationsData patchRouteAggregationByUuid(routeAggregationId, routeAggregationsPatchRequestItem) + +Patch Aggregation + +This API provides capability to partially update a Route Aggregation + +### 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + String routeAggregationId = "routeAggregationId_example"; // String | Route Aggregations Id + List routeAggregationsPatchRequestItem = Arrays.asList(); // List | + try { + RouteAggregationsData result = apiInstance.patchRouteAggregationByUuid(routeAggregationId, routeAggregationsPatchRequestItem); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#patchRouteAggregationByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationId** | **String**| Route Aggregations Id | | +| **routeAggregationsPatchRequestItem** | [**List<RouteAggregationsPatchRequestItem>**](RouteAggregationsPatchRequestItem.md)| | | + +### Return type + +[**RouteAggregationsData**](RouteAggregationsData.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 Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **searchRouteAggregations** +> RouteAggregationsSearchResponse searchRouteAggregations(routeAggregationsSearchBase) + +Search Aggregations + +This API provides capability to search Route Aggregations + +### 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.RouteAggregationsApi; + +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"); + + RouteAggregationsApi apiInstance = new RouteAggregationsApi(defaultClient); + RouteAggregationsSearchBase routeAggregationsSearchBase = new RouteAggregationsSearchBase(); // RouteAggregationsSearchBase | + try { + RouteAggregationsSearchResponse result = apiInstance.searchRouteAggregations(routeAggregationsSearchBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#searchRouteAggregations"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routeAggregationsSearchBase** | [**RouteAggregationsSearchBase**](RouteAggregationsSearchBase.md)| | | + +### Return type + +[**RouteAggregationsSearchResponse**](RouteAggregationsSearchResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Route Aggregation ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsBase.md b/equinix-openapi-fabric/docs/RouteAggregationsBase.md new file mode 100644 index 0000000..398b109 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsBase.md @@ -0,0 +1,25 @@ + + +# RouteAggregationsBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | Route Aggregation type | | +|**name** | **String** | | | +|**description** | **String** | Customer-provided connection description | [optional] | +|**project** | [**Project**](Project.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_AGGREGATION | "BGP_IPv4_PREFIX_AGGREGATION" | +| IPV6_PREFIX_AGGREGATION | "BGP_IPv6_PREFIX_AGGREGATION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsChange.md b/equinix-openapi-fabric/docs/RouteAggregationsChange.md new file mode 100644 index 0000000..fe21cb3 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsChange.md @@ -0,0 +1,29 @@ + + +# RouteAggregationsChange + +Current state of latest Route Aggregation change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Uniquely identifies a change | | +|**type** | [**TypeEnum**](#TypeEnum) | Type of change | | +|**href** | **URI** | Route AGGREGATION Change URI | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_AGGREGATION_UPDATE | "BGP_IPv4_PREFIX_AGGREGATION_UPDATE" | +| IPV4_PREFIX_AGGREGATION_CREATION | "BGP_IPv4_PREFIX_AGGREGATION_CREATION" | +| IPV4_PREFIX_AGGREGATION_DELETION | "BGP_IPv4_PREFIX_AGGREGATION_DELETION" | +| IPV6_PREFIX_AGGREGATION_UPDATE | "BGP_IPv6_PREFIX_AGGREGATION_UPDATE" | +| IPV6_PREFIX_AGGREGATION_CREATION | "BGP_IPv6_PREFIX_AGGREGATION_CREATION" | +| IPV6_PREFIX_AGGREGATION_DELETION | "BGP_IPv6_PREFIX_AGGREGATION_DELETION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsChangeOperation.md b/equinix-openapi-fabric/docs/RouteAggregationsChangeOperation.md new file mode 100644 index 0000000..9ce7cd5 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsChangeOperation.md @@ -0,0 +1,26 @@ + + +# RouteAggregationsChangeOperation + +Route Aggregation 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** | [**RouteAggregationsBase**](RouteAggregationsBase.md) | | | + + + +## Enum: OpEnum + +| Name | Value | +|---- | -----| +| ADD | "add" | +| REPLACE | "replace" | +| REMOVE | "remove" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsData.md b/equinix-openapi-fabric/docs/RouteAggregationsData.md new file mode 100644 index 0000000..99cee46 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsData.md @@ -0,0 +1,32 @@ + + +# RouteAggregationsData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Route Aggregation URI | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Route Aggregation type | [optional] | +|**uuid** | **UUID** | Route Aggregation identifier | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | Customer-provided connection description | [optional] | +|**state** | **RouteAggregationState** | | [optional] | +|**change** | [**RouteAggregationsChange**](RouteAggregationsChange.md) | | [optional] | +|**connectionsCount** | **Integer** | | [optional] | +|**rulesCount** | **Integer** | | [optional] | +|**project** | [**RouteAggregationsDataProject**](RouteAggregationsDataProject.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| IPV4_PREFIX_AGGREGATION | "BGP_IPv4_PREFIX_AGGREGATION" | +| IPV6_PREFIX_AGGREGATION | "BGP_IPv6_PREFIX_AGGREGATION" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsDataProject.md b/equinix-openapi-fabric/docs/RouteAggregationsDataProject.md new file mode 100644 index 0000000..7f4fbbf --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsDataProject.md @@ -0,0 +1,14 @@ + + +# RouteAggregationsDataProject + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**projectId** | **String** | Subscriber-assigned project ID | | +|**href** | **URI** | Project URI | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsPatchRequestItem.md b/equinix-openapi-fabric/docs/RouteAggregationsPatchRequestItem.md new file mode 100644 index 0000000..fbf65e0 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsPatchRequestItem.md @@ -0,0 +1,16 @@ + + +# RouteAggregationsPatchRequestItem + +Route Aggregation 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/RouteAggregationsSearchBase.md b/equinix-openapi-fabric/docs/RouteAggregationsSearchBase.md new file mode 100644 index 0000000..462e835 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsSearchBase.md @@ -0,0 +1,15 @@ + + +# RouteAggregationsSearchBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filter** | [**RouteAggregationsSearchBaseFilter**](RouteAggregationsSearchBaseFilter.md) | | [optional] | +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**sort** | [**List<RouteAggregationSortItem>**](RouteAggregationSortItem.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsSearchBaseFilter.md b/equinix-openapi-fabric/docs/RouteAggregationsSearchBaseFilter.md new file mode 100644 index 0000000..1b9e64c --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsSearchBaseFilter.md @@ -0,0 +1,13 @@ + + +# RouteAggregationsSearchBaseFilter + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteAggregationsSearchFilterItem>**](RouteAggregationsSearchFilterItem.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsSearchFilterItem.md b/equinix-openapi-fabric/docs/RouteAggregationsSearchFilterItem.md new file mode 100644 index 0000000..0068658 --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsSearchFilterItem.md @@ -0,0 +1,27 @@ + + +# RouteAggregationsSearchFilterItem + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | [**PropertyEnum**](#PropertyEnum) | | [optional] | +|**operator** | **String** | | [optional] | +|**values** | **List<String>** | | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| NAME | "/name" | +| PROJECT_PROJECTID | "/project/projectId" | +| UUID | "/uuid" | +| STATE | "/state" | + + + diff --git a/equinix-openapi-fabric/docs/RouteAggregationsSearchResponse.md b/equinix-openapi-fabric/docs/RouteAggregationsSearchResponse.md new file mode 100644 index 0000000..7d54eeb --- /dev/null +++ b/equinix-openapi-fabric/docs/RouteAggregationsSearchResponse.md @@ -0,0 +1,14 @@ + + +# RouteAggregationsSearchResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationsData>**](RouteAggregationsData.md) | List of Route Aggregations | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/RouteFilterChangeData.md b/equinix-openapi-fabric/docs/RouteFilterChangeData.md index eb4f2b3..74bf2b8 100644 --- a/equinix-openapi-fabric/docs/RouteFilterChangeData.md +++ b/equinix-openapi-fabric/docs/RouteFilterChangeData.md @@ -2,22 +2,22 @@ # RouteFilterChangeData -Current state of latest Route Filter change +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] | +|**createdBy** | **String** | Created by user key | [optional] | |**createdDateTime** | **OffsetDateTime** | Set when change flow starts | [optional] | -|**updatedBy** | **String** | Updated by User Key | [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] | +|**href** | **URI** | Route filter change URI | [optional] | diff --git a/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md index 79219c9..386c8c7 100644 --- a/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md +++ b/equinix-openapi-fabric/docs/RouteFilterChangeDataResponse.md @@ -2,7 +2,7 @@ # RouteFilterChangeDataResponse -List of Route Filter changes +List of route filter changes ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md b/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md index e5d644f..d238b4b 100644 --- a/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md +++ b/equinix-openapi-fabric/docs/RouteFilterConnectionsData.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**href** | **URI** | Connection URI | [optional] | |**type** | **ConnectionType** | | [optional] | -|**uuid** | **UUID** | Route Filter identifier | [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 index a04fec4..c50bc72 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesApi.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesApi.md @@ -4,22 +4,22 @@ 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 | +| [**createRouteFilterRule**](RouteFilterRulesApi.md#createRouteFilterRule) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Create Route Filter Rule | +| [**createRouteFilterRulesInBulk**](RouteFilterRulesApi.md#createRouteFilterRulesInBulk) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk | Bulk Create Route Filter Rules | +| [**deleteRouteFilterRuleByUuid**](RouteFilterRulesApi.md#deleteRouteFilterRuleByUuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Delete Route Filter Rule | +| [**getRouteFilterRuleByUuid**](RouteFilterRulesApi.md#getRouteFilterRuleByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Get Route Filter Rule 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 | +| [**getRouteFilterRules**](RouteFilterRulesApi.md#getRouteFilterRules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Get Route Filter Rules | +| [**patchRouteFilterRuleByUuid**](RouteFilterRulesApi.md#patchRouteFilterRuleByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Patch Route Filter Rule | +| [**replaceRouteFilterRuleByUuid**](RouteFilterRulesApi.md#replaceRouteFilterRuleByUuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Replace Route Filter Rule | # **createRouteFilterRule** > RouteFilterRulesData createRouteFilterRule(routeFilterId, routeFilterRulesBase) -Create RFRule +Create Route Filter Rule This API provides capability to create a Route Filter Rule @@ -94,7 +94,7 @@ public class Example { # **createRouteFilterRulesInBulk** > GetRouteFilterRulesResponse createRouteFilterRulesInBulk(routeFilterId, routeFilterRulesPostRequest) -Bulk RFRules +Bulk Create Route Filter Rules This API provides capability to create bulk route filter rules @@ -169,7 +169,7 @@ public class Example { # **deleteRouteFilterRuleByUuid** > RouteFilterRulesData deleteRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId) -DeleteRFRule +Delete Route Filter Rule This API provides capability to delete a Route Filter Rule @@ -244,7 +244,7 @@ public class Example { # **getRouteFilterRuleByUuid** > RouteFilterRulesData getRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId) -GetRFRule By UUID +Get Route Filter Rule By UUID This API provides capability to view a Route Filter Rule by UUID @@ -473,7 +473,7 @@ public class Example { # **getRouteFilterRules** > GetRouteFilterRulesResponse getRouteFilterRules(routeFilterId, offset, limit) -GetRFRules +Get Route Filter Rules This API provides capability to get all Route Filters Rules for Fabric @@ -549,7 +549,7 @@ public class Example { # **patchRouteFilterRuleByUuid** > RouteFilterRulesData patchRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterRulesPatchRequestItem) -PatchRFilterRule +Patch Route Filter Rule This API provides capability to partially update a Route Filter Rule @@ -626,7 +626,7 @@ public class Example { # **replaceRouteFilterRuleByUuid** > RouteFilterRulesData replaceRouteFilterRuleByUuid(routeFilterId, routeFilterRuleId, routeFilterRulesBase) -ReplaceRFRule +Replace Route Filter Rule This API provides capability to replace a Route Filter Rule completely diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChange.md b/equinix-openapi-fabric/docs/RouteFilterRulesChange.md index 3d3f02c..991018f 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesChange.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChange.md @@ -2,7 +2,7 @@ # RouteFilterRulesChange -Current state of latest Route Filter Rule change +Current state of latest route filter rule change ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md index 86c304a..0a9aa9b 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeData.md @@ -2,7 +2,7 @@ # RouteFilterRulesChangeData -Current state of latest Route Filter Rules change +Current state of latest route filter rules change ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md index a22551b..149298b 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeDataResponse.md @@ -2,7 +2,7 @@ # RouteFilterRulesChangeDataResponse -List of Route Filter Rule changes +List of route filter rule changes ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md b/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md index 426bf3a..249abec 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesChangeOperation.md @@ -2,7 +2,7 @@ # RouteFilterRulesChangeOperation -Route Filter Rule change operation data +Route filter rule change operation data ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesData.md b/equinix-openapi-fabric/docs/RouteFilterRulesData.md index c5262cb..c215096 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesData.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesData.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**href** | **URI** | Route Filter Rules URI | [optional] | -|**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [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] | diff --git a/equinix-openapi-fabric/docs/RouteFilterRulesPatchRequestItem.md b/equinix-openapi-fabric/docs/RouteFilterRulesPatchRequestItem.md index 2ddd170..2bef1fe 100644 --- a/equinix-openapi-fabric/docs/RouteFilterRulesPatchRequestItem.md +++ b/equinix-openapi-fabric/docs/RouteFilterRulesPatchRequestItem.md @@ -2,7 +2,7 @@ # RouteFilterRulesPatchRequestItem -Route Filter Rule change operation data +Route filter rule change operation data ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFiltersApi.md b/equinix-openapi-fabric/docs/RouteFiltersApi.md index f2e77d0..e310f15 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersApi.md +++ b/equinix-openapi-fabric/docs/RouteFiltersApi.md @@ -9,11 +9,11 @@ All URIs are relative to *https://api.equinix.com* | [**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 | +| [**getConnectionRouteFilters**](RouteFiltersApi.md#getConnectionRouteFilters) | **GET** /fabric/v4/connections/{connectionId}/routeFilters | Get All Route Filters | +| [**getRouteFilterByUuid**](RouteFiltersApi.md#getRouteFilterByUuid) | **GET** /fabric/v4/routeFilters/{routeFilterId} | Get Route 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 | +| [**getRouteFilterConnections**](RouteFiltersApi.md#getRouteFilterConnections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get All Connections on Route Filter | | [**patchRouteFilterByUuid**](RouteFiltersApi.md#patchRouteFilterByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter | | [**searchRouteFilters**](RouteFiltersApi.md#searchRouteFilters) | **POST** /fabric/v4/routeFilters/search | Search Route Filters | @@ -395,7 +395,7 @@ public class Example { # **getConnectionRouteFilters** > GetAllConnectionRouteFiltersResponse getConnectionRouteFilters(connectionId) -Get All RouteFilters +Get All Route Filters This API provides capability to view all Route Filters attached to a Connection @@ -468,7 +468,7 @@ public class Example { # **getRouteFilterByUuid** > RouteFiltersData getRouteFilterByUuid(routeFilterId) -Get Filter By UUID +Get Route Filter By UUID This API provides capability to view a Route Filter by UUID @@ -691,7 +691,7 @@ public class Example { # **getRouteFilterConnections** > GetRouteFilterGetConnectionsResponse getRouteFilterConnections(routeFilterId) -Get Connections +Get All Connections on Route Filter This API provides capability to view all Connections using the Route Filter diff --git a/equinix-openapi-fabric/docs/RouteFiltersChange.md b/equinix-openapi-fabric/docs/RouteFiltersChange.md index 44ccc34..8796920 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersChange.md +++ b/equinix-openapi-fabric/docs/RouteFiltersChange.md @@ -2,7 +2,7 @@ # RouteFiltersChange -Current state of latest Route Filter change +Current state of latest route filter change ## Properties @@ -10,7 +10,7 @@ Current state of latest Route Filter change |------------ | ------------- | ------------- | -------------| |**uuid** | **String** | Uniquely identifies a change | | |**type** | [**TypeEnum**](#TypeEnum) | Type of change | | -|**href** | **URI** | Route Filter Change URI | [optional] | +|**href** | **URI** | Route filter change URI | [optional] | diff --git a/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md b/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md index 8072e21..529098f 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md +++ b/equinix-openapi-fabric/docs/RouteFiltersChangeOperation.md @@ -2,7 +2,7 @@ # RouteFiltersChangeOperation -Route Filter change operation data +Route filter change operation data ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFiltersData.md b/equinix-openapi-fabric/docs/RouteFiltersData.md index 2f1829e..c85313a 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersData.md +++ b/equinix-openapi-fabric/docs/RouteFiltersData.md @@ -7,9 +7,9 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**href** | **URI** | Route Filter URI | [optional] | +|**href** | **URI** | Route filter URI | [optional] | |**type** | [**TypeEnum**](#TypeEnum) | Route Filter type | [optional] | -|**uuid** | **UUID** | Route Filter identifier | [optional] | +|**uuid** | **UUID** | Route filter identifier | [optional] | |**name** | **String** | | [optional] | |**description** | **String** | Customer-provided connection description | [optional] | |**state** | **RouteFilterState** | | [optional] | diff --git a/equinix-openapi-fabric/docs/RouteFiltersPatchRequestItem.md b/equinix-openapi-fabric/docs/RouteFiltersPatchRequestItem.md index a6c53e4..05b4228 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersPatchRequestItem.md +++ b/equinix-openapi-fabric/docs/RouteFiltersPatchRequestItem.md @@ -2,7 +2,7 @@ # RouteFiltersPatchRequestItem -Route Filter change operation data +Route filter change operation data ## Properties diff --git a/equinix-openapi-fabric/docs/RouteFiltersSearchResponse.md b/equinix-openapi-fabric/docs/RouteFiltersSearchResponse.md index 1053e68..779dd86 100644 --- a/equinix-openapi-fabric/docs/RouteFiltersSearchResponse.md +++ b/equinix-openapi-fabric/docs/RouteFiltersSearchResponse.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**pagination** | [**Pagination**](Pagination.md) | | [optional] | -|**data** | [**List<RouteFiltersData>**](RouteFiltersData.md) | List of Route Filters | [optional] | +|**data** | [**List<RouteFiltersData>**](RouteFiltersData.md) | List of route filters | [optional] | diff --git a/equinix-openapi-fabric/docs/ServiceToken.md b/equinix-openapi-fabric/docs/ServiceToken.md index 9bb1246..a192bf8 100644 --- a/equinix-openapi-fabric/docs/ServiceToken.md +++ b/equinix-openapi-fabric/docs/ServiceToken.md @@ -10,8 +10,9 @@ Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens |------------ | ------------- | ------------- | -------------| |**type** | **ServiceTokenType** | | [optional] | |**href** | **URI** | An absolute URL that is the subject of the link's context. | [optional] [readonly] | +|**expiry** | **Integer** | | [optional] | |**uuid** | **UUID** | Equinix-assigned service token identifier | [optional] | -|**issuerSide** | [**IssuerSideEnum**](#IssuerSideEnum) | information about token side | [optional] | +|**issuerSide** | **String** | information about token side | [optional] | |**name** | **String** | Customer-provided service token name | [optional] | |**description** | **String** | Customer-provided service token description | [optional] | |**expirationDateTime** | **OffsetDateTime** | Expiration date and time of the service token. | [optional] | @@ -24,12 +25,3 @@ Create Service Tokens (v4) generates Equinix Fabric service tokens. These tokens -## Enum: IssuerSideEnum - -| Name | Value | -|---- | -----| -| ASIDE | "ASIDE" | -| ZSIDE | "ZSIDE" | - - - diff --git a/equinix-openapi-fabric/docs/ServiceTokenConnection.md b/equinix-openapi-fabric/docs/ServiceTokenConnection.md index 5c2a1ee..48659d1 100644 --- a/equinix-openapi-fabric/docs/ServiceTokenConnection.md +++ b/equinix-openapi-fabric/docs/ServiceTokenConnection.md @@ -25,6 +25,7 @@ Service Token Connection Type Information | Name | Value | |---- | -----| | EVPL_VC | "EVPL_VC" | +| EPL_VC | "EPL_VC" | | EVPLAN_VC | "EVPLAN_VC" | | EPLAN_VC | "EPLAN_VC" | | IPWAN_VC | "IPWAN_VC" | diff --git a/equinix-openapi-fabric/docs/ServiceTokensApi.md b/equinix-openapi-fabric/docs/ServiceTokensApi.md index d67dcb5..2761dd9 100644 --- a/equinix-openapi-fabric/docs/ServiceTokensApi.md +++ b/equinix-openapi-fabric/docs/ServiceTokensApi.md @@ -15,7 +15,7 @@ All URIs are relative to *https://api.equinix.com* # **createServiceToken** -> ServiceToken createServiceToken(serviceToken) +> ServiceToken createServiceToken(serviceToken, dryRun) Create Service Token @@ -42,8 +42,9 @@ public class Example { ServiceTokensApi apiInstance = new ServiceTokensApi(defaultClient); ServiceToken serviceToken = new ServiceToken(); // ServiceToken | + Boolean dryRun = false; // Boolean | option to verify that API calls will succeed try { - ServiceToken result = apiInstance.createServiceToken(serviceToken); + ServiceToken result = apiInstance.createServiceToken(serviceToken, dryRun); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceTokensApi#createServiceToken"); @@ -61,6 +62,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **serviceToken** | [**ServiceToken**](ServiceToken.md)| | | +| **dryRun** | **Boolean**| option to verify that API calls will succeed | [optional] [default to false] | ### Return type @@ -78,6 +80,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| +| **200** | Successful operation | - | | **201** | Successful operation | - | | **400** | Bad request | - | | **401** | Unauthorized | - | diff --git a/equinix-openapi-fabric/docs/SimplifiedLocation.md b/equinix-openapi-fabric/docs/SimplifiedLocation.md index 783984e..6bb51ee 100644 --- a/equinix-openapi-fabric/docs/SimplifiedLocation.md +++ b/equinix-openapi-fabric/docs/SimplifiedLocation.md @@ -7,10 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**metroHref** | **String** | | [optional] | |**region** | **String** | | [optional] | |**metroName** | **String** | | [optional] | |**metroCode** | **String** | | [optional] | -|**metroHref** | **String** | | [optional] | |**ibx** | **String** | | [optional] | diff --git a/equinix-openapi-fabric/docs/SimplifiedLocationWithoutIBX.md b/equinix-openapi-fabric/docs/SimplifiedLocationWithoutIBX.md index 1ab317f..fb97d45 100644 --- a/equinix-openapi-fabric/docs/SimplifiedLocationWithoutIBX.md +++ b/equinix-openapi-fabric/docs/SimplifiedLocationWithoutIBX.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**href** | **String** | The Canonical URL at which the resource resides. | [optional] | +|**metroHref** | **String** | The Canonical URL at which the resource resides. | [optional] | |**region** | **String** | | [optional] | |**metroName** | **String** | | [optional] | |**metroCode** | **String** | | | diff --git a/equinix-openapi-fabric/docs/SimplifiedPort.md b/equinix-openapi-fabric/docs/SimplifiedPort.md index 00e840b..de7d272 100644 --- a/equinix-openapi-fabric/docs/SimplifiedPort.md +++ b/equinix-openapi-fabric/docs/SimplifiedPort.md @@ -8,9 +8,9 @@ Port specification | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Equinix assigned response attribute for an absolute URL that is the subject of the link's context. | [optional] [readonly] | |**type** | **PortType** | | [optional] | |**id** | **Integer** | Equinix assigned response attribute for Port Id | [optional] | -|**href** | **URI** | Equinix assigned response attribute for an absolute URL that is the subject of the link's context. | [optional] [readonly] | |**uuid** | **UUID** | Equinix assigned response attribute for port identifier | [optional] | |**name** | **String** | Equinix assigned response attribute for Port name | [optional] | |**description** | **String** | Equinix assigned response attribute for Port description | [optional] | diff --git a/equinix-openapi-fabric/docs/Stream.md b/equinix-openapi-fabric/docs/Stream.md index c54c567..fd68ff4 100644 --- a/equinix-openapi-fabric/docs/Stream.md +++ b/equinix-openapi-fabric/docs/Stream.md @@ -13,7 +13,7 @@ Stream object |**state** | [**StateEnum**](#StateEnum) | Stream provision state | [optional] | |**assetsCount** | **Integer** | Stream assets count | [optional] | |**streamSubscriptionsCount** | **Integer** | Stream subscriptions count | [optional] | -|**changelog** | [**Changelog**](Changelog.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | |**type** | [**TypeEnum**](#TypeEnum) | | [optional] | |**name** | **String** | Customer-provided stream name | [optional] | |**description** | **String** | Customer-provided stream description | [optional] | diff --git a/equinix-openapi-fabric/docs/StreamAsset.md b/equinix-openapi-fabric/docs/StreamAsset.md index 24901ee..e4bb1c4 100644 --- a/equinix-openapi-fabric/docs/StreamAsset.md +++ b/equinix-openapi-fabric/docs/StreamAsset.md @@ -10,11 +10,27 @@ Stream object |------------ | ------------- | ------------- | -------------| |**href** | **URI** | Stream Asset URI | [optional] [readonly] | |**uuid** | **UUID** | Equinix-assigned access point identifier | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | Asset types | [optional] | |**metricsEnabled** | **Boolean** | enable metric | [optional] | |**attachmentStatus** | [**AttachmentStatusEnum**](#AttachmentStatusEnum) | asset status | [optional] | +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| XF_PORT | "XF_PORT" | +| IP_VC | "IP_VC" | +| EVPLAN_VC | "EVPLAN_VC" | +| EVPL_VC | "EVPL_VC" | +| XF_METRO | "XF_METRO" | +| XF_ROUTER | "XF_ROUTER" | +| ORGANIZATION | "ORGANIZATION" | +| PROJECT | "PROJECT" | + + + ## Enum: AttachmentStatusEnum | Name | Value | diff --git a/equinix-openapi-fabric/docs/StreamSubscription.md b/equinix-openapi-fabric/docs/StreamSubscription.md index 49db6c4..8cf0a28 100644 --- a/equinix-openapi-fabric/docs/StreamSubscription.md +++ b/equinix-openapi-fabric/docs/StreamSubscription.md @@ -18,8 +18,10 @@ Stream Subscription object |**enabled** | **Boolean** | Stream subscription enabled status | [optional] | |**stream** | [**StreamTarget**](StreamTarget.md) | | [optional] | |**filters** | [**StreamSubscriptionFilter**](StreamSubscriptionFilter.md) | | [optional] | +|**metricSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | +|**eventSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | |**sink** | [**StreamSubscriptionSink**](StreamSubscriptionSink.md) | | [optional] | -|**changelog** | [**Changelog**](Changelog.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/StreamSubscriptionPostRequest.md b/equinix-openapi-fabric/docs/StreamSubscriptionPostRequest.md index bf0546d..3dccdf0 100644 --- a/equinix-openapi-fabric/docs/StreamSubscriptionPostRequest.md +++ b/equinix-openapi-fabric/docs/StreamSubscriptionPostRequest.md @@ -15,6 +15,8 @@ Create Stream Subscription |**enabled** | **Boolean** | Stream subscription enabled status | [optional] | |**stream** | [**StreamTarget**](StreamTarget.md) | | [optional] | |**filters** | [**StreamSubscriptionFilter**](StreamSubscriptionFilter.md) | | [optional] | +|**metricSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | +|**eventSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | |**sink** | [**StreamSubscriptionSink**](StreamSubscriptionSink.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/StreamSubscriptionPutRequest.md b/equinix-openapi-fabric/docs/StreamSubscriptionPutRequest.md index 20f498f..9543808 100644 --- a/equinix-openapi-fabric/docs/StreamSubscriptionPutRequest.md +++ b/equinix-openapi-fabric/docs/StreamSubscriptionPutRequest.md @@ -13,6 +13,8 @@ Update Stream Subscription |**stream** | [**StreamTarget**](StreamTarget.md) | | [optional] | |**enabled** | **Boolean** | Stream subscription enabled status | [optional] | |**filters** | [**StreamSubscriptionFilter**](StreamSubscriptionFilter.md) | | [optional] | +|**metricSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | +|**eventSelector** | [**StreamSubscriptionSelector**](StreamSubscriptionSelector.md) | | [optional] | |**sink** | [**StreamSubscriptionSink**](StreamSubscriptionSink.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/StreamSubscriptionSelector.md b/equinix-openapi-fabric/docs/StreamSubscriptionSelector.md new file mode 100644 index 0000000..706b944 --- /dev/null +++ b/equinix-openapi-fabric/docs/StreamSubscriptionSelector.md @@ -0,0 +1,14 @@ + + +# StreamSubscriptionSelector + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**include** | **List<String>** | | [optional] | +|**except** | **List<String>** | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/StreamsApi.md b/equinix-openapi-fabric/docs/StreamsApi.md index 8a91e31..c5f06b1 100644 --- a/equinix-openapi-fabric/docs/StreamsApi.md +++ b/equinix-openapi-fabric/docs/StreamsApi.md @@ -138,7 +138,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | | **streamId** | **UUID**| Stream UUID | | ### Return type @@ -286,7 +286,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | | **streamId** | **UUID**| Stream UUID | | ### Return type @@ -658,7 +658,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | | **streamId** | **UUID**| Stream UUID | | | **streamAssetPutRequest** | [**StreamAssetPutRequest**](StreamAssetPutRequest.md)| | | diff --git a/equinix-openapi-fabric/docs/SubscriptionResponse.md b/equinix-openapi-fabric/docs/SubscriptionResponse.md index a0f2b45..1107da5 100644 --- a/equinix-openapi-fabric/docs/SubscriptionResponse.md +++ b/equinix-openapi-fabric/docs/SubscriptionResponse.md @@ -16,7 +16,7 @@ Subscription Response |**isAutoRenew** | **Boolean** | Is Auto Renewal Enabled | [optional] | |**offerId** | **String** | Marketplace Offer Id | [optional] | |**trial** | [**SubscriptionTrial**](SubscriptionTrial.md) | | [optional] | -|**subscriptionKey** | **String** | Subscription Key | [optional] | +|**metroCodes** | **List<String>** | List of available metro | [optional] | |**entitlements** | [**List<SubscriptionEntitlementResponse>**](SubscriptionEntitlementResponse.md) | List of entitlements associated with the subscription | | |**changelog** | [**Changelog**](Changelog.md) | | [optional] | diff --git a/equinix-openapi-fabric/docs/TimeServicePrice.md b/equinix-openapi-fabric/docs/TimeServicePrice.md new file mode 100644 index 0000000..2f0b336 --- /dev/null +++ b/equinix-openapi-fabric/docs/TimeServicePrice.md @@ -0,0 +1,25 @@ + + +# TimeServicePrice + +Time Service Product configuration + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | Precision Time Service Type refers to the corresponding Protocol. | [optional] | +|**_package** | [**PrecisionTimePackageRequest**](PrecisionTimePackageRequest.md) | | [optional] | +|**connection** | [**TimeServicePriceConnection**](TimeServicePriceConnection.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| NTP | "NTP" | +| PTP | "PTP" | + + + diff --git a/equinix-openapi-fabric/docs/TimeServicePriceConnection.md b/equinix-openapi-fabric/docs/TimeServicePriceConnection.md new file mode 100644 index 0000000..0c9dd71 --- /dev/null +++ b/equinix-openapi-fabric/docs/TimeServicePriceConnection.md @@ -0,0 +1,14 @@ + + +# TimeServicePriceConnection + +Time Service Price Connection configuration + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**aSide** | [**TimeServicePriceConnectionASide**](TimeServicePriceConnectionASide.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/TimeServicePriceConnectionASide.md b/equinix-openapi-fabric/docs/TimeServicePriceConnectionASide.md new file mode 100644 index 0000000..4f15771 --- /dev/null +++ b/equinix-openapi-fabric/docs/TimeServicePriceConnectionASide.md @@ -0,0 +1,14 @@ + + +# TimeServicePriceConnectionASide + +Time Service Price Connection ASide configuration + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**accessPoint** | [**TimeServicePriceConnectionAccessPoint**](TimeServicePriceConnectionAccessPoint.md) | | [optional] | + + + diff --git a/equinix-openapi-fabric/docs/TimeServicePriceConnectionAccessPoint.md b/equinix-openapi-fabric/docs/TimeServicePriceConnectionAccessPoint.md new file mode 100644 index 0000000..156feff --- /dev/null +++ b/equinix-openapi-fabric/docs/TimeServicePriceConnectionAccessPoint.md @@ -0,0 +1,14 @@ + + +# TimeServicePriceConnectionAccessPoint + +Time Service Price Connection Access Point configuration + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**location** | [**PriceLocation**](PriceLocation.md) | | [optional] | + + + 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 1b9029d..4749164 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 @@ -195,6 +195,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser 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.ConnectionRouteAggregationData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRouteEntryFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRouteEntryFilters.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.ConnectionRouteEntryOrFilter.CustomTypeAdapterFactory()); @@ -215,17 +216,21 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.DirectConnectionIpv4.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.DirectConnectionIpv6.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Direction.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.EndCustomer.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Error.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.Expression.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.FabricCloudRouterPackages.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.FabricCloudRouterPrice.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.GetAllConnectionRouteAggregationsResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetAllConnectionRouteFiltersResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetAllStreamAssetResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetAllStreamResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetAllStreamSubscriptionResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetRouteAggregationGetConnectionsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.GetRouteAggregationRulesResponse.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.GetSubscriptionsInStreamResponse.CustomTypeAdapterFactory()); @@ -297,6 +302,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeOrder.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimePackageRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimePackageResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimePrice.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceConnectionsResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServicePackagesResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.PrecisionTimeServiceRequest.CustomTypeAdapterFactory()); @@ -312,6 +318,28 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser 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.RouteAggregationChangeData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationChangeDataResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationConnectionsData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChange.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChangeData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChangeDataResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChangeOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesPatchRequestItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationRulesPostRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationSortItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsChange.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsChangeOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsDataProject.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsPatchRequestItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchBaseFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchFilterItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchResponse.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.RouteFilterConnectionsData.CustomTypeAdapterFactory()); @@ -418,6 +446,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionPostRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionPutRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionSelector.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionSink.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionSinkCredential.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.StreamSubscriptionSinkSetting.CustomTypeAdapterFactory()); @@ -431,6 +460,10 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServiceFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServiceFilters.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServiceOrFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServicePrice.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServicePriceConnection.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServicePriceConnectionASide.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServicePriceConnectionAccessPoint.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServiceSimpleExpression.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServiceSortCriteria.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.openapi.fabric.v4.model.TimeServicesSearchRequest.CustomTypeAdapterFactory()); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/CloudRoutersApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/CloudRoutersApi.java index 4e05154..7fc0e27 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/CloudRoutersApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/CloudRoutersApi.java @@ -92,6 +92,7 @@ public void setCustomBaseUrl(String customBaseUrl) { /** * Build call for createCloudRouter * @param cloudRouterPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -106,7 +107,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 500 Internal server error - */ - public okhttp3.Call createCloudRouterCall(CloudRouterPostRequest cloudRouterPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCloudRouterCall(CloudRouterPostRequest cloudRouterPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -131,6 +132,10 @@ public okhttp3.Call createCloudRouterCall(CloudRouterPostRequest cloudRouterPost Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (dryRun != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("dryRun", dryRun)); + } + final String[] localVarAccepts = { "application/json" }; @@ -152,13 +157,13 @@ public okhttp3.Call createCloudRouterCall(CloudRouterPostRequest cloudRouterPost } @SuppressWarnings("rawtypes") - private okhttp3.Call createCloudRouterValidateBeforeCall(CloudRouterPostRequest cloudRouterPostRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createCloudRouterValidateBeforeCall(CloudRouterPostRequest cloudRouterPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { // verify the required parameter 'cloudRouterPostRequest' is set if (cloudRouterPostRequest == null) { throw new ApiException("Missing the required parameter 'cloudRouterPostRequest' when calling createCloudRouter(Async)"); } - return createCloudRouterCall(cloudRouterPostRequest, _callback); + return createCloudRouterCall(cloudRouterPostRequest, dryRun, _callback); } @@ -166,6 +171,7 @@ private okhttp3.Call createCloudRouterValidateBeforeCall(CloudRouterPostRequest * Create Routers * This API provides capability to create user's Cloud Routers * @param cloudRouterPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return CloudRouter * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -179,8 +185,8 @@ private okhttp3.Call createCloudRouterValidateBeforeCall(CloudRouterPostRequest 500 Internal server error - */ - public CloudRouter createCloudRouter(CloudRouterPostRequest cloudRouterPostRequest) throws ApiException { - ApiResponse localVarResp = createCloudRouterWithHttpInfo(cloudRouterPostRequest); + public CloudRouter createCloudRouter(CloudRouterPostRequest cloudRouterPostRequest, Boolean dryRun) throws ApiException { + ApiResponse localVarResp = createCloudRouterWithHttpInfo(cloudRouterPostRequest, dryRun); return localVarResp.getData(); } @@ -188,6 +194,7 @@ public CloudRouter createCloudRouter(CloudRouterPostRequest cloudRouterPostReque * Create Routers * This API provides capability to create user's Cloud Routers * @param cloudRouterPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return ApiResponse<CloudRouter> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -201,8 +208,8 @@ public CloudRouter createCloudRouter(CloudRouterPostRequest cloudRouterPostReque 500 Internal server error - */ - public ApiResponse createCloudRouterWithHttpInfo(CloudRouterPostRequest cloudRouterPostRequest) throws ApiException { - okhttp3.Call localVarCall = createCloudRouterValidateBeforeCall(cloudRouterPostRequest, null); + public ApiResponse createCloudRouterWithHttpInfo(CloudRouterPostRequest cloudRouterPostRequest, Boolean dryRun) throws ApiException { + okhttp3.Call localVarCall = createCloudRouterValidateBeforeCall(cloudRouterPostRequest, dryRun, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -211,6 +218,7 @@ public ApiResponse createCloudRouterWithHttpInfo(CloudRouterPostReq * Create Routers (asynchronously) * This API provides capability to create user's Cloud Routers * @param cloudRouterPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @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 @@ -225,9 +233,9 @@ public ApiResponse createCloudRouterWithHttpInfo(CloudRouterPostReq 500 Internal server error - */ - public okhttp3.Call createCloudRouterAsync(CloudRouterPostRequest cloudRouterPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCloudRouterAsync(CloudRouterPostRequest cloudRouterPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = createCloudRouterValidateBeforeCall(cloudRouterPostRequest, _callback); + okhttp3.Call localVarCall = createCloudRouterValidateBeforeCall(cloudRouterPostRequest, dryRun, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -314,7 +322,7 @@ private okhttp3.Call createCloudRouterActionValidateBeforeCall(UUID routerId, Cl } /** - * Route table actions + * Create Route Table Action * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionRequest (required) @@ -338,7 +346,7 @@ public CloudRouterActionResponse createCloudRouterAction(UUID routerId, CloudRou } /** - * Route table actions + * Create Route Table Action * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionRequest (required) @@ -363,7 +371,7 @@ public ApiResponse createCloudRouterActionWithHttpInf } /** - * Route table actions (asynchronously) + * Create Route Table Action (asynchronously) * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionRequest (required) @@ -608,7 +616,7 @@ private okhttp3.Call getCloudRouterActionsValidateBeforeCall(UUID routerId, Clou } /** - * Get actions + * Get Route Table Actions * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param state Action state (optional) @@ -632,7 +640,7 @@ public CloudRouterActionResponse getCloudRouterActions(UUID routerId, CloudRoute } /** - * Get actions + * Get Route Table Actions * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param state Action state (optional) @@ -657,7 +665,7 @@ public ApiResponse getCloudRouterActionsWithHttpInfo( } /** - * Get actions (asynchronously) + * Get Route Table Actions (asynchronously) * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param state Action state (optional) @@ -770,7 +778,7 @@ private okhttp3.Call getCloudRouterActionsByUuidValidateBeforeCall(UUID routerId } /** - * Get actions + * Get Route Table Action by ID * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param actionId Action UUID (required) @@ -795,7 +803,7 @@ public CloudRouterActionResponse getCloudRouterActionsByUuid(UUID routerId, UUID } /** - * Get actions + * Get Route Table Action by ID * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param actionId Action UUID (required) @@ -821,7 +829,7 @@ public ApiResponse getCloudRouterActionsByUuidWithHtt } /** - * Get actions (asynchronously) + * Get Route Table Action by ID (asynchronously) * This API provides capability to fetch action status * @param routerId Router UUID (required) * @param actionId Action UUID (required) @@ -1655,7 +1663,7 @@ private okhttp3.Call searchConnectionAdvertisedRoutesValidateBeforeCall(String c } /** - * search advertised + * Search Advertised Routes * The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1677,7 +1685,7 @@ public ConnectionRouteTableEntrySearchResponse searchConnectionAdvertisedRoutes( } /** - * search advertised + * Search Advertised Routes * The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1700,7 +1708,7 @@ public ApiResponse searchConnectionAdve } /** - * search advertised (asynchronously) + * Search Advertised Routes (asynchronously) * The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1804,7 +1812,7 @@ private okhttp3.Call searchConnectionReceivedRoutesValidateBeforeCall(String con } /** - * Search received + * Search Received Routes * The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1826,7 +1834,7 @@ public ConnectionRouteTableEntrySearchResponse searchConnectionReceivedRoutes(St } /** - * Search received + * Search Received Routes * The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1849,7 +1857,7 @@ public ApiResponse searchConnectionRece } /** - * Search received (asynchronously) + * Search Received Routes (asynchronously) * The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting * @param connectionId Connection Id (required) * @param connectionRouteSearchRequest (required) @@ -1955,7 +1963,7 @@ private okhttp3.Call searchRouterActionsValidateBeforeCall(UUID routerId, CloudR } /** - * Search actions + * Search Route Table Actions * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) @@ -1979,7 +1987,7 @@ public CloudRouterActionsSearchResponse searchRouterActions(UUID routerId, Cloud } /** - * Search actions + * Search Route Table Actions * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) @@ -2004,7 +2012,7 @@ public ApiResponse searchRouterActionsWithHttp } /** - * Search actions (asynchronously) + * Search Route Table Actions (asynchronously) * This API provides capability to refresh route table and bgp session summary information * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) 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 c1999ae..0cc4417 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 @@ -84,12 +84,14 @@ public void setCustomBaseUrl(String customBaseUrl) { /** * Build call for createConnection * @param connectionPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details + @@ -97,7 +99,7 @@ public void setCustomBaseUrl(String customBaseUrl) {
Status Code Description Response Headers
200 Successful operation -
201 Accept Connection Request -
400 Bad request -
403 Forbidden -
405 Method not allowed -
*/ - public okhttp3.Call createConnectionCall(ConnectionPostRequest connectionPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createConnectionCall(ConnectionPostRequest connectionPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -122,6 +124,10 @@ public okhttp3.Call createConnectionCall(ConnectionPostRequest connectionPostReq Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (dryRun != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("dryRun", dryRun)); + } + final String[] localVarAccepts = { "application/json" }; @@ -143,13 +149,13 @@ public okhttp3.Call createConnectionCall(ConnectionPostRequest connectionPostReq } @SuppressWarnings("rawtypes") - private okhttp3.Call createConnectionValidateBeforeCall(ConnectionPostRequest connectionPostRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createConnectionValidateBeforeCall(ConnectionPostRequest connectionPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { // verify the required parameter 'connectionPostRequest' is set if (connectionPostRequest == null) { throw new ApiException("Missing the required parameter 'connectionPostRequest' when calling createConnection(Async)"); } - return createConnectionCall(connectionPostRequest, _callback); + return createConnectionCall(connectionPostRequest, dryRun, _callback); } @@ -157,11 +163,13 @@ private okhttp3.Call createConnectionValidateBeforeCall(ConnectionPostRequest co * Create Connection * This API provides capability to create user's virtual connection * @param connectionPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return Connection * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details + @@ -169,8 +177,8 @@ private okhttp3.Call createConnectionValidateBeforeCall(ConnectionPostRequest co
Status Code Description Response Headers
200 Successful operation -
201 Accept Connection Request -
400 Bad request -
403 Forbidden -
405 Method not allowed -
*/ - public Connection createConnection(ConnectionPostRequest connectionPostRequest) throws ApiException { - ApiResponse localVarResp = createConnectionWithHttpInfo(connectionPostRequest); + public Connection createConnection(ConnectionPostRequest connectionPostRequest, Boolean dryRun) throws ApiException { + ApiResponse localVarResp = createConnectionWithHttpInfo(connectionPostRequest, dryRun); return localVarResp.getData(); } @@ -178,11 +186,13 @@ public Connection createConnection(ConnectionPostRequest connectionPostRequest) * Create Connection * This API provides capability to create user's virtual connection * @param connectionPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return ApiResponse<Connection> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details + @@ -190,8 +200,8 @@ public Connection createConnection(ConnectionPostRequest connectionPostRequest)
Status Code Description Response Headers
200 Successful operation -
201 Accept Connection Request -
400 Bad request -
403 Forbidden -
405 Method not allowed -
*/ - public ApiResponse createConnectionWithHttpInfo(ConnectionPostRequest connectionPostRequest) throws ApiException { - okhttp3.Call localVarCall = createConnectionValidateBeforeCall(connectionPostRequest, null); + public ApiResponse createConnectionWithHttpInfo(ConnectionPostRequest connectionPostRequest, Boolean dryRun) throws ApiException { + okhttp3.Call localVarCall = createConnectionValidateBeforeCall(connectionPostRequest, dryRun, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -200,12 +210,14 @@ public ApiResponse createConnectionWithHttpInfo(ConnectionPostReques * Create Connection (asynchronously) * This API provides capability to create user's virtual connection * @param connectionPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @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 + @@ -213,9 +225,9 @@ public ApiResponse createConnectionWithHttpInfo(ConnectionPostReques
Status Code Description Response Headers
200 Successful operation -
201 Accept Connection Request -
400 Bad request -
403 Forbidden -
405 Method not allowed -
*/ - public okhttp3.Call createConnectionAsync(ConnectionPostRequest connectionPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createConnectionAsync(ConnectionPostRequest connectionPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = createConnectionValidateBeforeCall(connectionPostRequest, _callback); + okhttp3.Call localVarCall = createConnectionValidateBeforeCall(connectionPostRequest, dryRun, _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/MetrosApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/MetrosApi.java index 95c6664..c794276 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/MetrosApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/MetrosApi.java @@ -147,7 +147,7 @@ private okhttp3.Call getMetroByCodeValidateBeforeCall(String metroCode, final Ap /** * Get Metro by Code - * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. . + * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. * @param metroCode Metro Code (required) * @return Metro * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -167,7 +167,7 @@ public Metro getMetroByCode(String metroCode) throws ApiException { /** * Get Metro by Code - * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. . + * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. * @param metroCode Metro Code (required) * @return ApiResponse<Metro> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -188,7 +188,7 @@ public ApiResponse getMetroByCodeWithHttpInfo(String metroCode) throws Ap /** * Get Metro by Code (asynchronously) - * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. . + * GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. * @param metroCode Metro Code (required) * @param _callback The callback to be executed when the API call finishes * @return The request call diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/NetworksApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/NetworksApi.java index ded30af..735ff1c 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/NetworksApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/NetworksApi.java @@ -83,12 +83,14 @@ public void setCustomBaseUrl(String customBaseUrl) { /** * Build call for createNetwork * @param networkPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details + @@ -97,7 +99,7 @@ public void setCustomBaseUrl(String customBaseUrl) {
Status Code Description Response Headers
200 Successful operation -
202 Fabric Network Access point object -
400 Bad request -
401 Unauthorized -
500 Internal server error -
*/ - public okhttp3.Call createNetworkCall(NetworkPostRequest networkPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createNetworkCall(NetworkPostRequest networkPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -122,6 +124,10 @@ public okhttp3.Call createNetworkCall(NetworkPostRequest networkPostRequest, fin Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (dryRun != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("dryRun", dryRun)); + } + final String[] localVarAccepts = { "application/json" }; @@ -143,13 +149,13 @@ public okhttp3.Call createNetworkCall(NetworkPostRequest networkPostRequest, fin } @SuppressWarnings("rawtypes") - private okhttp3.Call createNetworkValidateBeforeCall(NetworkPostRequest networkPostRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createNetworkValidateBeforeCall(NetworkPostRequest networkPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { // verify the required parameter 'networkPostRequest' is set if (networkPostRequest == null) { throw new ApiException("Missing the required parameter 'networkPostRequest' when calling createNetwork(Async)"); } - return createNetworkCall(networkPostRequest, _callback); + return createNetworkCall(networkPostRequest, dryRun, _callback); } @@ -157,11 +163,13 @@ private okhttp3.Call createNetworkValidateBeforeCall(NetworkPostRequest networkP * Create Network * This API provides capability to create user's Fabric Network * @param networkPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return Network * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details + @@ -170,8 +178,8 @@ private okhttp3.Call createNetworkValidateBeforeCall(NetworkPostRequest networkP
Status Code Description Response Headers
200 Successful operation -
202 Fabric Network Access point object -
400 Bad request -
401 Unauthorized -
500 Internal server error -
*/ - public Network createNetwork(NetworkPostRequest networkPostRequest) throws ApiException { - ApiResponse localVarResp = createNetworkWithHttpInfo(networkPostRequest); + public Network createNetwork(NetworkPostRequest networkPostRequest, Boolean dryRun) throws ApiException { + ApiResponse localVarResp = createNetworkWithHttpInfo(networkPostRequest, dryRun); return localVarResp.getData(); } @@ -179,11 +187,13 @@ public Network createNetwork(NetworkPostRequest networkPostRequest) throws ApiEx * Create Network * This API provides capability to create user's Fabric Network * @param networkPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return ApiResponse<Network> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details + @@ -192,8 +202,8 @@ public Network createNetwork(NetworkPostRequest networkPostRequest) throws ApiEx
Status Code Description Response Headers
200 Successful operation -
202 Fabric Network Access point object -
400 Bad request -
401 Unauthorized -
500 Internal server error -
*/ - public ApiResponse createNetworkWithHttpInfo(NetworkPostRequest networkPostRequest) throws ApiException { - okhttp3.Call localVarCall = createNetworkValidateBeforeCall(networkPostRequest, null); + public ApiResponse createNetworkWithHttpInfo(NetworkPostRequest networkPostRequest, Boolean dryRun) throws ApiException { + okhttp3.Call localVarCall = createNetworkValidateBeforeCall(networkPostRequest, dryRun, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -202,12 +212,14 @@ public ApiResponse createNetworkWithHttpInfo(NetworkPostRequest network * Create Network (asynchronously) * This API provides capability to create user's Fabric Network * @param networkPostRequest (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @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 + @@ -216,9 +228,9 @@ public ApiResponse createNetworkWithHttpInfo(NetworkPostRequest network
Status Code Description Response Headers
200 Successful operation -
202 Fabric Network Access point object -
400 Bad request -
401 Unauthorized -
500 Internal server error -
*/ - public okhttp3.Call createNetworkAsync(NetworkPostRequest networkPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createNetworkAsync(NetworkPostRequest networkPostRequest, Boolean dryRun, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = createNetworkValidateBeforeCall(networkPostRequest, _callback); + okhttp3.Call localVarCall = createNetworkValidateBeforeCall(networkPostRequest, dryRun, _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/RouteAggregationRulesApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteAggregationRulesApi.java new file mode 100644 index 0000000..ce30cc8 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteAggregationRulesApi.java @@ -0,0 +1,1535 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.GetRouteAggregationRulesResponse; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesBase; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChangeData; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesData; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesPatchRequestItem; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesPostRequest; +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 RouteAggregationRulesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RouteAggregationRulesApi() { + this(Configuration.getDefaultApiClient()); + } + + public RouteAggregationRulesApi(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 createRouteAggregationRule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesBase (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 Aggregation Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationRuleCall(String routeAggregationId, RouteAggregationRulesBase routeAggregationRulesBase, 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 = routeAggregationRulesBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 createRouteAggregationRuleValidateBeforeCall(String routeAggregationId, RouteAggregationRulesBase routeAggregationRulesBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling createRouteAggregationRule(Async)"); + } + + // verify the required parameter 'routeAggregationRulesBase' is set + if (routeAggregationRulesBase == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRulesBase' when calling createRouteAggregationRule(Async)"); + } + + return createRouteAggregationRuleCall(routeAggregationId, routeAggregationRulesBase, _callback); + + } + + /** + * Create RARule + * This API provides capability to create a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesBase (required) + * @return RouteAggregationRulesData + * @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 Aggregation Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationRulesData createRouteAggregationRule(String routeAggregationId, RouteAggregationRulesBase routeAggregationRulesBase) throws ApiException { + ApiResponse localVarResp = createRouteAggregationRuleWithHttpInfo(routeAggregationId, routeAggregationRulesBase); + return localVarResp.getData(); + } + + /** + * Create RARule + * This API provides capability to create a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesBase (required) + * @return ApiResponse<RouteAggregationRulesData> + * @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 Aggregation Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createRouteAggregationRuleWithHttpInfo(String routeAggregationId, RouteAggregationRulesBase routeAggregationRulesBase) throws ApiException { + okhttp3.Call localVarCall = createRouteAggregationRuleValidateBeforeCall(routeAggregationId, routeAggregationRulesBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create RARule (asynchronously) + * This API provides capability to create a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesBase (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 Aggregation Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationRuleAsync(String routeAggregationId, RouteAggregationRulesBase routeAggregationRulesBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteAggregationRuleValidateBeforeCall(routeAggregationId, routeAggregationRulesBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createRouteAggregationRulesInBulk + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesPostRequest (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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationRulesInBulkCall(String routeAggregationId, RouteAggregationRulesPostRequest routeAggregationRulesPostRequest, 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 = routeAggregationRulesPostRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 createRouteAggregationRulesInBulkValidateBeforeCall(String routeAggregationId, RouteAggregationRulesPostRequest routeAggregationRulesPostRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling createRouteAggregationRulesInBulk(Async)"); + } + + // verify the required parameter 'routeAggregationRulesPostRequest' is set + if (routeAggregationRulesPostRequest == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRulesPostRequest' when calling createRouteAggregationRulesInBulk(Async)"); + } + + return createRouteAggregationRulesInBulkCall(routeAggregationId, routeAggregationRulesPostRequest, _callback); + + } + + /** + * Bulk RARules + * This API provides capability to create bulk route aggregation rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesPostRequest (required) + * @return GetRouteAggregationRulesResponse + * @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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public GetRouteAggregationRulesResponse createRouteAggregationRulesInBulk(String routeAggregationId, RouteAggregationRulesPostRequest routeAggregationRulesPostRequest) throws ApiException { + ApiResponse localVarResp = createRouteAggregationRulesInBulkWithHttpInfo(routeAggregationId, routeAggregationRulesPostRequest); + return localVarResp.getData(); + } + + /** + * Bulk RARules + * This API provides capability to create bulk route aggregation rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesPostRequest (required) + * @return ApiResponse<GetRouteAggregationRulesResponse> + * @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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createRouteAggregationRulesInBulkWithHttpInfo(String routeAggregationId, RouteAggregationRulesPostRequest routeAggregationRulesPostRequest) throws ApiException { + okhttp3.Call localVarCall = createRouteAggregationRulesInBulkValidateBeforeCall(routeAggregationId, routeAggregationRulesPostRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk RARules (asynchronously) + * This API provides capability to create bulk route aggregation rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesPostRequest (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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationRulesInBulkAsync(String routeAggregationId, RouteAggregationRulesPostRequest routeAggregationRulesPostRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteAggregationRulesInBulkValidateBeforeCall(routeAggregationId, routeAggregationRulesPostRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteRouteAggregationRuleByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteAggregationRuleByUuidCall(String routeAggregationId, String routeAggregationRuleId, 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/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 deleteRouteAggregationRuleByUuidValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling deleteRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling deleteRouteAggregationRuleByUuid(Async)"); + } + + return deleteRouteAggregationRuleByUuidCall(routeAggregationId, routeAggregationRuleId, _callback); + + } + + /** + * DeleteRARule + * This API provides capability to delete a Route aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @return RouteAggregationRulesData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationRulesData deleteRouteAggregationRuleByUuid(String routeAggregationId, String routeAggregationRuleId) throws ApiException { + ApiResponse localVarResp = deleteRouteAggregationRuleByUuidWithHttpInfo(routeAggregationId, routeAggregationRuleId); + return localVarResp.getData(); + } + + /** + * DeleteRARule + * This API provides capability to delete a Route aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @return ApiResponse<RouteAggregationRulesData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse deleteRouteAggregationRuleByUuidWithHttpInfo(String routeAggregationId, String routeAggregationRuleId) throws ApiException { + okhttp3.Call localVarCall = deleteRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * DeleteRARule (asynchronously) + * This API provides capability to delete a Route aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteAggregationRuleByUuidAsync(String routeAggregationId, String routeAggregationRuleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationRuleByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleByUuidCall(String routeAggregationId, String routeAggregationRuleId, 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/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 getRouteAggregationRuleByUuidValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling getRouteAggregationRuleByUuid(Async)"); + } + + return getRouteAggregationRuleByUuidCall(routeAggregationId, routeAggregationRuleId, _callback); + + } + + /** + * GetRARule By UUID + * This API provides capability to view a Route Aggregation Rule by UUID + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @return RouteAggregationRulesData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationRulesData getRouteAggregationRuleByUuid(String routeAggregationId, String routeAggregationRuleId) throws ApiException { + ApiResponse localVarResp = getRouteAggregationRuleByUuidWithHttpInfo(routeAggregationId, routeAggregationRuleId); + return localVarResp.getData(); + } + + /** + * GetRARule By UUID + * This API provides capability to view a Route Aggregation Rule by UUID + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @return ApiResponse<RouteAggregationRulesData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationRuleByUuidWithHttpInfo(String routeAggregationId, String routeAggregationRuleId) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * GetRARule By UUID (asynchronously) + * This API provides capability to view a Route Aggregation Rule by UUID + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleByUuidAsync(String routeAggregationId, String routeAggregationRuleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationRuleChangeByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param changeId Route Aggregation 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleChangeByUuidCall(String routeAggregationId, String routeAggregationRuleId, 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/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes/{changeId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 getRouteAggregationRuleChangeByUuidValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, UUID changeId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationRuleChangeByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling getRouteAggregationRuleChangeByUuid(Async)"); + } + + // verify the required parameter 'changeId' is set + if (changeId == null) { + throw new ApiException("Missing the required parameter 'changeId' when calling getRouteAggregationRuleChangeByUuid(Async)"); + } + + return getRouteAggregationRuleChangeByUuidCall(routeAggregationId, routeAggregationRuleId, changeId, _callback); + + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param changeId Route Aggregation Rule Change UUID (required) + * @return RouteAggregationRulesChangeData + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public RouteAggregationRulesChangeData getRouteAggregationRuleChangeByUuid(String routeAggregationId, String routeAggregationRuleId, UUID changeId) throws ApiException { + ApiResponse localVarResp = getRouteAggregationRuleChangeByUuidWithHttpInfo(routeAggregationId, routeAggregationRuleId, changeId); + return localVarResp.getData(); + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param changeId Route Aggregation Rule Change UUID (required) + * @return ApiResponse<RouteAggregationRulesChangeData> + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationRuleChangeByUuidWithHttpInfo(String routeAggregationId, String routeAggregationRuleId, UUID changeId) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationRuleChangeByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, 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 Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param changeId Route Aggregation 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleChangeByUuidAsync(String routeAggregationId, String routeAggregationRuleId, UUID changeId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationRuleChangeByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, changeId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationRuleChanges + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleChangesCall(String routeAggregationId, String routeAggregationRuleId, 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/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 getRouteAggregationRuleChangesValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationRuleChanges(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling getRouteAggregationRuleChanges(Async)"); + } + + return getRouteAggregationRuleChangesCall(routeAggregationId, routeAggregationRuleId, offset, limit, _callback); + + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return RouteAggregationRulesChangeDataResponse + * @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 Aggregation Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public RouteAggregationRulesChangeDataResponse getRouteAggregationRuleChanges(String routeAggregationId, String routeAggregationRuleId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteAggregationRuleChangesWithHttpInfo(routeAggregationId, routeAggregationRuleId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<RouteAggregationRulesChangeDataResponse> + * @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 Aggregation Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationRuleChangesWithHttpInfo(String routeAggregationId, String routeAggregationRuleId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationRuleChangesValidateBeforeCall(routeAggregationId, routeAggregationRuleId, 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 Aggregation Rule's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation 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 Aggregation Rule Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRuleChangesAsync(String routeAggregationId, String routeAggregationRuleId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationRuleChangesValidateBeforeCall(routeAggregationId, routeAggregationRuleId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationRules + * @param routeAggregationId Route Aggregations 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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation Rule ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRulesCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}/routeAggregationRules" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getRouteAggregationRulesValidateBeforeCall(String routeAggregationId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationRules(Async)"); + } + + return getRouteAggregationRulesCall(routeAggregationId, offset, limit, _callback); + + } + + /** + * GetRARules + * This API provides capability to get all Route Aggregations Rules for Fabric + * @param routeAggregationId Route Aggregations Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return GetRouteAggregationRulesResponse + * @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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation Rule ID Not Found -
500 Internal server error -
+ */ + public GetRouteAggregationRulesResponse getRouteAggregationRules(String routeAggregationId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteAggregationRulesWithHttpInfo(routeAggregationId, offset, limit); + return localVarResp.getData(); + } + + /** + * GetRARules + * This API provides capability to get all Route Aggregations Rules for Fabric + * @param routeAggregationId Route Aggregations Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<GetRouteAggregationRulesResponse> + * @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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation Rule ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationRulesWithHttpInfo(String routeAggregationId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationRulesValidateBeforeCall(routeAggregationId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * GetRARules (asynchronously) + * This API provides capability to get all Route Aggregations Rules for Fabric + * @param routeAggregationId Route Aggregations 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 Resource not found -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation Rule ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationRulesAsync(String routeAggregationId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationRulesValidateBeforeCall(routeAggregationId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for patchRouteAggregationRuleByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesPatchRequestItem (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteAggregationRuleByUuidCall(String routeAggregationId, String routeAggregationRuleId, List routeAggregationRulesPatchRequestItem, 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 = routeAggregationRulesPatchRequestItem; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 patchRouteAggregationRuleByUuidValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, List routeAggregationRulesPatchRequestItem, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling patchRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling patchRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRulesPatchRequestItem' is set + if (routeAggregationRulesPatchRequestItem == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRulesPatchRequestItem' when calling patchRouteAggregationRuleByUuid(Async)"); + } + + return patchRouteAggregationRuleByUuidCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem, _callback); + + } + + /** + * PatchRARule + * This API provides capability to partially update a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesPatchRequestItem (required) + * @return RouteAggregationRulesData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationRulesData patchRouteAggregationRuleByUuid(String routeAggregationId, String routeAggregationRuleId, List routeAggregationRulesPatchRequestItem) throws ApiException { + ApiResponse localVarResp = patchRouteAggregationRuleByUuidWithHttpInfo(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem); + return localVarResp.getData(); + } + + /** + * PatchRARule + * This API provides capability to partially update a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesPatchRequestItem (required) + * @return ApiResponse<RouteAggregationRulesData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse patchRouteAggregationRuleByUuidWithHttpInfo(String routeAggregationId, String routeAggregationRuleId, List routeAggregationRulesPatchRequestItem) throws ApiException { + okhttp3.Call localVarCall = patchRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * PatchRARule (asynchronously) + * This API provides capability to partially update a Route Aggregation Rule + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesPatchRequestItem (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteAggregationRuleByUuidAsync(String routeAggregationId, String routeAggregationRuleId, List routeAggregationRulesPatchRequestItem, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesPatchRequestItem, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for replaceRouteAggregationRuleByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteAggregationRuleByUuidCall(String routeAggregationId, String routeAggregationRuleId, RouteAggregationRulesBase routeAggregationRulesBase, 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 = routeAggregationRulesBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.toString())) + .replace("{" + "routeAggregationRuleId" + "}", localVarApiClient.escapeString(routeAggregationRuleId.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 replaceRouteAggregationRuleByUuidValidateBeforeCall(String routeAggregationId, String routeAggregationRuleId, RouteAggregationRulesBase routeAggregationRulesBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling replaceRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRuleId' is set + if (routeAggregationRuleId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRuleId' when calling replaceRouteAggregationRuleByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationRulesBase' is set + if (routeAggregationRulesBase == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRulesBase' when calling replaceRouteAggregationRuleByUuid(Async)"); + } + + return replaceRouteAggregationRuleByUuidCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase, _callback); + + } + + /** + * ReplaceRARule + * This API provides capability to replace a Route Aggregation Rule completely + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesBase (required) + * @return RouteAggregationRulesData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationRulesData replaceRouteAggregationRuleByUuid(String routeAggregationId, String routeAggregationRuleId, RouteAggregationRulesBase routeAggregationRulesBase) throws ApiException { + ApiResponse localVarResp = replaceRouteAggregationRuleByUuidWithHttpInfo(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase); + return localVarResp.getData(); + } + + /** + * ReplaceRARule + * This API provides capability to replace a Route Aggregation Rule completely + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesBase (required) + * @return ApiResponse<RouteAggregationRulesData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse replaceRouteAggregationRuleByUuidWithHttpInfo(String routeAggregationId, String routeAggregationRuleId, RouteAggregationRulesBase routeAggregationRulesBase) throws ApiException { + okhttp3.Call localVarCall = replaceRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * ReplaceRARule (asynchronously) + * This API provides capability to replace a Route Aggregation Rule completely + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRuleId Route Aggregation Rules Id (required) + * @param routeAggregationRulesBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call replaceRouteAggregationRuleByUuidAsync(String routeAggregationId, String routeAggregationRuleId, RouteAggregationRulesBase routeAggregationRulesBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = replaceRouteAggregationRuleByUuidValidateBeforeCall(routeAggregationId, routeAggregationRuleId, routeAggregationRulesBase, _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/RouteAggregationsApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteAggregationsApi.java new file mode 100644 index 0000000..4e440ca --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteAggregationsApi.java @@ -0,0 +1,1907 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.ConnectionRouteAggregationData; +import com.equinix.openapi.fabric.v4.model.Error; +import com.equinix.openapi.fabric.v4.model.GetAllConnectionRouteAggregationsResponse; +import com.equinix.openapi.fabric.v4.model.GetRouteAggregationGetConnectionsResponse; +import com.equinix.openapi.fabric.v4.model.RouteAggregationChangeData; +import com.equinix.openapi.fabric.v4.model.RouteAggregationChangeDataResponse; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsBase; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsData; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsPatchRequestItem; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchBase; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchResponse; +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 RouteAggregationsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public RouteAggregationsApi() { + this(Configuration.getDefaultApiClient()); + } + + public RouteAggregationsApi(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 attachConnectionRouteAggregation + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call attachConnectionRouteAggregationCall(String routeAggregationId, 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}/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call attachConnectionRouteAggregationValidateBeforeCall(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling attachConnectionRouteAggregation(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling attachConnectionRouteAggregation(Async)"); + } + + return attachConnectionRouteAggregationCall(routeAggregationId, connectionId, _callback); + + } + + /** + * Attach Aggregation + * This API provides capability to attach a Route Aggregation to a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ConnectionRouteAggregationData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteAggregationData attachConnectionRouteAggregation(String routeAggregationId, String connectionId) throws ApiException { + ApiResponse localVarResp = attachConnectionRouteAggregationWithHttpInfo(routeAggregationId, connectionId); + return localVarResp.getData(); + } + + /** + * Attach Aggregation + * This API provides capability to attach a Route Aggregation to a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ApiResponse<ConnectionRouteAggregationData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse attachConnectionRouteAggregationWithHttpInfo(String routeAggregationId, String connectionId) throws ApiException { + okhttp3.Call localVarCall = attachConnectionRouteAggregationValidateBeforeCall(routeAggregationId, connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Attach Aggregation (asynchronously) + * This API provides capability to attach a Route Aggregation to a Connection + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call attachConnectionRouteAggregationAsync(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = attachConnectionRouteAggregationValidateBeforeCall(routeAggregationId, connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createRouteAggregation + * @param routeAggregationsBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationCall(RouteAggregationsBase routeAggregationsBase, 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 = routeAggregationsBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations"; + + 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 createRouteAggregationValidateBeforeCall(RouteAggregationsBase routeAggregationsBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationsBase' is set + if (routeAggregationsBase == null) { + throw new ApiException("Missing the required parameter 'routeAggregationsBase' when calling createRouteAggregation(Async)"); + } + + return createRouteAggregationCall(routeAggregationsBase, _callback); + + } + + /** + * Create Aggregations + * This API provides capability to create a Route Aggregation + * @param routeAggregationsBase (required) + * @return RouteAggregationsData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationsData createRouteAggregation(RouteAggregationsBase routeAggregationsBase) throws ApiException { + ApiResponse localVarResp = createRouteAggregationWithHttpInfo(routeAggregationsBase); + return localVarResp.getData(); + } + + /** + * Create Aggregations + * This API provides capability to create a Route Aggregation + * @param routeAggregationsBase (required) + * @return ApiResponse<RouteAggregationsData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createRouteAggregationWithHttpInfo(RouteAggregationsBase routeAggregationsBase) throws ApiException { + okhttp3.Call localVarCall = createRouteAggregationValidateBeforeCall(routeAggregationsBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create Aggregations (asynchronously) + * This API provides capability to create a Route Aggregation + * @param routeAggregationsBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createRouteAggregationAsync(RouteAggregationsBase routeAggregationsBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createRouteAggregationValidateBeforeCall(routeAggregationsBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteRouteAggregationByUuid + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteAggregationByUuidCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 deleteRouteAggregationByUuidValidateBeforeCall(String routeAggregationId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling deleteRouteAggregationByUuid(Async)"); + } + + return deleteRouteAggregationByUuidCall(routeAggregationId, _callback); + + } + + /** + * Delete Aggregation + * This API provides capability to delete a Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @return RouteAggregationsData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationsData deleteRouteAggregationByUuid(String routeAggregationId) throws ApiException { + ApiResponse localVarResp = deleteRouteAggregationByUuidWithHttpInfo(routeAggregationId); + return localVarResp.getData(); + } + + /** + * Delete Aggregation + * This API provides capability to delete a Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @return ApiResponse<RouteAggregationsData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse deleteRouteAggregationByUuidWithHttpInfo(String routeAggregationId) throws ApiException { + okhttp3.Call localVarCall = deleteRouteAggregationByUuidValidateBeforeCall(routeAggregationId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete Aggregation (asynchronously) + * This API provides capability to delete a Route Aggregation + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call deleteRouteAggregationByUuidAsync(String routeAggregationId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteRouteAggregationByUuidValidateBeforeCall(routeAggregationId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for detachConnectionRouteAggregation + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call detachConnectionRouteAggregationCall(String routeAggregationId, 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}/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 detachConnectionRouteAggregationValidateBeforeCall(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling detachConnectionRouteAggregation(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling detachConnectionRouteAggregation(Async)"); + } + + return detachConnectionRouteAggregationCall(routeAggregationId, connectionId, _callback); + + } + + /** + * Detach Aggregation + * This API provides capability to detach a Route Aggregation from a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ConnectionRouteAggregationData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteAggregationData detachConnectionRouteAggregation(String routeAggregationId, String connectionId) throws ApiException { + ApiResponse localVarResp = detachConnectionRouteAggregationWithHttpInfo(routeAggregationId, connectionId); + return localVarResp.getData(); + } + + /** + * Detach Aggregation + * This API provides capability to detach a Route Aggregation from a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ApiResponse<ConnectionRouteAggregationData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse detachConnectionRouteAggregationWithHttpInfo(String routeAggregationId, String connectionId) throws ApiException { + okhttp3.Call localVarCall = detachConnectionRouteAggregationValidateBeforeCall(routeAggregationId, connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Detach Aggregation (asynchronously) + * This API provides capability to detach a Route Aggregation from a Connection + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call detachConnectionRouteAggregationAsync(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = detachConnectionRouteAggregationValidateBeforeCall(routeAggregationId, connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionRouteAggregationByUuid + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteAggregationByUuidCall(String routeAggregationId, 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}/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getConnectionRouteAggregationByUuidValidateBeforeCall(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getConnectionRouteAggregationByUuid(Async)"); + } + + // verify the required parameter 'connectionId' is set + if (connectionId == null) { + throw new ApiException("Missing the required parameter 'connectionId' when calling getConnectionRouteAggregationByUuid(Async)"); + } + + return getConnectionRouteAggregationByUuidCall(routeAggregationId, connectionId, _callback); + + } + + /** + * Get Aggregation + * This API provides capability to view a specific Route Aggregation attached to a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ConnectionRouteAggregationData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ConnectionRouteAggregationData getConnectionRouteAggregationByUuid(String routeAggregationId, String connectionId) throws ApiException { + ApiResponse localVarResp = getConnectionRouteAggregationByUuidWithHttpInfo(routeAggregationId, connectionId); + return localVarResp.getData(); + } + + /** + * Get Aggregation + * This API provides capability to view a specific Route Aggregation attached to a Connection + * @param routeAggregationId Route Aggregations Id (required) + * @param connectionId Connection Id (required) + * @return ApiResponse<ConnectionRouteAggregationData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getConnectionRouteAggregationByUuidWithHttpInfo(String routeAggregationId, String connectionId) throws ApiException { + okhttp3.Call localVarCall = getConnectionRouteAggregationByUuidValidateBeforeCall(routeAggregationId, connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Aggregation (asynchronously) + * This API provides capability to view a specific Route Aggregation attached to a Connection + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteAggregationByUuidAsync(String routeAggregationId, String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionRouteAggregationByUuidValidateBeforeCall(routeAggregationId, connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getConnectionRouteAggregations + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteAggregationsCall(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}/routeAggregations" + .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 getConnectionRouteAggregationsValidateBeforeCall(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 getConnectionRouteAggregations(Async)"); + } + + return getConnectionRouteAggregationsCall(connectionId, _callback); + + } + + /** + * Get All Aggregations + * This API provides capability to view all Route Aggregations attached to a Connection + * @param connectionId Connection Id (required) + * @return GetAllConnectionRouteAggregationsResponse + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public GetAllConnectionRouteAggregationsResponse getConnectionRouteAggregations(String connectionId) throws ApiException { + ApiResponse localVarResp = getConnectionRouteAggregationsWithHttpInfo(connectionId); + return localVarResp.getData(); + } + + /** + * Get All Aggregations + * This API provides capability to view all Route Aggregations attached to a Connection + * @param connectionId Connection Id (required) + * @return ApiResponse<GetAllConnectionRouteAggregationsResponse> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getConnectionRouteAggregationsWithHttpInfo(String connectionId) throws ApiException { + okhttp3.Call localVarCall = getConnectionRouteAggregationsValidateBeforeCall(connectionId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All Aggregations (asynchronously) + * This API provides capability to view all Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getConnectionRouteAggregationsAsync(String connectionId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getConnectionRouteAggregationsValidateBeforeCall(connectionId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationByUuid + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationByUuidCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getRouteAggregationByUuidValidateBeforeCall(String routeAggregationId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationByUuid(Async)"); + } + + return getRouteAggregationByUuidCall(routeAggregationId, _callback); + + } + + /** + * Get Aggregation + * This API provides capability to view a Route Aggregation by UUID + * @param routeAggregationId Route Aggregations Id (required) + * @return RouteAggregationsData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationsData getRouteAggregationByUuid(String routeAggregationId) throws ApiException { + ApiResponse localVarResp = getRouteAggregationByUuidWithHttpInfo(routeAggregationId); + return localVarResp.getData(); + } + + /** + * Get Aggregation + * This API provides capability to view a Route Aggregation by UUID + * @param routeAggregationId Route Aggregations Id (required) + * @return ApiResponse<RouteAggregationsData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationByUuidWithHttpInfo(String routeAggregationId) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationByUuidValidateBeforeCall(routeAggregationId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Aggregation (asynchronously) + * This API provides capability to view a Route Aggregation by UUID + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationByUuidAsync(String routeAggregationId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationByUuidValidateBeforeCall(routeAggregationId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationChangeByUuid + * @param routeAggregationId Route Aggregations 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationChangeByUuidCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}/changes/{changeId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getRouteAggregationChangeByUuidValidateBeforeCall(String routeAggregationId, UUID changeId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationChangeByUuid(Async)"); + } + + // verify the required parameter 'changeId' is set + if (changeId == null) { + throw new ApiException("Missing the required parameter 'changeId' when calling getRouteAggregationChangeByUuid(Async)"); + } + + return getRouteAggregationChangeByUuidCall(routeAggregationId, changeId, _callback); + + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Aggregation's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @return RouteAggregationChangeData + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public RouteAggregationChangeData getRouteAggregationChangeByUuid(String routeAggregationId, UUID changeId) throws ApiException { + ApiResponse localVarResp = getRouteAggregationChangeByUuidWithHttpInfo(routeAggregationId, changeId); + return localVarResp.getData(); + } + + /** + * Get Change By ID + * This API provides capability to retrieve a specific Route Aggregation's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param changeId Routing Protocol Change UUID (required) + * @return ApiResponse<RouteAggregationChangeData> + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationChangeByUuidWithHttpInfo(String routeAggregationId, UUID changeId) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationChangeByUuidValidateBeforeCall(routeAggregationId, 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 Aggregation's Changes + * @param routeAggregationId Route Aggregations 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationChangeByUuidAsync(String routeAggregationId, UUID changeId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationChangeByUuidValidateBeforeCall(routeAggregationId, changeId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationChanges + * @param routeAggregationId Route Aggregations 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationChangesCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}/changes" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getRouteAggregationChangesValidateBeforeCall(String routeAggregationId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationChanges(Async)"); + } + + return getRouteAggregationChangesCall(routeAggregationId, offset, limit, _callback); + + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Aggregation's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return RouteAggregationChangeDataResponse + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public RouteAggregationChangeDataResponse getRouteAggregationChanges(String routeAggregationId, Integer offset, Integer limit) throws ApiException { + ApiResponse localVarResp = getRouteAggregationChangesWithHttpInfo(routeAggregationId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get All Changes + * This API provides capability to retrieve all of a Route Aggregation's Changes + * @param routeAggregationId Route Aggregations Id (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<RouteAggregationChangeDataResponse> + * @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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationChangesWithHttpInfo(String routeAggregationId, Integer offset, Integer limit) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationChangesValidateBeforeCall(routeAggregationId, 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 Aggregation's Changes + * @param routeAggregationId Route Aggregations 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 Aggregation Change object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Aggregation ID Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationChangesAsync(String routeAggregationId, Integer offset, Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationChangesValidateBeforeCall(routeAggregationId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getRouteAggregationConnections + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationConnectionsCall(String routeAggregationId, 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/routeAggregations/{routeAggregationId}/connections" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 getRouteAggregationConnectionsValidateBeforeCall(String routeAggregationId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling getRouteAggregationConnections(Async)"); + } + + return getRouteAggregationConnectionsCall(routeAggregationId, _callback); + + } + + /** + * Get All Connections on Route Aggregation + * This API provides capability to view all Connections using the Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @return GetRouteAggregationGetConnectionsResponse + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public GetRouteAggregationGetConnectionsResponse getRouteAggregationConnections(String routeAggregationId) throws ApiException { + ApiResponse localVarResp = getRouteAggregationConnectionsWithHttpInfo(routeAggregationId); + return localVarResp.getData(); + } + + /** + * Get All Connections on Route Aggregation + * This API provides capability to view all Connections using the Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @return ApiResponse<GetRouteAggregationGetConnectionsResponse> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse getRouteAggregationConnectionsWithHttpInfo(String routeAggregationId) throws ApiException { + okhttp3.Call localVarCall = getRouteAggregationConnectionsValidateBeforeCall(routeAggregationId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All Connections on Route Aggregation (asynchronously) + * This API provides capability to view all Connections using the Route Aggregation + * @param routeAggregationId Route Aggregations 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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call getRouteAggregationConnectionsAsync(String routeAggregationId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getRouteAggregationConnectionsValidateBeforeCall(routeAggregationId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for patchRouteAggregationByUuid + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationsPatchRequestItem (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteAggregationByUuidCall(String routeAggregationId, List routeAggregationsPatchRequestItem, 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 = routeAggregationsPatchRequestItem; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}" + .replace("{" + "routeAggregationId" + "}", localVarApiClient.escapeString(routeAggregationId.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 patchRouteAggregationByUuidValidateBeforeCall(String routeAggregationId, List routeAggregationsPatchRequestItem, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationId' is set + if (routeAggregationId == null) { + throw new ApiException("Missing the required parameter 'routeAggregationId' when calling patchRouteAggregationByUuid(Async)"); + } + + // verify the required parameter 'routeAggregationsPatchRequestItem' is set + if (routeAggregationsPatchRequestItem == null) { + throw new ApiException("Missing the required parameter 'routeAggregationsPatchRequestItem' when calling patchRouteAggregationByUuid(Async)"); + } + + return patchRouteAggregationByUuidCall(routeAggregationId, routeAggregationsPatchRequestItem, _callback); + + } + + /** + * Patch Aggregation + * This API provides capability to partially update a Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationsPatchRequestItem (required) + * @return RouteAggregationsData + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationsData patchRouteAggregationByUuid(String routeAggregationId, List routeAggregationsPatchRequestItem) throws ApiException { + ApiResponse localVarResp = patchRouteAggregationByUuidWithHttpInfo(routeAggregationId, routeAggregationsPatchRequestItem); + return localVarResp.getData(); + } + + /** + * Patch Aggregation + * This API provides capability to partially update a Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationsPatchRequestItem (required) + * @return ApiResponse<RouteAggregationsData> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse patchRouteAggregationByUuidWithHttpInfo(String routeAggregationId, List routeAggregationsPatchRequestItem) throws ApiException { + okhttp3.Call localVarCall = patchRouteAggregationByUuidValidateBeforeCall(routeAggregationId, routeAggregationsPatchRequestItem, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Patch Aggregation (asynchronously) + * This API provides capability to partially update a Route Aggregation + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationsPatchRequestItem (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call patchRouteAggregationByUuidAsync(String routeAggregationId, List routeAggregationsPatchRequestItem, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchRouteAggregationByUuidValidateBeforeCall(routeAggregationId, routeAggregationsPatchRequestItem, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for searchRouteAggregations + * @param routeAggregationsSearchBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchRouteAggregationsCall(RouteAggregationsSearchBase routeAggregationsSearchBase, 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 = routeAggregationsSearchBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/search"; + + 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 searchRouteAggregationsValidateBeforeCall(RouteAggregationsSearchBase routeAggregationsSearchBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeAggregationsSearchBase' is set + if (routeAggregationsSearchBase == null) { + throw new ApiException("Missing the required parameter 'routeAggregationsSearchBase' when calling searchRouteAggregations(Async)"); + } + + return searchRouteAggregationsCall(routeAggregationsSearchBase, _callback); + + } + + /** + * Search Aggregations + * This API provides capability to search Route Aggregations + * @param routeAggregationsSearchBase (required) + * @return RouteAggregationsSearchResponse + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteAggregationsSearchResponse searchRouteAggregations(RouteAggregationsSearchBase routeAggregationsSearchBase) throws ApiException { + ApiResponse localVarResp = searchRouteAggregationsWithHttpInfo(routeAggregationsSearchBase); + return localVarResp.getData(); + } + + /** + * Search Aggregations + * This API provides capability to search Route Aggregations + * @param routeAggregationsSearchBase (required) + * @return ApiResponse<RouteAggregationsSearchResponse> + * @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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse searchRouteAggregationsWithHttpInfo(RouteAggregationsSearchBase routeAggregationsSearchBase) throws ApiException { + okhttp3.Call localVarCall = searchRouteAggregationsValidateBeforeCall(routeAggregationsSearchBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search Aggregations (asynchronously) + * This API provides capability to search Route Aggregations + * @param routeAggregationsSearchBase (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 Aggregation ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchRouteAggregationsAsync(RouteAggregationsSearchBase routeAggregationsSearchBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRouteAggregationsValidateBeforeCall(routeAggregationsSearchBase, _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/RouteFilterRulesApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/RouteFilterRulesApi.java index 4e3ba82..a752e79 100644 --- 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 @@ -161,7 +161,7 @@ private okhttp3.Call createRouteFilterRuleValidateBeforeCall(String routeFilterI } /** - * Create RFRule + * Create Route Filter Rule * This API provides capability to create a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesBase (required) @@ -185,7 +185,7 @@ public RouteFilterRulesData createRouteFilterRule(String routeFilterId, RouteFil } /** - * Create RFRule + * Create Route Filter Rule * This API provides capability to create a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesBase (required) @@ -210,7 +210,7 @@ public ApiResponse createRouteFilterRuleWithHttpInfo(Strin } /** - * Create RFRule (asynchronously) + * Create Route Filter Rule (asynchronously) * This API provides capability to create a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesBase (required) @@ -318,7 +318,7 @@ private okhttp3.Call createRouteFilterRulesInBulkValidateBeforeCall(String route } /** - * Bulk RFRules + * Bulk Create Route Filter Rules * This API provides capability to create bulk route filter rules * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesPostRequest (required) @@ -342,7 +342,7 @@ public GetRouteFilterRulesResponse createRouteFilterRulesInBulk(String routeFilt } /** - * Bulk RFRules + * Bulk Create Route Filter Rules * This API provides capability to create bulk route filter rules * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesPostRequest (required) @@ -367,7 +367,7 @@ public ApiResponse createRouteFilterRulesInBulkWith } /** - * Bulk RFRules (asynchronously) + * Bulk Create Route Filter Rules (asynchronously) * This API provides capability to create bulk route filter rules * @param routeFilterId Route Filters Id (required) * @param routeFilterRulesPostRequest (required) @@ -475,7 +475,7 @@ private okhttp3.Call deleteRouteFilterRuleByUuidValidateBeforeCall(String routeF } /** - * DeleteRFRule + * Delete Route Filter Rule * This API provides capability to delete a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -499,7 +499,7 @@ public RouteFilterRulesData deleteRouteFilterRuleByUuid(String routeFilterId, St } /** - * DeleteRFRule + * Delete Route Filter Rule * This API provides capability to delete a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -524,7 +524,7 @@ public ApiResponse deleteRouteFilterRuleByUuidWithHttpInfo } /** - * DeleteRFRule (asynchronously) + * Delete Route Filter Rule (asynchronously) * This API provides capability to delete a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -632,7 +632,7 @@ private okhttp3.Call getRouteFilterRuleByUuidValidateBeforeCall(String routeFilt } /** - * GetRFRule By UUID + * Get Route Filter Rule 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) @@ -656,7 +656,7 @@ public RouteFilterRulesData getRouteFilterRuleByUuid(String routeFilterId, Strin } /** - * GetRFRule By UUID + * Get Route Filter Rule 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) @@ -681,7 +681,7 @@ public ApiResponse getRouteFilterRuleByUuidWithHttpInfo(St } /** - * GetRFRule By UUID (asynchronously) + * Get Route Filter Rule 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) @@ -1123,7 +1123,7 @@ private okhttp3.Call getRouteFilterRulesValidateBeforeCall(String routeFilterId, } /** - * GetRFRules + * Get Route Filter Rules * This API provides capability to get all Route Filters Rules for Fabric * @param routeFilterId Route Filters Id (required) * @param offset offset (optional) @@ -1147,7 +1147,7 @@ public GetRouteFilterRulesResponse getRouteFilterRules(String routeFilterId, Int } /** - * GetRFRules + * Get Route Filter Rules * This API provides capability to get all Route Filters Rules for Fabric * @param routeFilterId Route Filters Id (required) * @param offset offset (optional) @@ -1172,7 +1172,7 @@ public ApiResponse getRouteFilterRulesWithHttpInfo( } /** - * GetRFRules (asynchronously) + * Get Route Filter Rules (asynchronously) * This API provides capability to get all Route Filters Rules for Fabric * @param routeFilterId Route Filters Id (required) * @param offset offset (optional) @@ -1287,7 +1287,7 @@ private okhttp3.Call patchRouteFilterRuleByUuidValidateBeforeCall(String routeFi } /** - * PatchRFilterRule + * Patch Route Filter Rule * This API provides capability to partially update a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -1312,7 +1312,7 @@ public RouteFilterRulesData patchRouteFilterRuleByUuid(String routeFilterId, Str } /** - * PatchRFilterRule + * Patch Route Filter Rule * This API provides capability to partially update a Route Filter Rule * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -1338,7 +1338,7 @@ public ApiResponse patchRouteFilterRuleByUuidWithHttpInfo( } /** - * PatchRFilterRule (asynchronously) + * Patch Route Filter Rule (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) @@ -1454,7 +1454,7 @@ private okhttp3.Call replaceRouteFilterRuleByUuidValidateBeforeCall(String route } /** - * ReplaceRFRule + * Replace Route Filter Rule * This API provides capability to replace a Route Filter Rule completely * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -1479,7 +1479,7 @@ public RouteFilterRulesData replaceRouteFilterRuleByUuid(String routeFilterId, S } /** - * ReplaceRFRule + * Replace Route Filter Rule * This API provides capability to replace a Route Filter Rule completely * @param routeFilterId Route Filters Id (required) * @param routeFilterRuleId Route Filter Rules Id (required) @@ -1505,7 +1505,7 @@ public ApiResponse replaceRouteFilterRuleByUuidWithHttpInf } /** - * ReplaceRFRule (asynchronously) + * Replace Route Filter Rule (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) 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 index 81ac396..9110407 100644 --- 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 @@ -933,7 +933,7 @@ private okhttp3.Call getConnectionRouteFiltersValidateBeforeCall(String connecti } /** - * Get All RouteFilters + * Get All Route Filters * This API provides capability to view all Route Filters attached to a Connection * @param connectionId Connection Id (required) * @return GetAllConnectionRouteFiltersResponse @@ -956,7 +956,7 @@ public GetAllConnectionRouteFiltersResponse getConnectionRouteFilters(String con } /** - * Get All RouteFilters + * Get All Route Filters * This API provides capability to view all Route Filters attached to a Connection * @param connectionId Connection Id (required) * @return ApiResponse<GetAllConnectionRouteFiltersResponse> @@ -980,7 +980,7 @@ public ApiResponse getConnectionRouteFilte } /** - * Get All RouteFilters (asynchronously) + * Get All Route Filters (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 @@ -1080,7 +1080,7 @@ private okhttp3.Call getRouteFilterByUuidValidateBeforeCall(String routeFilterId } /** - * Get Filter By UUID + * Get Route Filter By UUID * This API provides capability to view a Route Filter by UUID * @param routeFilterId Route Filters Id (required) * @return RouteFiltersData @@ -1103,7 +1103,7 @@ public RouteFiltersData getRouteFilterByUuid(String routeFilterId) throws ApiExc } /** - * Get Filter By UUID + * Get Route Filter By UUID * This API provides capability to view a Route Filter by UUID * @param routeFilterId Route Filters Id (required) * @return ApiResponse<RouteFiltersData> @@ -1127,7 +1127,7 @@ public ApiResponse getRouteFilterByUuidWithHttpInfo(String rou } /** - * Get Filter By UUID (asynchronously) + * Get Route 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 @@ -1539,7 +1539,7 @@ private okhttp3.Call getRouteFilterConnectionsValidateBeforeCall(String routeFil } /** - * Get Connections + * Get All Connections on Route Filter * This API provides capability to view all Connections using the Route Filter * @param routeFilterId Route Filters Id (required) * @return GetRouteFilterGetConnectionsResponse @@ -1562,7 +1562,7 @@ public GetRouteFilterGetConnectionsResponse getRouteFilterConnections(String rou } /** - * Get Connections + * Get All Connections on Route Filter * This API provides capability to view all Connections using the Route Filter * @param routeFilterId Route Filters Id (required) * @return ApiResponse<GetRouteFilterGetConnectionsResponse> @@ -1586,7 +1586,7 @@ public ApiResponse getRouteFilterConnectio } /** - * Get Connections (asynchronously) + * Get All Connections on Route Filter (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 diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApi.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApi.java index 9721930..388e396 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApi.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/api/ServiceTokensApi.java @@ -81,19 +81,21 @@ public void setCustomBaseUrl(String customBaseUrl) { /** * Build call for createServiceToken * @param serviceToken (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @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 -
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
*/ - public okhttp3.Call createServiceTokenCall(ServiceToken serviceToken, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createServiceTokenCall(ServiceToken serviceToken, Boolean dryRun, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -118,6 +120,10 @@ public okhttp3.Call createServiceTokenCall(ServiceToken serviceToken, final ApiC Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (dryRun != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("dryRun", dryRun)); + } + final String[] localVarAccepts = { "application/json" }; @@ -139,13 +145,13 @@ public okhttp3.Call createServiceTokenCall(ServiceToken serviceToken, final ApiC } @SuppressWarnings("rawtypes") - private okhttp3.Call createServiceTokenValidateBeforeCall(ServiceToken serviceToken, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createServiceTokenValidateBeforeCall(ServiceToken serviceToken, Boolean dryRun, final ApiCallback _callback) throws ApiException { // verify the required parameter 'serviceToken' is set if (serviceToken == null) { throw new ApiException("Missing the required parameter 'serviceToken' when calling createServiceToken(Async)"); } - return createServiceTokenCall(serviceToken, _callback); + return createServiceTokenCall(serviceToken, dryRun, _callback); } @@ -153,19 +159,21 @@ private okhttp3.Call createServiceTokenValidateBeforeCall(ServiceToken serviceTo * Create Service Token * Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services. * @param serviceToken (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return ServiceToken * @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 -
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
*/ - public ServiceToken createServiceToken(ServiceToken serviceToken) throws ApiException { - ApiResponse localVarResp = createServiceTokenWithHttpInfo(serviceToken); + public ServiceToken createServiceToken(ServiceToken serviceToken, Boolean dryRun) throws ApiException { + ApiResponse localVarResp = createServiceTokenWithHttpInfo(serviceToken, dryRun); return localVarResp.getData(); } @@ -173,19 +181,21 @@ public ServiceToken createServiceToken(ServiceToken serviceToken) throws ApiExce * Create Service Token * Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services. * @param serviceToken (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @return ApiResponse<ServiceToken> * @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 -
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
*/ - public ApiResponse createServiceTokenWithHttpInfo(ServiceToken serviceToken) throws ApiException { - okhttp3.Call localVarCall = createServiceTokenValidateBeforeCall(serviceToken, null); + public ApiResponse createServiceTokenWithHttpInfo(ServiceToken serviceToken, Boolean dryRun) throws ApiException { + okhttp3.Call localVarCall = createServiceTokenValidateBeforeCall(serviceToken, dryRun, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -194,21 +204,23 @@ public ApiResponse createServiceTokenWithHttpInfo(ServiceToken ser * Create Service Token (asynchronously) * Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services. * @param serviceToken (required) + * @param dryRun option to verify that API calls will succeed (optional, default to false) * @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 -
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
*/ - public okhttp3.Call createServiceTokenAsync(ServiceToken serviceToken, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createServiceTokenAsync(ServiceToken serviceToken, Boolean dryRun, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = createServiceTokenValidateBeforeCall(serviceToken, _callback); + okhttp3.Call localVarCall = createServiceTokenValidateBeforeCall(serviceToken, dryRun, _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/model/AccessPointSelector.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointSelector.java index 53f6a1f..5c0efbb 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointSelector.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/AccessPointSelector.java @@ -104,6 +104,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TYPE) private TypeEnum type; + public static final String SERIALIZED_NAME_HIDE_ASSET_INFO = "hideAssetInfo"; + @SerializedName(SERIALIZED_NAME_HIDE_ASSET_INFO) + private Boolean hideAssetInfo; + public static final String SERIALIZED_NAME_PORT = "port"; @SerializedName(SERIALIZED_NAME_PORT) private SimplifiedMetadataEntity port; @@ -149,6 +153,30 @@ public void setType(TypeEnum type) { } + public AccessPointSelector hideAssetInfo(Boolean hideAssetInfo) { + + this.hideAssetInfo = hideAssetInfo; + return this; + } + + /** + * Get hideAssetInfo + * @return hideAssetInfo + * @deprecated + **/ + @Deprecated + @javax.annotation.Nullable + + public Boolean getHideAssetInfo() { + return hideAssetInfo; + } + + + public void setHideAssetInfo(Boolean hideAssetInfo) { + this.hideAssetInfo = hideAssetInfo; + } + + public AccessPointSelector port(SimplifiedMetadataEntity port) { this.port = port; @@ -314,6 +342,7 @@ public boolean equals(Object o) { } AccessPointSelector accessPointSelector = (AccessPointSelector) o; return Objects.equals(this.type, accessPointSelector.type) && + Objects.equals(this.hideAssetInfo, accessPointSelector.hideAssetInfo) && Objects.equals(this.port, accessPointSelector.port) && Objects.equals(this.linkProtocol, accessPointSelector.linkProtocol) && Objects.equals(this.virtualDevice, accessPointSelector.virtualDevice) && @@ -324,7 +353,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(type, port, linkProtocol, virtualDevice, _interface, network, additionalProperties); + return Objects.hash(type, hideAssetInfo, port, linkProtocol, virtualDevice, _interface, network, additionalProperties); } @Override @@ -332,6 +361,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AccessPointSelector {\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" hideAssetInfo: ").append(toIndentedString(hideAssetInfo)).append("\n"); sb.append(" port: ").append(toIndentedString(port)).append("\n"); sb.append(" linkProtocol: ").append(toIndentedString(linkProtocol)).append("\n"); sb.append(" virtualDevice: ").append(toIndentedString(virtualDevice)).append("\n"); @@ -361,6 +391,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("type"); + openapiFields.add("hideAssetInfo"); openapiFields.add("port"); openapiFields.add("linkProtocol"); openapiFields.add("virtualDevice"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Asset.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Asset.java index e18a2ae..9a2a886 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Asset.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Asset.java @@ -33,7 +33,11 @@ public enum Asset { ROUTERS("routers"), - METROS("metros"); + METROS("metros"), + + ORGANIZATIONS("organizations"), + + PROJECTS("projects"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouter.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouter.java index 03f923c..8f29553 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouter.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouter.java @@ -80,26 +80,10 @@ public class CloudRouter { @SerializedName(SERIALIZED_NAME_EQUINIX_ASN) private Long equinixAsn; - public static final String SERIALIZED_NAME_BGP_IPV4_ROUTES_COUNT = "bgpIpv4RoutesCount"; - @SerializedName(SERIALIZED_NAME_BGP_IPV4_ROUTES_COUNT) - private Integer bgpIpv4RoutesCount; - - public static final String SERIALIZED_NAME_BGP_IPV6_ROUTES_COUNT = "bgpIpv6RoutesCount"; - @SerializedName(SERIALIZED_NAME_BGP_IPV6_ROUTES_COUNT) - private Integer bgpIpv6RoutesCount; - public static final String SERIALIZED_NAME_CONNECTIONS_COUNT = "connectionsCount"; @SerializedName(SERIALIZED_NAME_CONNECTIONS_COUNT) private Integer connectionsCount; - public static final String SERIALIZED_NAME_DISTINCT_IPV4_PREFIXES_COUNT = "distinctIpv4PrefixesCount"; - @SerializedName(SERIALIZED_NAME_DISTINCT_IPV4_PREFIXES_COUNT) - private Integer distinctIpv4PrefixesCount; - - public static final String SERIALIZED_NAME_DISTINCT_IPV6_PREFIXES_COUNT = "distinctIpv6PrefixesCount"; - @SerializedName(SERIALIZED_NAME_DISTINCT_IPV6_PREFIXES_COUNT) - private Integer distinctIpv6PrefixesCount; - public static final String SERIALIZED_NAME_MARKETPLACE_SUBSCRIPTION = "marketplaceSubscription"; @SerializedName(SERIALIZED_NAME_MARKETPLACE_SUBSCRIPTION) private MarketplaceSubscription marketplaceSubscription; @@ -297,52 +281,6 @@ public void setEquinixAsn(Long equinixAsn) { } - public CloudRouter bgpIpv4RoutesCount(Integer bgpIpv4RoutesCount) { - - this.bgpIpv4RoutesCount = bgpIpv4RoutesCount; - return this; - } - - /** - * Access point used and maximum number of IPv4 BGP routes - * minimum: 0 - * @return bgpIpv4RoutesCount - **/ - @javax.annotation.Nullable - - public Integer getBgpIpv4RoutesCount() { - return bgpIpv4RoutesCount; - } - - - public void setBgpIpv4RoutesCount(Integer bgpIpv4RoutesCount) { - this.bgpIpv4RoutesCount = bgpIpv4RoutesCount; - } - - - public CloudRouter bgpIpv6RoutesCount(Integer bgpIpv6RoutesCount) { - - this.bgpIpv6RoutesCount = bgpIpv6RoutesCount; - return this; - } - - /** - * Access point used and maximum number of IPv6 BGP routes - * minimum: 0 - * @return bgpIpv6RoutesCount - **/ - @javax.annotation.Nullable - - public Integer getBgpIpv6RoutesCount() { - return bgpIpv6RoutesCount; - } - - - public void setBgpIpv6RoutesCount(Integer bgpIpv6RoutesCount) { - this.bgpIpv6RoutesCount = bgpIpv6RoutesCount; - } - - public CloudRouter connectionsCount(Integer connectionsCount) { this.connectionsCount = connectionsCount; @@ -366,52 +304,6 @@ public void setConnectionsCount(Integer connectionsCount) { } - public CloudRouter distinctIpv4PrefixesCount(Integer distinctIpv4PrefixesCount) { - - this.distinctIpv4PrefixesCount = distinctIpv4PrefixesCount; - return this; - } - - /** - * Number of distinct ipv4 routes - * minimum: 0 - * @return distinctIpv4PrefixesCount - **/ - @javax.annotation.Nullable - - public Integer getDistinctIpv4PrefixesCount() { - return distinctIpv4PrefixesCount; - } - - - public void setDistinctIpv4PrefixesCount(Integer distinctIpv4PrefixesCount) { - this.distinctIpv4PrefixesCount = distinctIpv4PrefixesCount; - } - - - public CloudRouter distinctIpv6PrefixesCount(Integer distinctIpv6PrefixesCount) { - - this.distinctIpv6PrefixesCount = distinctIpv6PrefixesCount; - return this; - } - - /** - * Number of distinct ipv6 routes - * minimum: 0 - * @return distinctIpv6PrefixesCount - **/ - @javax.annotation.Nullable - - public Integer getDistinctIpv6PrefixesCount() { - return distinctIpv6PrefixesCount; - } - - - public void setDistinctIpv6PrefixesCount(Integer distinctIpv6PrefixesCount) { - this.distinctIpv6PrefixesCount = distinctIpv6PrefixesCount; - } - - public CloudRouter marketplaceSubscription(MarketplaceSubscription marketplaceSubscription) { this.marketplaceSubscription = marketplaceSubscription; @@ -699,11 +591,7 @@ public boolean equals(Object o) { Objects.equals(this.name, cloudRouter.name) && Objects.equals(this.state, cloudRouter.state) && Objects.equals(this.equinixAsn, cloudRouter.equinixAsn) && - Objects.equals(this.bgpIpv4RoutesCount, cloudRouter.bgpIpv4RoutesCount) && - Objects.equals(this.bgpIpv6RoutesCount, cloudRouter.bgpIpv6RoutesCount) && Objects.equals(this.connectionsCount, cloudRouter.connectionsCount) && - Objects.equals(this.distinctIpv4PrefixesCount, cloudRouter.distinctIpv4PrefixesCount) && - Objects.equals(this.distinctIpv6PrefixesCount, cloudRouter.distinctIpv6PrefixesCount) && Objects.equals(this.marketplaceSubscription, cloudRouter.marketplaceSubscription) && Objects.equals(this.changeLog, cloudRouter.changeLog) && Objects.equals(this.change, cloudRouter.change) && @@ -719,7 +607,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, uuid, name, state, equinixAsn, bgpIpv4RoutesCount, bgpIpv6RoutesCount, connectionsCount, distinctIpv4PrefixesCount, distinctIpv6PrefixesCount, marketplaceSubscription, changeLog, change, type, location, _package, order, project, account, notifications, additionalProperties); + return Objects.hash(href, uuid, name, state, equinixAsn, connectionsCount, marketplaceSubscription, changeLog, change, type, location, _package, order, project, account, notifications, additionalProperties); } @Override @@ -731,11 +619,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" state: ").append(toIndentedString(state)).append("\n"); sb.append(" equinixAsn: ").append(toIndentedString(equinixAsn)).append("\n"); - sb.append(" bgpIpv4RoutesCount: ").append(toIndentedString(bgpIpv4RoutesCount)).append("\n"); - sb.append(" bgpIpv6RoutesCount: ").append(toIndentedString(bgpIpv6RoutesCount)).append("\n"); sb.append(" connectionsCount: ").append(toIndentedString(connectionsCount)).append("\n"); - sb.append(" distinctIpv4PrefixesCount: ").append(toIndentedString(distinctIpv4PrefixesCount)).append("\n"); - sb.append(" distinctIpv6PrefixesCount: ").append(toIndentedString(distinctIpv6PrefixesCount)).append("\n"); sb.append(" marketplaceSubscription: ").append(toIndentedString(marketplaceSubscription)).append("\n"); sb.append(" changeLog: ").append(toIndentedString(changeLog)).append("\n"); sb.append(" change: ").append(toIndentedString(change)).append("\n"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionRequest.java index 45b3d79..d8d8f79 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionRequest.java @@ -44,7 +44,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Cloud Router action request + * Cloud router action request */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class CloudRouterActionRequest { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionResponse.java index 8fcc277..ca2e192 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionResponse.java @@ -48,7 +48,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Cloud Router actions response object + * Cloud router actions response object */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class CloudRouterActionResponse { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionState.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionState.java index af88863..6a0e649 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionState.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionState.java @@ -22,7 +22,7 @@ import com.google.gson.stream.JsonWriter; /** - * Cloud Router action state + * Cloud router action state */ @JsonAdapter(CloudRouterActionState.Adapter.class) public enum CloudRouterActionState { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionType.java index eaf9c07..63a394f 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterActionType.java @@ -22,7 +22,7 @@ import com.google.gson.stream.JsonWriter; /** - * Cloud Router action type + * Cloud router action type */ @JsonAdapter(CloudRouterActionType.Adapter.class) public enum CloudRouterActionType { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackage.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackage.java index 86091d6..27f541f 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackage.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/CloudRouterPackage.java @@ -118,79 +118,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TOTAL_I_PV6_ROUTES_MAX) private Integer totalIPv6RoutesMax; - public static final String SERIALIZED_NAME_STATIC_I_PV4_ROUTES_MAX = "staticIPv4RoutesMax"; - @SerializedName(SERIALIZED_NAME_STATIC_I_PV4_ROUTES_MAX) - private Integer staticIPv4RoutesMax; - - public static final String SERIALIZED_NAME_STATIC_I_PV6_ROUTES_MAX = "staticIPv6RoutesMax"; - @SerializedName(SERIALIZED_NAME_STATIC_I_PV6_ROUTES_MAX) - private Integer staticIPv6RoutesMax; - - public static final String SERIALIZED_NAME_NACLS_MAX = "naclsMax"; - @SerializedName(SERIALIZED_NAME_NACLS_MAX) - private Integer naclsMax; - - public static final String SERIALIZED_NAME_NACL_RULES_MAX = "naclRulesMax"; - @SerializedName(SERIALIZED_NAME_NACL_RULES_MAX) - private Integer naclRulesMax; - - public static final String SERIALIZED_NAME_HA_SUPPORTED = "haSupported"; - @SerializedName(SERIALIZED_NAME_HA_SUPPORTED) - private Boolean haSupported; - public static final String SERIALIZED_NAME_ROUTE_FILTER_SUPPORTED = "routeFilterSupported"; @SerializedName(SERIALIZED_NAME_ROUTE_FILTER_SUPPORTED) private Boolean routeFilterSupported; - /** - * CloudRouter package NAT supported type - */ - @JsonAdapter(NatTypeEnum.Adapter.class) - public enum NatTypeEnum { - STATIC_NAT("STATIC_NAT"); - - private String value; - - NatTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static NatTypeEnum fromValue(String value) { - for (NatTypeEnum b : NatTypeEnum.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 NatTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public NatTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return NatTypeEnum.fromValue(value); - } - } - } - - public static final String SERIALIZED_NAME_NAT_TYPE = "natType"; - @SerializedName(SERIALIZED_NAME_NAT_TYPE) - private NatTypeEnum natType; - public static final String SERIALIZED_NAME_VC_COUNT_MAX = "vcCountMax"; @SerializedName(SERIALIZED_NAME_VC_COUNT_MAX) private Integer vcCountMax; @@ -343,120 +274,6 @@ public void setTotalIPv6RoutesMax(Integer totalIPv6RoutesMax) { } - public CloudRouterPackage staticIPv4RoutesMax(Integer staticIPv4RoutesMax) { - - this.staticIPv4RoutesMax = staticIPv4RoutesMax; - return this; - } - - /** - * CloudRouter package static IPv4 routes limit - * minimum: 0 - * @return staticIPv4RoutesMax - **/ - @javax.annotation.Nullable - - public Integer getStaticIPv4RoutesMax() { - return staticIPv4RoutesMax; - } - - - public void setStaticIPv4RoutesMax(Integer staticIPv4RoutesMax) { - this.staticIPv4RoutesMax = staticIPv4RoutesMax; - } - - - public CloudRouterPackage staticIPv6RoutesMax(Integer staticIPv6RoutesMax) { - - this.staticIPv6RoutesMax = staticIPv6RoutesMax; - return this; - } - - /** - * CloudRouter package static IPv6 routes limit - * minimum: 0 - * @return staticIPv6RoutesMax - **/ - @javax.annotation.Nullable - - public Integer getStaticIPv6RoutesMax() { - return staticIPv6RoutesMax; - } - - - public void setStaticIPv6RoutesMax(Integer staticIPv6RoutesMax) { - this.staticIPv6RoutesMax = staticIPv6RoutesMax; - } - - - public CloudRouterPackage naclsMax(Integer naclsMax) { - - this.naclsMax = naclsMax; - return this; - } - - /** - * CloudRouter package NACLs limit - * minimum: 0 - * @return naclsMax - **/ - @javax.annotation.Nullable - - public Integer getNaclsMax() { - return naclsMax; - } - - - public void setNaclsMax(Integer naclsMax) { - this.naclsMax = naclsMax; - } - - - public CloudRouterPackage naclRulesMax(Integer naclRulesMax) { - - this.naclRulesMax = naclRulesMax; - return this; - } - - /** - * CloudRouter package NACLs rules limit - * minimum: 0 - * @return naclRulesMax - **/ - @javax.annotation.Nullable - - public Integer getNaclRulesMax() { - return naclRulesMax; - } - - - public void setNaclRulesMax(Integer naclRulesMax) { - this.naclRulesMax = naclRulesMax; - } - - - public CloudRouterPackage haSupported(Boolean haSupported) { - - this.haSupported = haSupported; - return this; - } - - /** - * CloudRouter package high-available configuration support - * @return haSupported - **/ - @javax.annotation.Nullable - - public Boolean getHaSupported() { - return haSupported; - } - - - public void setHaSupported(Boolean haSupported) { - this.haSupported = haSupported; - } - - public CloudRouterPackage routeFilterSupported(Boolean routeFilterSupported) { this.routeFilterSupported = routeFilterSupported; @@ -479,28 +296,6 @@ public void setRouteFilterSupported(Boolean routeFilterSupported) { } - public CloudRouterPackage natType(NatTypeEnum natType) { - - this.natType = natType; - return this; - } - - /** - * CloudRouter package NAT supported type - * @return natType - **/ - @javax.annotation.Nullable - - public NatTypeEnum getNatType() { - return natType; - } - - - public void setNatType(NatTypeEnum natType) { - this.natType = natType; - } - - public CloudRouterPackage vcCountMax(Integer vcCountMax) { this.vcCountMax = vcCountMax; @@ -652,13 +447,7 @@ public boolean equals(Object o) { Objects.equals(this.description, cloudRouterPackage.description) && Objects.equals(this.totalIPv4RoutesMax, cloudRouterPackage.totalIPv4RoutesMax) && Objects.equals(this.totalIPv6RoutesMax, cloudRouterPackage.totalIPv6RoutesMax) && - Objects.equals(this.staticIPv4RoutesMax, cloudRouterPackage.staticIPv4RoutesMax) && - Objects.equals(this.staticIPv6RoutesMax, cloudRouterPackage.staticIPv6RoutesMax) && - Objects.equals(this.naclsMax, cloudRouterPackage.naclsMax) && - Objects.equals(this.naclRulesMax, cloudRouterPackage.naclRulesMax) && - Objects.equals(this.haSupported, cloudRouterPackage.haSupported) && Objects.equals(this.routeFilterSupported, cloudRouterPackage.routeFilterSupported) && - Objects.equals(this.natType, cloudRouterPackage.natType) && Objects.equals(this.vcCountMax, cloudRouterPackage.vcCountMax) && Objects.equals(this.crCountMax, cloudRouterPackage.crCountMax) && Objects.equals(this.vcBandwidthMax, cloudRouterPackage.vcBandwidthMax) && @@ -668,7 +457,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, type, code, description, totalIPv4RoutesMax, totalIPv6RoutesMax, staticIPv4RoutesMax, staticIPv6RoutesMax, naclsMax, naclRulesMax, haSupported, routeFilterSupported, natType, vcCountMax, crCountMax, vcBandwidthMax, changeLog, additionalProperties); + return Objects.hash(href, type, code, description, totalIPv4RoutesMax, totalIPv6RoutesMax, routeFilterSupported, vcCountMax, crCountMax, vcBandwidthMax, changeLog, additionalProperties); } @Override @@ -681,13 +470,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" totalIPv4RoutesMax: ").append(toIndentedString(totalIPv4RoutesMax)).append("\n"); sb.append(" totalIPv6RoutesMax: ").append(toIndentedString(totalIPv6RoutesMax)).append("\n"); - sb.append(" staticIPv4RoutesMax: ").append(toIndentedString(staticIPv4RoutesMax)).append("\n"); - sb.append(" staticIPv6RoutesMax: ").append(toIndentedString(staticIPv6RoutesMax)).append("\n"); - sb.append(" naclsMax: ").append(toIndentedString(naclsMax)).append("\n"); - sb.append(" naclRulesMax: ").append(toIndentedString(naclRulesMax)).append("\n"); - sb.append(" haSupported: ").append(toIndentedString(haSupported)).append("\n"); sb.append(" routeFilterSupported: ").append(toIndentedString(routeFilterSupported)).append("\n"); - sb.append(" natType: ").append(toIndentedString(natType)).append("\n"); sb.append(" vcCountMax: ").append(toIndentedString(vcCountMax)).append("\n"); sb.append(" crCountMax: ").append(toIndentedString(crCountMax)).append("\n"); sb.append(" vcBandwidthMax: ").append(toIndentedString(vcBandwidthMax)).append("\n"); @@ -721,13 +504,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("totalIPv4RoutesMax"); openapiFields.add("totalIPv6RoutesMax"); - openapiFields.add("staticIPv4RoutesMax"); - openapiFields.add("staticIPv6RoutesMax"); - openapiFields.add("naclsMax"); - openapiFields.add("naclRulesMax"); - openapiFields.add("haSupported"); openapiFields.add("routeFilterSupported"); - openapiFields.add("natType"); openapiFields.add("vcCountMax"); openapiFields.add("crCountMax"); openapiFields.add("vcBandwidthMax"); @@ -758,9 +535,6 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { 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("natType") != null && !jsonObj.get("natType").isJsonNull()) && !jsonObj.get("natType").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `natType` to be a primitive type in the JSON string but got `%s`", jsonObj.get("natType").toString())); - } // validate the optional field `changeLog` if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { PackageChangeLog.validateJsonObject(jsonObj.getAsJsonObject("changeLog")); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequest.java index e65b3a2..e19618e 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionPostRequest.java @@ -17,6 +17,7 @@ import com.equinix.openapi.fabric.v4.model.ConnectionSide; import com.equinix.openapi.fabric.v4.model.ConnectionSideAdditionalInfo; import com.equinix.openapi.fabric.v4.model.ConnectionType; +import com.equinix.openapi.fabric.v4.model.EndCustomer; import com.equinix.openapi.fabric.v4.model.GeoScopeType; import com.equinix.openapi.fabric.v4.model.MarketplaceSubscription; import com.equinix.openapi.fabric.v4.model.Order; @@ -105,6 +106,10 @@ public class ConnectionPostRequest { @SerializedName(SERIALIZED_NAME_MARKETPLACE_SUBSCRIPTION) private MarketplaceSubscription marketplaceSubscription; + public static final String SERIALIZED_NAME_END_CUSTOMER = "endCustomer"; + @SerializedName(SERIALIZED_NAME_END_CUSTOMER) + private EndCustomer endCustomer; + public ConnectionPostRequest() { } @@ -386,6 +391,28 @@ public void setMarketplaceSubscription(MarketplaceSubscription marketplaceSubscr this.marketplaceSubscription = marketplaceSubscription; } + + public ConnectionPostRequest endCustomer(EndCustomer endCustomer) { + + this.endCustomer = endCustomer; + return this; + } + + /** + * Get endCustomer + * @return endCustomer + **/ + @javax.annotation.Nullable + + public EndCustomer getEndCustomer() { + return endCustomer; + } + + + public void setEndCustomer(EndCustomer endCustomer) { + this.endCustomer = endCustomer; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -452,13 +479,14 @@ public boolean equals(Object o) { Objects.equals(this.zSide, connectionPostRequest.zSide) && Objects.equals(this.project, connectionPostRequest.project) && Objects.equals(this.additionalInfo, connectionPostRequest.additionalInfo) && - Objects.equals(this.marketplaceSubscription, connectionPostRequest.marketplaceSubscription)&& + Objects.equals(this.marketplaceSubscription, connectionPostRequest.marketplaceSubscription) && + Objects.equals(this.endCustomer, connectionPostRequest.endCustomer)&& Objects.equals(this.additionalProperties, connectionPostRequest.additionalProperties); } @Override public int hashCode() { - return Objects.hash(type, name, order, notifications, bandwidth, geoScope, redundancy, aSide, zSide, project, additionalInfo, marketplaceSubscription, additionalProperties); + return Objects.hash(type, name, order, notifications, bandwidth, geoScope, redundancy, aSide, zSide, project, additionalInfo, marketplaceSubscription, endCustomer, additionalProperties); } @Override @@ -477,6 +505,7 @@ public String toString() { sb.append(" project: ").append(toIndentedString(project)).append("\n"); sb.append(" additionalInfo: ").append(toIndentedString(additionalInfo)).append("\n"); sb.append(" marketplaceSubscription: ").append(toIndentedString(marketplaceSubscription)).append("\n"); + sb.append(" endCustomer: ").append(toIndentedString(endCustomer)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -512,6 +541,7 @@ private String toIndentedString(Object o) { openapiFields.add("project"); openapiFields.add("additionalInfo"); openapiFields.add("marketplaceSubscription"); + openapiFields.add("endCustomer"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -589,6 +619,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("marketplaceSubscription") != null && !jsonObj.get("marketplaceSubscription").isJsonNull()) { MarketplaceSubscription.validateJsonObject(jsonObj.getAsJsonObject("marketplaceSubscription")); } + // validate the optional field `endCustomer` + if (jsonObj.get("endCustomer") != null && !jsonObj.get("endCustomer").isJsonNull()) { + EndCustomer.validateJsonObject(jsonObj.getAsJsonObject("endCustomer")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteAggregationData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteAggregationData.java new file mode 100644 index 0000000..4e53fc9 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteAggregationData.java @@ -0,0 +1,476 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * ConnectionRouteAggregationData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ConnectionRouteAggregationData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Aggregation type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + BGP_IPV4_PREFIX_AGGREGATION("BGP_IPv4_PREFIX_AGGREGATION"); + + 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"), + + PENDING_BGP_CONFIGURATION("PENDING_BGP_CONFIGURATION"); + + 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; + + public ConnectionRouteAggregationData() { + } + + public ConnectionRouteAggregationData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Aggregation URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public ConnectionRouteAggregationData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Aggregation type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public ConnectionRouteAggregationData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Aggregation identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public ConnectionRouteAggregationData 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; + } + + /** + * 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 ConnectionRouteAggregationData instance itself + */ + public ConnectionRouteAggregationData 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; + } + ConnectionRouteAggregationData connectionRouteAggregationData = (ConnectionRouteAggregationData) o; + return Objects.equals(this.href, connectionRouteAggregationData.href) && + Objects.equals(this.type, connectionRouteAggregationData.type) && + Objects.equals(this.uuid, connectionRouteAggregationData.uuid) && + Objects.equals(this.attachmentStatus, connectionRouteAggregationData.attachmentStatus)&& + Objects.equals(this.additionalProperties, connectionRouteAggregationData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, attachmentStatus, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ConnectionRouteAggregationData {\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(" 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"); + + // 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 ConnectionRouteAggregationData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!ConnectionRouteAggregationData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ConnectionRouteAggregationData is not found in the empty JSON string", ConnectionRouteAggregationData.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())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ConnectionRouteAggregationData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ConnectionRouteAggregationData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ConnectionRouteAggregationData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ConnectionRouteAggregationData 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 ConnectionRouteAggregationData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + ConnectionRouteAggregationData 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 ConnectionRouteAggregationData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ConnectionRouteAggregationData + * @throws IOException if the JSON string is invalid with respect to ConnectionRouteAggregationData + */ + public static ConnectionRouteAggregationData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ConnectionRouteAggregationData.class); + } + + /** + * Convert an instance of ConnectionRouteAggregationData 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/ConnectionRouteFilterData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteFilterData.java index 749454f..dc531b3 100644 --- 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 @@ -53,7 +53,7 @@ public class ConnectionRouteFilterData { private URI href; /** - * Route Filter type + * Route filter type */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -227,7 +227,7 @@ public ConnectionRouteFilterData href(URI href) { } /** - * Route Filter URI + * Route filter URI * @return href **/ @javax.annotation.Nullable @@ -249,7 +249,7 @@ public ConnectionRouteFilterData type(TypeEnum type) { } /** - * Route Filter type + * Route filter type * @return type **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteTableEntry.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteTableEntry.java index ee19eff..38c07e9 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteTableEntry.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ConnectionRouteTableEntry.java @@ -48,7 +48,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Adv/Rec Route table entry object + * Advertised and received route table entry object */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class ConnectionRouteTableEntry { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/EndCustomer.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/EndCustomer.java new file mode 100644 index 0000000..60aab90 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/EndCustomer.java @@ -0,0 +1,339 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * EndCustomer + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class EndCustomer { + public static final String SERIALIZED_NAME_IS_DISCLOSED = "isDisclosed"; + @SerializedName(SERIALIZED_NAME_IS_DISCLOSED) + private Boolean isDisclosed = false; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_MDM_ID = "mdmId"; + @SerializedName(SERIALIZED_NAME_MDM_ID) + private String mdmId; + + public EndCustomer() { + } + + public EndCustomer isDisclosed(Boolean isDisclosed) { + + this.isDisclosed = isDisclosed; + return this; + } + + /** + * Indicate if endCustomer info should be disclosed or not + * @return isDisclosed + **/ + @javax.annotation.Nullable + + public Boolean getIsDisclosed() { + return isDisclosed; + } + + + public void setIsDisclosed(Boolean isDisclosed) { + this.isDisclosed = isDisclosed; + } + + + public EndCustomer 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 EndCustomer mdmId(String mdmId) { + + this.mdmId = mdmId; + return this; + } + + /** + * Get mdmId + * @return mdmId + **/ + @javax.annotation.Nullable + + public String getMdmId() { + return mdmId; + } + + + public void setMdmId(String mdmId) { + this.mdmId = mdmId; + } + + /** + * 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 EndCustomer instance itself + */ + public EndCustomer 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; + } + EndCustomer endCustomer = (EndCustomer) o; + return Objects.equals(this.isDisclosed, endCustomer.isDisclosed) && + Objects.equals(this.name, endCustomer.name) && + Objects.equals(this.mdmId, endCustomer.mdmId)&& + Objects.equals(this.additionalProperties, endCustomer.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(isDisclosed, name, mdmId, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EndCustomer {\n"); + sb.append(" isDisclosed: ").append(toIndentedString(isDisclosed)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" mdmId: ").append(toIndentedString(mdmId)).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("isDisclosed"); + openapiFields.add("name"); + openapiFields.add("mdmId"); + + // 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 EndCustomer + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!EndCustomer.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in EndCustomer is not found in the empty JSON string", EndCustomer.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("mdmId") != null && !jsonObj.get("mdmId").isJsonNull()) && !jsonObj.get("mdmId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `mdmId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("mdmId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EndCustomer.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EndCustomer' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(EndCustomer.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, EndCustomer 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 EndCustomer read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + EndCustomer 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 EndCustomer given an JSON string + * + * @param jsonString JSON string + * @return An instance of EndCustomer + * @throws IOException if the JSON string is invalid with respect to EndCustomer + */ + public static EndCustomer fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EndCustomer.class); + } + + /** + * Convert an instance of EndCustomer 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/GeoScopeType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GeoScopeType.java index 3a9791c..1549fa7 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GeoScopeType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GeoScopeType.java @@ -29,7 +29,9 @@ public enum GeoScopeType { CANADA("CANADA"), - CONUS("CONUS"); + CONUS("CONUS"), + + JAPAN("JAPAN"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteAggregationsResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteAggregationsResponse.java new file mode 100644 index 0000000..d8afa00 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetAllConnectionRouteAggregationsResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.ConnectionRouteAggregationData; +import com.equinix.openapi.fabric.v4.model.Pagination; +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; + +/** + * GetAllConnectionRouteAggregationsResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class GetAllConnectionRouteAggregationsResponse { + 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 GetAllConnectionRouteAggregationsResponse() { + } + + public GetAllConnectionRouteAggregationsResponse 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 GetAllConnectionRouteAggregationsResponse data(List data) { + + this.data = data; + return this; + } + + public GetAllConnectionRouteAggregationsResponse addDataItem(ConnectionRouteAggregationData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of Route Aggregations attached to a Connection + * @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 GetAllConnectionRouteAggregationsResponse instance itself + */ + public GetAllConnectionRouteAggregationsResponse 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; + } + GetAllConnectionRouteAggregationsResponse getAllConnectionRouteAggregationsResponse = (GetAllConnectionRouteAggregationsResponse) o; + return Objects.equals(this.pagination, getAllConnectionRouteAggregationsResponse.pagination) && + Objects.equals(this.data, getAllConnectionRouteAggregationsResponse.data)&& + Objects.equals(this.additionalProperties, getAllConnectionRouteAggregationsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetAllConnectionRouteAggregationsResponse {\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 GetAllConnectionRouteAggregationsResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!GetAllConnectionRouteAggregationsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetAllConnectionRouteAggregationsResponse is not found in the empty JSON string", GetAllConnectionRouteAggregationsResponse.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++) { + ConnectionRouteAggregationData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetAllConnectionRouteAggregationsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetAllConnectionRouteAggregationsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetAllConnectionRouteAggregationsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetAllConnectionRouteAggregationsResponse 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 GetAllConnectionRouteAggregationsResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + GetAllConnectionRouteAggregationsResponse 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 GetAllConnectionRouteAggregationsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetAllConnectionRouteAggregationsResponse + * @throws IOException if the JSON string is invalid with respect to GetAllConnectionRouteAggregationsResponse + */ + public static GetAllConnectionRouteAggregationsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetAllConnectionRouteAggregationsResponse.class); + } + + /** + * Convert an instance of GetAllConnectionRouteAggregationsResponse 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/GetRouteAggregationGetConnectionsResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationGetConnectionsResponse.java new file mode 100644 index 0000000..2e2c35c --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationGetConnectionsResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationConnectionsData; +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; + +/** + * GetRouteAggregationGetConnectionsResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class GetRouteAggregationGetConnectionsResponse { + 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 GetRouteAggregationGetConnectionsResponse() { + } + + public GetRouteAggregationGetConnectionsResponse 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 GetRouteAggregationGetConnectionsResponse data(List data) { + + this.data = data; + return this; + } + + public GetRouteAggregationGetConnectionsResponse addDataItem(RouteAggregationConnectionsData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of Connections using a Route Aggregation + * @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 GetRouteAggregationGetConnectionsResponse instance itself + */ + public GetRouteAggregationGetConnectionsResponse 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; + } + GetRouteAggregationGetConnectionsResponse getRouteAggregationGetConnectionsResponse = (GetRouteAggregationGetConnectionsResponse) o; + return Objects.equals(this.pagination, getRouteAggregationGetConnectionsResponse.pagination) && + Objects.equals(this.data, getRouteAggregationGetConnectionsResponse.data)&& + Objects.equals(this.additionalProperties, getRouteAggregationGetConnectionsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetRouteAggregationGetConnectionsResponse {\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 GetRouteAggregationGetConnectionsResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!GetRouteAggregationGetConnectionsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetRouteAggregationGetConnectionsResponse is not found in the empty JSON string", GetRouteAggregationGetConnectionsResponse.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++) { + RouteAggregationConnectionsData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetRouteAggregationGetConnectionsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetRouteAggregationGetConnectionsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetRouteAggregationGetConnectionsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetRouteAggregationGetConnectionsResponse 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 GetRouteAggregationGetConnectionsResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + GetRouteAggregationGetConnectionsResponse 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 GetRouteAggregationGetConnectionsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetRouteAggregationGetConnectionsResponse + * @throws IOException if the JSON string is invalid with respect to GetRouteAggregationGetConnectionsResponse + */ + public static GetRouteAggregationGetConnectionsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetRouteAggregationGetConnectionsResponse.class); + } + + /** + * Convert an instance of GetRouteAggregationGetConnectionsResponse 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/GetRouteAggregationRulesResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationRulesResponse.java new file mode 100644 index 0000000..a560e2b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/GetRouteAggregationRulesResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRulesData; +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; + +/** + * GetRouteAggregationRulesResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class GetRouteAggregationRulesResponse { + 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 GetRouteAggregationRulesResponse() { + } + + public GetRouteAggregationRulesResponse 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 GetRouteAggregationRulesResponse data(List data) { + + this.data = data; + return this; + } + + public GetRouteAggregationRulesResponse addDataItem(RouteAggregationRulesData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of Route Aggregation 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 GetRouteAggregationRulesResponse instance itself + */ + public GetRouteAggregationRulesResponse 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; + } + GetRouteAggregationRulesResponse getRouteAggregationRulesResponse = (GetRouteAggregationRulesResponse) o; + return Objects.equals(this.pagination, getRouteAggregationRulesResponse.pagination) && + Objects.equals(this.data, getRouteAggregationRulesResponse.data)&& + Objects.equals(this.additionalProperties, getRouteAggregationRulesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetRouteAggregationRulesResponse {\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 GetRouteAggregationRulesResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!GetRouteAggregationRulesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetRouteAggregationRulesResponse is not found in the empty JSON string", GetRouteAggregationRulesResponse.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++) { + RouteAggregationRulesData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetRouteAggregationRulesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetRouteAggregationRulesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetRouteAggregationRulesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetRouteAggregationRulesResponse 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 GetRouteAggregationRulesResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + GetRouteAggregationRulesResponse 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 GetRouteAggregationRulesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetRouteAggregationRulesResponse + * @throws IOException if the JSON string is invalid with respect to GetRouteAggregationRulesResponse + */ + public static GetRouteAggregationRulesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetRouteAggregationRulesResponse.class); + } + + /** + * Convert an instance of GetRouteAggregationRulesResponse 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/MarketplaceSubscription.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/MarketplaceSubscription.java index 5a49239..b97d19b 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/MarketplaceSubscription.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/MarketplaceSubscription.java @@ -56,7 +56,11 @@ public class MarketplaceSubscription { */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { - AWS_MARKETPLACE_SUBSCRIPTION("AWS_MARKETPLACE_SUBSCRIPTION"); + AWS_MARKETPLACE_SUBSCRIPTION("AWS_MARKETPLACE_SUBSCRIPTION"), + + GCP_MARKETPLACE_SUBSCRIPTION("GCP_MARKETPLACE_SUBSCRIPTION"), + + AZURE_MARKETPLACE_SUBSCRIPTION("AZURE_MARKETPLACE_SUBSCRIPTION"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Md5.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Md5.java index 7ff4b96..bb70063 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Md5.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Md5.java @@ -139,7 +139,7 @@ public Md5 keyNumber(Integer keyNumber) { /** * The authentication Key ID. * minimum: 1 - * maximum: 65534 + * maximum: 65535 * @return keyNumber **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Operation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Operation.java index a28b947..99709b2 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Operation.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Operation.java @@ -64,7 +64,7 @@ public Operation bgpIpv4RoutesCount(Integer bgpIpv4RoutesCount) { } /** - * IPV4 Route Count + * IPV4 route count * @return bgpIpv4RoutesCount **/ @javax.annotation.Nullable @@ -86,7 +86,7 @@ public Operation bgpIpv6RoutesCount(Integer bgpIpv6RoutesCount) { } /** - * IPV6 Route Count + * IPV6 route count * @return bgpIpv6RoutesCount **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Port.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Port.java index 40ca90f..1274604 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Port.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Port.java @@ -14,6 +14,7 @@ import java.util.Objects; import java.util.Arrays; import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.EndCustomer; import com.equinix.openapi.fabric.v4.model.ModelPackage; import com.equinix.openapi.fabric.v4.model.PhysicalPort; import com.equinix.openapi.fabric.v4.model.PortAdditionalInfo; @@ -418,6 +419,10 @@ public ServiceTypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_ADDITIONAL_INFO) private List additionalInfo = new ArrayList<>(); + public static final String SERIALIZED_NAME_END_CUSTOMER = "endCustomer"; + @SerializedName(SERIALIZED_NAME_END_CUSTOMER) + private EndCustomer endCustomer; + public static final String SERIALIZED_NAME_PHYSICAL_PORTS = "physicalPorts"; @SerializedName(SERIALIZED_NAME_PHYSICAL_PORTS) private List physicalPorts = new ArrayList<>(); @@ -1289,6 +1294,28 @@ public void setAdditionalInfo(List additionalInfo) { } + public Port endCustomer(EndCustomer endCustomer) { + + this.endCustomer = endCustomer; + return this; + } + + /** + * Get endCustomer + * @return endCustomer + **/ + @javax.annotation.Nullable + + public EndCustomer getEndCustomer() { + return endCustomer; + } + + + public void setEndCustomer(EndCustomer endCustomer) { + this.endCustomer = endCustomer; + } + + public Port physicalPorts(List physicalPorts) { this.physicalPorts = physicalPorts; @@ -1441,6 +1468,7 @@ public boolean equals(Object o) { Objects.equals(this.physicalPortQuantity, port.physicalPortQuantity) && Objects.equals(this.notifications, port.notifications) && Objects.equals(this.additionalInfo, port.additionalInfo) && + Objects.equals(this.endCustomer, port.endCustomer) && Objects.equals(this.physicalPorts, port.physicalPorts) && Objects.equals(this.loas, port.loas)&& Objects.equals(this.additionalProperties, port.additionalProperties); @@ -1448,7 +1476,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, type, id, uuid, name, description, physicalPortsSpeed, connectionsCount, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, operation, account, changeLog, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, physicalPorts, loas, additionalProperties); + return Objects.hash(href, type, id, uuid, name, description, physicalPortsSpeed, connectionsCount, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, operation, account, changeLog, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, endCustomer, physicalPorts, loas, additionalProperties); } @Override @@ -1493,6 +1521,7 @@ public String toString() { sb.append(" physicalPortQuantity: ").append(toIndentedString(physicalPortQuantity)).append("\n"); sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); sb.append(" additionalInfo: ").append(toIndentedString(additionalInfo)).append("\n"); + sb.append(" endCustomer: ").append(toIndentedString(endCustomer)).append("\n"); sb.append(" physicalPorts: ").append(toIndentedString(physicalPorts)).append("\n"); sb.append(" loas: ").append(toIndentedString(loas)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -1556,6 +1585,7 @@ private String toIndentedString(Object o) { openapiFields.add("physicalPortQuantity"); openapiFields.add("notifications"); openapiFields.add("additionalInfo"); + openapiFields.add("endCustomer"); openapiFields.add("physicalPorts"); openapiFields.add("loas"); @@ -1689,6 +1719,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { }; } } + // validate the optional field `endCustomer` + if (jsonObj.get("endCustomer") != null && !jsonObj.get("endCustomer").isJsonNull()) { + EndCustomer.validateJsonObject(jsonObj.getAsJsonObject("endCustomer")); + } if (jsonObj.get("physicalPorts") != null && !jsonObj.get("physicalPorts").isJsonNull()) { JsonArray jsonArrayphysicalPorts = jsonObj.getAsJsonArray("physicalPorts"); if (jsonArrayphysicalPorts != null) { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PortRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PortRequest.java index 109cc55..b8bbc79 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PortRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PortRequest.java @@ -14,6 +14,7 @@ import java.util.Objects; import java.util.Arrays; import com.equinix.openapi.fabric.v4.model.Changelog; +import com.equinix.openapi.fabric.v4.model.EndCustomer; import com.equinix.openapi.fabric.v4.model.ModelPackage; import com.equinix.openapi.fabric.v4.model.PhysicalPort; import com.equinix.openapi.fabric.v4.model.PortAdditionalInfo; @@ -418,6 +419,10 @@ public ServiceTypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_ADDITIONAL_INFO) private List additionalInfo = new ArrayList<>(); + public static final String SERIALIZED_NAME_END_CUSTOMER = "endCustomer"; + @SerializedName(SERIALIZED_NAME_END_CUSTOMER) + private EndCustomer endCustomer; + public static final String SERIALIZED_NAME_PHYSICAL_PORTS = "physicalPorts"; @SerializedName(SERIALIZED_NAME_PHYSICAL_PORTS) private List physicalPorts = new ArrayList<>(); @@ -1289,6 +1294,28 @@ public void setAdditionalInfo(List additionalInfo) { } + public PortRequest endCustomer(EndCustomer endCustomer) { + + this.endCustomer = endCustomer; + return this; + } + + /** + * Get endCustomer + * @return endCustomer + **/ + @javax.annotation.Nullable + + public EndCustomer getEndCustomer() { + return endCustomer; + } + + + public void setEndCustomer(EndCustomer endCustomer) { + this.endCustomer = endCustomer; + } + + public PortRequest physicalPorts(List physicalPorts) { this.physicalPorts = physicalPorts; @@ -1441,6 +1468,7 @@ public boolean equals(Object o) { Objects.equals(this.physicalPortQuantity, portRequest.physicalPortQuantity) && Objects.equals(this.notifications, portRequest.notifications) && Objects.equals(this.additionalInfo, portRequest.additionalInfo) && + Objects.equals(this.endCustomer, portRequest.endCustomer) && Objects.equals(this.physicalPorts, portRequest.physicalPorts) && Objects.equals(this.loas, portRequest.loas)&& Objects.equals(this.additionalProperties, portRequest.additionalProperties); @@ -1448,7 +1476,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, type, id, uuid, name, description, physicalPortsSpeed, connectionsCount, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, operation, account, changeLog, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, physicalPorts, loas, additionalProperties); + return Objects.hash(href, type, id, uuid, name, description, physicalPortsSpeed, connectionsCount, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, operation, account, changeLog, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, endCustomer, physicalPorts, loas, additionalProperties); } @Override @@ -1493,6 +1521,7 @@ public String toString() { sb.append(" physicalPortQuantity: ").append(toIndentedString(physicalPortQuantity)).append("\n"); sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); sb.append(" additionalInfo: ").append(toIndentedString(additionalInfo)).append("\n"); + sb.append(" endCustomer: ").append(toIndentedString(endCustomer)).append("\n"); sb.append(" physicalPorts: ").append(toIndentedString(physicalPorts)).append("\n"); sb.append(" loas: ").append(toIndentedString(loas)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -1556,6 +1585,7 @@ private String toIndentedString(Object o) { openapiFields.add("physicalPortQuantity"); openapiFields.add("notifications"); openapiFields.add("additionalInfo"); + openapiFields.add("endCustomer"); openapiFields.add("physicalPorts"); openapiFields.add("loas"); @@ -1696,6 +1726,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { }; } } + // validate the optional field `endCustomer` + if (jsonObj.get("endCustomer") != null && !jsonObj.get("endCustomer").isJsonNull()) { + EndCustomer.validateJsonObject(jsonObj.getAsJsonObject("endCustomer")); + } if (jsonObj.get("physicalPorts") != null && !jsonObj.get("physicalPorts").isJsonNull()) { JsonArray jsonArrayphysicalPorts = jsonObj.getAsJsonArray("physicalPorts"); if (jsonArrayphysicalPorts != null) { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePrice.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePrice.java new file mode 100644 index 0000000..fe0fb9d --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimePrice.java @@ -0,0 +1,332 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.PriceCharge; +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; + +/** + * Precision Time Price + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class PrecisionTimePrice { + public static final String SERIALIZED_NAME_CURRENCY = "currency"; + @SerializedName(SERIALIZED_NAME_CURRENCY) + private String currency; + + public static final String SERIALIZED_NAME_CHARGES = "charges"; + @SerializedName(SERIALIZED_NAME_CHARGES) + private List charges = new ArrayList<>(); + + public PrecisionTimePrice() { + } + + public PrecisionTimePrice currency(String currency) { + + this.currency = currency; + return this; + } + + /** + * offering price currency + * @return currency + **/ + @javax.annotation.Nullable + + public String getCurrency() { + return currency; + } + + + public void setCurrency(String currency) { + this.currency = currency; + } + + + public PrecisionTimePrice charges(List charges) { + + this.charges = charges; + return this; + } + + public PrecisionTimePrice addChargesItem(PriceCharge chargesItem) { + if (this.charges == null) { + this.charges = new ArrayList<>(); + } + this.charges.add(chargesItem); + return this; + } + + /** + * Get charges + * @return charges + **/ + @javax.annotation.Nullable + + public List getCharges() { + return charges; + } + + + public void setCharges(List charges) { + this.charges = charges; + } + + /** + * 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 PrecisionTimePrice instance itself + */ + public PrecisionTimePrice 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; + } + PrecisionTimePrice precisionTimePrice = (PrecisionTimePrice) o; + return Objects.equals(this.currency, precisionTimePrice.currency) && + Objects.equals(this.charges, precisionTimePrice.charges)&& + Objects.equals(this.additionalProperties, precisionTimePrice.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(currency, charges, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrecisionTimePrice {\n"); + sb.append(" currency: ").append(toIndentedString(currency)).append("\n"); + sb.append(" charges: ").append(toIndentedString(charges)).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("currency"); + openapiFields.add("charges"); + + // 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 PrecisionTimePrice + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!PrecisionTimePrice.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PrecisionTimePrice is not found in the empty JSON string", PrecisionTimePrice.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("currency") != null && !jsonObj.get("currency").isJsonNull()) && !jsonObj.get("currency").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `currency` to be a primitive type in the JSON string but got `%s`", jsonObj.get("currency").toString())); + } + if (jsonObj.get("charges") != null && !jsonObj.get("charges").isJsonNull()) { + JsonArray jsonArraycharges = jsonObj.getAsJsonArray("charges"); + if (jsonArraycharges != null) { + // ensure the json data is an array + if (!jsonObj.get("charges").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `charges` to be an array in the JSON string but got `%s`", jsonObj.get("charges").toString())); + } + + // validate the optional field `charges` (array) + for (int i = 0; i < jsonArraycharges.size(); i++) { + PriceCharge.validateJsonObject(jsonArraycharges.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PrecisionTimePrice.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PrecisionTimePrice' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PrecisionTimePrice.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PrecisionTimePrice 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 PrecisionTimePrice read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + PrecisionTimePrice 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 PrecisionTimePrice given an JSON string + * + * @param jsonString JSON string + * @return An instance of PrecisionTimePrice + * @throws IOException if the JSON string is invalid with respect to PrecisionTimePrice + */ + public static PrecisionTimePrice fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PrecisionTimePrice.class); + } + + /** + * Convert an instance of PrecisionTimePrice 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/PrecisionTimeServiceResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceResponse.java index 80959a3..849bae5 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PrecisionTimeServiceResponse.java @@ -18,6 +18,7 @@ import com.equinix.openapi.fabric.v4.model.Md5; import com.equinix.openapi.fabric.v4.model.PrecisionTimeOrder; import com.equinix.openapi.fabric.v4.model.PrecisionTimePackageResponse; +import com.equinix.openapi.fabric.v4.model.PrecisionTimePrice; import com.equinix.openapi.fabric.v4.model.Project; import com.equinix.openapi.fabric.v4.model.PtpAdvanceConfiguration; import com.equinix.openapi.fabric.v4.model.SimplifiedAccount; @@ -131,6 +132,8 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { public enum StateEnum { CANCELLED("CANCELLED"), + CANCELLING("CANCELLING"), + CONFIGURING("CONFIGURING"), CONFIGURING_FAILED("CONFIGURING_FAILED"), @@ -227,6 +230,10 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_ORDER) private PrecisionTimeOrder order; + public static final String SERIALIZED_NAME_PRICING = "pricing"; + @SerializedName(SERIALIZED_NAME_PRICING) + private PrecisionTimePrice pricing; + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; @SerializedName(SERIALIZED_NAME_CHANGE_LOG) private Changelog changeLog; @@ -536,6 +543,28 @@ public void setOrder(PrecisionTimeOrder order) { } + public PrecisionTimeServiceResponse pricing(PrecisionTimePrice pricing) { + + this.pricing = pricing; + return this; + } + + /** + * Get pricing + * @return pricing + **/ + @javax.annotation.Nullable + + public PrecisionTimePrice getPricing() { + return pricing; + } + + + public void setPricing(PrecisionTimePrice pricing) { + this.pricing = pricing; + } + + public PrecisionTimeServiceResponse changeLog(Changelog changeLog) { this.changeLog = changeLog; @@ -625,13 +654,14 @@ public boolean equals(Object o) { Objects.equals(this.project, precisionTimeServiceResponse.project) && Objects.equals(this.account, precisionTimeServiceResponse.account) && Objects.equals(this.order, precisionTimeServiceResponse.order) && + Objects.equals(this.pricing, precisionTimeServiceResponse.pricing) && Objects.equals(this.changeLog, precisionTimeServiceResponse.changeLog)&& Objects.equals(this.additionalProperties, precisionTimeServiceResponse.additionalProperties); } @Override public int hashCode() { - return Objects.hash(href, type, name, uuid, state, _package, connections, ipv4, ntpAdvancedConfiguration, ptpAdvancedConfiguration, project, account, order, changeLog, additionalProperties); + return Objects.hash(href, type, name, uuid, state, _package, connections, ipv4, ntpAdvancedConfiguration, ptpAdvancedConfiguration, project, account, order, pricing, changeLog, additionalProperties); } @Override @@ -651,6 +681,7 @@ public String toString() { sb.append(" project: ").append(toIndentedString(project)).append("\n"); sb.append(" account: ").append(toIndentedString(account)).append("\n"); sb.append(" order: ").append(toIndentedString(order)).append("\n"); + sb.append(" pricing: ").append(toIndentedString(pricing)).append("\n"); sb.append(" changeLog: ").append(toIndentedString(changeLog)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -688,6 +719,7 @@ private String toIndentedString(Object o) { openapiFields.add("project"); openapiFields.add("account"); openapiFields.add("order"); + openapiFields.add("pricing"); openapiFields.add("changeLog"); // a set of required properties/fields (JSON key names) @@ -783,6 +815,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("order") != null && !jsonObj.get("order").isJsonNull()) { PrecisionTimeOrder.validateJsonObject(jsonObj.getAsJsonObject("order")); } + // validate the optional field `pricing` + if (jsonObj.get("pricing") != null && !jsonObj.get("pricing").isJsonNull()) { + PrecisionTimePrice.validateJsonObject(jsonObj.getAsJsonObject("pricing")); + } // validate the optional field `changeLog` if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { Changelog.validateJsonObject(jsonObj.getAsJsonObject("changeLog")); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Price.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Price.java index a843869..63eae95 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Price.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Price.java @@ -19,6 +19,7 @@ import com.equinix.openapi.fabric.v4.model.PriceCharge; import com.equinix.openapi.fabric.v4.model.ProductType; import com.equinix.openapi.fabric.v4.model.SimplifiedAccount; +import com.equinix.openapi.fabric.v4.model.TimeServicePrice; import com.equinix.openapi.fabric.v4.model.VirtualConnectionPrice; import com.equinix.openapi.fabric.v4.model.VirtualPortPrice; import com.google.gson.TypeAdapter; @@ -161,6 +162,10 @@ public TermLengthEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_PORT) private VirtualPortPrice port; + public static final String SERIALIZED_NAME_TIME_SERVICE = "timeService"; + @SerializedName(SERIALIZED_NAME_TIME_SERVICE) + private TimeServicePrice timeService; + public Price() { } @@ -479,6 +484,28 @@ public void setPort(VirtualPortPrice port) { this.port = port; } + + public Price timeService(TimeServicePrice timeService) { + + this.timeService = timeService; + return this; + } + + /** + * Get timeService + * @return timeService + **/ + @javax.annotation.Nullable + + public TimeServicePrice getTimeService() { + return timeService; + } + + + public void setTimeService(TimeServicePrice timeService) { + this.timeService = timeService; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -547,13 +574,14 @@ public boolean equals(Object o) { Objects.equals(this.connection, price.connection) && Objects.equals(this.ipBlock, price.ipBlock) && Objects.equals(this.router, price.router) && - Objects.equals(this.port, price.port)&& + Objects.equals(this.port, price.port) && + Objects.equals(this.timeService, price.timeService)&& Objects.equals(this.additionalProperties, price.additionalProperties); } @Override public int hashCode() { - return Objects.hash(href, type, code, name, description, account, charges, currency, termLength, catgory, connection, ipBlock, router, port, additionalProperties); + return Objects.hash(href, type, code, name, description, account, charges, currency, termLength, catgory, connection, ipBlock, router, port, timeService, additionalProperties); } @Override @@ -574,6 +602,7 @@ public String toString() { sb.append(" ipBlock: ").append(toIndentedString(ipBlock)).append("\n"); sb.append(" router: ").append(toIndentedString(router)).append("\n"); sb.append(" port: ").append(toIndentedString(port)).append("\n"); + sb.append(" timeService: ").append(toIndentedString(timeService)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -611,6 +640,7 @@ private String toIndentedString(Object o) { openapiFields.add("ipBlock"); openapiFields.add("router"); openapiFields.add("port"); + openapiFields.add("timeService"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -677,6 +707,10 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("port") != null && !jsonObj.get("port").isJsonNull()) { VirtualPortPrice.validateJsonObject(jsonObj.getAsJsonObject("port")); } + // validate the optional field `timeService` + if (jsonObj.get("timeService") != null && !jsonObj.get("timeService").isJsonNull()) { + TimeServicePrice.validateJsonObject(jsonObj.getAsJsonObject("timeService")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PriceLocation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PriceLocation.java index e7ccdc1..e69591a 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PriceLocation.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/PriceLocation.java @@ -50,6 +50,10 @@ public class PriceLocation { @SerializedName(SERIALIZED_NAME_METRO_CODE) private String metroCode; + public static final String SERIALIZED_NAME_IBX = "ibx"; + @SerializedName(SERIALIZED_NAME_IBX) + private String ibx; + public PriceLocation() { } @@ -74,6 +78,28 @@ public void setMetroCode(String metroCode) { this.metroCode = metroCode; } + + public PriceLocation ibx(String ibx) { + + this.ibx = ibx; + return this; + } + + /** + * Get ibx + * @return ibx + **/ + @javax.annotation.Nullable + + public String getIbx() { + return ibx; + } + + + public void setIbx(String ibx) { + this.ibx = ibx; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -129,13 +155,14 @@ public boolean equals(Object o) { return false; } PriceLocation priceLocation = (PriceLocation) o; - return Objects.equals(this.metroCode, priceLocation.metroCode)&& + return Objects.equals(this.metroCode, priceLocation.metroCode) && + Objects.equals(this.ibx, priceLocation.ibx)&& Objects.equals(this.additionalProperties, priceLocation.additionalProperties); } @Override public int hashCode() { - return Objects.hash(metroCode, additionalProperties); + return Objects.hash(metroCode, ibx, additionalProperties); } @Override @@ -143,6 +170,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PriceLocation {\n"); sb.append(" metroCode: ").append(toIndentedString(metroCode)).append("\n"); + sb.append(" ibx: ").append(toIndentedString(ibx)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -167,6 +195,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("metroCode"); + openapiFields.add("ibx"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -187,6 +216,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if ((jsonObj.get("metroCode") != null && !jsonObj.get("metroCode").isJsonNull()) && !jsonObj.get("metroCode").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `metroCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("metroCode").toString())); } + if ((jsonObj.get("ibx") != null && !jsonObj.get("ibx").isJsonNull()) && !jsonObj.get("ibx").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ibx` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ibx").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ProductType.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ProductType.java index b0cffeb..2ecc7a0 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ProductType.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ProductType.java @@ -33,7 +33,9 @@ public enum ProductType { VIRTUAL_PORT_PRODUCT("VIRTUAL_PORT_PRODUCT"), - CLOUD_ROUTER_PRODUCT("CLOUD_ROUTER_PRODUCT"); + CLOUD_ROUTER_PRODUCT("CLOUD_ROUTER_PRODUCT"), + + PRECISION_TIME_PRODUCT("PRECISION_TIME_PRODUCT"); private String value; diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeData.java new file mode 100644 index 0000000..1eb3d97 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeData.java @@ -0,0 +1,670 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationsChangeOperation; +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 Aggregation change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationChangeData { + /** + * 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 RouteAggregationsChangeOperation 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_AGGREGATION_UPDATE("BGP_IPv4_PREFIX_AGGREGATION_UPDATE"), + + IPV4_PREFIX_AGGREGATION_CREATION("BGP_IPv4_PREFIX_AGGREGATION_CREATION"), + + IPV4_PREFIX_AGGREGATION_DELETION("BGP_IPv4_PREFIX_AGGREGATION_DELETION"), + + IPV6_PREFIX_AGGREGATION_UPDATE("BGP_IPv6_PREFIX_AGGREGATION_UPDATE"), + + IPV6_PREFIX_AGGREGATION_CREATION("BGP_IPv6_PREFIX_AGGREGATION_CREATION"), + + IPV6_PREFIX_AGGREGATION_DELETION("BGP_IPv6_PREFIX_AGGREGATION_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 RouteAggregationChangeData() { + } + + public RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData data(RouteAggregationsChangeOperation data) { + + this.data = data; + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public RouteAggregationsChangeOperation getData() { + return data; + } + + + public void setData(RouteAggregationsChangeOperation data) { + this.data = data; + } + + + public RouteAggregationChangeData 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 RouteAggregationChangeData 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 RouteAggregationChangeData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route AGGREGATION 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 RouteAggregationChangeData instance itself + */ + public RouteAggregationChangeData 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; + } + RouteAggregationChangeData routeAggregationChangeData = (RouteAggregationChangeData) o; + return Objects.equals(this.status, routeAggregationChangeData.status) && + Objects.equals(this.createdBy, routeAggregationChangeData.createdBy) && + Objects.equals(this.createdDateTime, routeAggregationChangeData.createdDateTime) && + Objects.equals(this.updatedBy, routeAggregationChangeData.updatedBy) && + Objects.equals(this.updatedDateTime, routeAggregationChangeData.updatedDateTime) && + Objects.equals(this.information, routeAggregationChangeData.information) && + Objects.equals(this.data, routeAggregationChangeData.data) && + Objects.equals(this.uuid, routeAggregationChangeData.uuid) && + Objects.equals(this.type, routeAggregationChangeData.type) && + Objects.equals(this.href, routeAggregationChangeData.href)&& + Objects.equals(this.additionalProperties, routeAggregationChangeData.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 RouteAggregationChangeData {\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 RouteAggregationChangeData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationChangeData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationChangeData is not found in the empty JSON string", RouteAggregationChangeData.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationChangeData.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()) { + RouteAggregationsChangeOperation.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 (!RouteAggregationChangeData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationChangeData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationChangeData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationChangeData 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 RouteAggregationChangeData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationChangeData 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 RouteAggregationChangeData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationChangeData + * @throws IOException if the JSON string is invalid with respect to RouteAggregationChangeData + */ + public static RouteAggregationChangeData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationChangeData.class); + } + + /** + * Convert an instance of RouteAggregationChangeData 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/RouteAggregationChangeDataResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeDataResponse.java new file mode 100644 index 0000000..fd6b6fa --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationChangeDataResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationChangeData; +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 Aggregation changes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationChangeDataResponse { + 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 RouteAggregationChangeDataResponse() { + } + + public RouteAggregationChangeDataResponse 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 RouteAggregationChangeDataResponse data(List data) { + + this.data = data; + return this; + } + + public RouteAggregationChangeDataResponse addDataItem(RouteAggregationChangeData 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 RouteAggregationChangeDataResponse instance itself + */ + public RouteAggregationChangeDataResponse 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; + } + RouteAggregationChangeDataResponse routeAggregationChangeDataResponse = (RouteAggregationChangeDataResponse) o; + return Objects.equals(this.pagination, routeAggregationChangeDataResponse.pagination) && + Objects.equals(this.data, routeAggregationChangeDataResponse.data)&& + Objects.equals(this.additionalProperties, routeAggregationChangeDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationChangeDataResponse {\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 RouteAggregationChangeDataResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationChangeDataResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationChangeDataResponse is not found in the empty JSON string", RouteAggregationChangeDataResponse.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++) { + RouteAggregationChangeData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationChangeDataResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationChangeDataResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationChangeDataResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationChangeDataResponse 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 RouteAggregationChangeDataResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationChangeDataResponse 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 RouteAggregationChangeDataResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationChangeDataResponse + * @throws IOException if the JSON string is invalid with respect to RouteAggregationChangeDataResponse + */ + public static RouteAggregationChangeDataResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationChangeDataResponse.class); + } + + /** + * Convert an instance of RouteAggregationChangeDataResponse 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/RouteAggregationConnectionsData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationConnectionsData.java new file mode 100644 index 0000000..fe959ee --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationConnectionsData.java @@ -0,0 +1,374 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * RouteAggregationConnectionsData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationConnectionsData { + 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 RouteAggregationConnectionsData() { + } + + public RouteAggregationConnectionsData 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 RouteAggregationConnectionsData 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 RouteAggregationConnectionsData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Aggregation identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteAggregationConnectionsData 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 RouteAggregationConnectionsData instance itself + */ + public RouteAggregationConnectionsData 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; + } + RouteAggregationConnectionsData routeAggregationConnectionsData = (RouteAggregationConnectionsData) o; + return Objects.equals(this.href, routeAggregationConnectionsData.href) && + Objects.equals(this.type, routeAggregationConnectionsData.type) && + Objects.equals(this.uuid, routeAggregationConnectionsData.uuid) && + Objects.equals(this.name, routeAggregationConnectionsData.name)&& + Objects.equals(this.additionalProperties, routeAggregationConnectionsData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationConnectionsData {\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 RouteAggregationConnectionsData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationConnectionsData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationConnectionsData is not found in the empty JSON string", RouteAggregationConnectionsData.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 (!RouteAggregationConnectionsData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationConnectionsData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationConnectionsData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationConnectionsData 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 RouteAggregationConnectionsData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationConnectionsData 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 RouteAggregationConnectionsData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationConnectionsData + * @throws IOException if the JSON string is invalid with respect to RouteAggregationConnectionsData + */ + public static RouteAggregationConnectionsData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationConnectionsData.class); + } + + /** + * Convert an instance of RouteAggregationConnectionsData 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/RouteAggregationRuleState.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRuleState.java new file mode 100644 index 0000000..9c8e92b --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRuleState.java @@ -0,0 +1,81 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation Rule status + */ +@JsonAdapter(RouteAggregationRuleState.Adapter.class) +public enum RouteAggregationRuleState { + + PROVISIONING("PROVISIONING"), + + REPROVISIONING("REPROVISIONING"), + + DEPROVISIONING("DEPROVISIONING"), + + PROVISIONED("PROVISIONED"), + + DEPROVISIONED("DEPROVISIONED"), + + NOT_PROVISIONED("NOT_PROVISIONED"), + + NOT_DEPROVISIONED("NOT_DEPROVISIONED"); + + private String value; + + RouteAggregationRuleState(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteAggregationRuleState fromValue(String value) { + for (RouteAggregationRuleState b : RouteAggregationRuleState.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 RouteAggregationRuleState enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteAggregationRuleState read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteAggregationRuleState.fromValue(value); + } + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesBase.java new file mode 100644 index 0000000..435bf92 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesBase.java @@ -0,0 +1,350 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * RouteAggregationRulesBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesBase { + 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 RouteAggregationRulesBase() { + } + + public RouteAggregationRulesBase 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 RouteAggregationRulesBase description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided Route Aggregation Rule description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteAggregationRulesBase prefix(String prefix) { + + this.prefix = prefix; + return this; + } + + /** + * Get prefix + * @return prefix + **/ + @javax.annotation.Nonnull + + public String getPrefix() { + return prefix; + } + + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + /** + * 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 RouteAggregationRulesBase instance itself + */ + public RouteAggregationRulesBase 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; + } + RouteAggregationRulesBase routeAggregationRulesBase = (RouteAggregationRulesBase) o; + return Objects.equals(this.name, routeAggregationRulesBase.name) && + Objects.equals(this.description, routeAggregationRulesBase.description) && + Objects.equals(this.prefix, routeAggregationRulesBase.prefix)&& + Objects.equals(this.additionalProperties, routeAggregationRulesBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, prefix, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesBase {\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(" 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"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("prefix"); + } + + /** + * 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 RouteAggregationRulesBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesBase is not found in the empty JSON string", RouteAggregationRulesBase.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationRulesBase.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") != 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").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())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesBase 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 RouteAggregationRulesBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesBase 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 RouteAggregationRulesBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesBase + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesBase + */ + public static RouteAggregationRulesBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesBase.class); + } + + /** + * Convert an instance of RouteAggregationRulesBase 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/RouteAggregationRulesChange.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChange.java new file mode 100644 index 0000000..a5a2bd1 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChange.java @@ -0,0 +1,401 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation Rule change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesChange { + 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 { + UPDATE("BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE"), + + CREATION("BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION"), + + DELETION("BGP_IPv4_PREFIX_AGGREGATION_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 RouteAggregationRulesChange() { + } + + public RouteAggregationRulesChange 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 RouteAggregationRulesChange 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 RouteAggregationRulesChange href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Aggregation 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 RouteAggregationRulesChange instance itself + */ + public RouteAggregationRulesChange 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; + } + RouteAggregationRulesChange routeAggregationRulesChange = (RouteAggregationRulesChange) o; + return Objects.equals(this.uuid, routeAggregationRulesChange.uuid) && + Objects.equals(this.type, routeAggregationRulesChange.type) && + Objects.equals(this.href, routeAggregationRulesChange.href)&& + Objects.equals(this.additionalProperties, routeAggregationRulesChange.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, type, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesChange {\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 RouteAggregationRulesChange + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesChange.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesChange is not found in the empty JSON string", RouteAggregationRulesChange.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationRulesChange.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 (!RouteAggregationRulesChange.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesChange' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesChange.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesChange 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 RouteAggregationRulesChange read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesChange 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 RouteAggregationRulesChange given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesChange + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesChange + */ + public static RouteAggregationRulesChange fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesChange.class); + } + + /** + * Convert an instance of RouteAggregationRulesChange 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/RouteAggregationRulesChangeData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeData.java new file mode 100644 index 0000000..f8d697e --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeData.java @@ -0,0 +1,633 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRulesChangeOperation; +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 Aggregation Rules change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesChangeData { + /** + * 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 RouteAggregationRulesChangeOperation 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 { + UPDATE("BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE"), + + CREATION("BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION"), + + DELETION("BGP_IPv4_PREFIX_AGGREGATION_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 RouteAggregationRulesChangeData() { + } + + public RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData data(RouteAggregationRulesChangeOperation data) { + + this.data = data; + return this; + } + + /** + * Get data + * @return data + **/ + @javax.annotation.Nullable + + public RouteAggregationRulesChangeOperation getData() { + return data; + } + + + public void setData(RouteAggregationRulesChangeOperation data) { + this.data = data; + } + + + public RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Aggregation 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 RouteAggregationRulesChangeData instance itself + */ + public RouteAggregationRulesChangeData 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; + } + RouteAggregationRulesChangeData routeAggregationRulesChangeData = (RouteAggregationRulesChangeData) o; + return Objects.equals(this.status, routeAggregationRulesChangeData.status) && + Objects.equals(this.createdBy, routeAggregationRulesChangeData.createdBy) && + Objects.equals(this.createdDateTime, routeAggregationRulesChangeData.createdDateTime) && + Objects.equals(this.updatedBy, routeAggregationRulesChangeData.updatedBy) && + Objects.equals(this.updatedDateTime, routeAggregationRulesChangeData.updatedDateTime) && + Objects.equals(this.data, routeAggregationRulesChangeData.data) && + Objects.equals(this.uuid, routeAggregationRulesChangeData.uuid) && + Objects.equals(this.type, routeAggregationRulesChangeData.type) && + Objects.equals(this.href, routeAggregationRulesChangeData.href)&& + Objects.equals(this.additionalProperties, routeAggregationRulesChangeData.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 RouteAggregationRulesChangeData {\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 RouteAggregationRulesChangeData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesChangeData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesChangeData is not found in the empty JSON string", RouteAggregationRulesChangeData.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationRulesChangeData.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()) { + RouteAggregationRulesChangeOperation.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 (!RouteAggregationRulesChangeData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesChangeData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesChangeData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesChangeData + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesChangeData + */ + public static RouteAggregationRulesChangeData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesChangeData.class); + } + + /** + * Convert an instance of RouteAggregationRulesChangeData 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/RouteAggregationRulesChangeDataResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeDataResponse.java new file mode 100644 index 0000000..814e1de --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeDataResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRulesChangeData; +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 Aggregation Rule changes + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesChangeDataResponse { + 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 RouteAggregationRulesChangeDataResponse() { + } + + public RouteAggregationRulesChangeDataResponse 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 RouteAggregationRulesChangeDataResponse data(List data) { + + this.data = data; + return this; + } + + public RouteAggregationRulesChangeDataResponse addDataItem(RouteAggregationRulesChangeData 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 RouteAggregationRulesChangeDataResponse instance itself + */ + public RouteAggregationRulesChangeDataResponse 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; + } + RouteAggregationRulesChangeDataResponse routeAggregationRulesChangeDataResponse = (RouteAggregationRulesChangeDataResponse) o; + return Objects.equals(this.pagination, routeAggregationRulesChangeDataResponse.pagination) && + Objects.equals(this.data, routeAggregationRulesChangeDataResponse.data)&& + Objects.equals(this.additionalProperties, routeAggregationRulesChangeDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesChangeDataResponse {\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 RouteAggregationRulesChangeDataResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesChangeDataResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesChangeDataResponse is not found in the empty JSON string", RouteAggregationRulesChangeDataResponse.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++) { + RouteAggregationRulesChangeData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesChangeDataResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesChangeDataResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesChangeDataResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesChangeDataResponse 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 RouteAggregationRulesChangeDataResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesChangeDataResponse 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 RouteAggregationRulesChangeDataResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesChangeDataResponse + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesChangeDataResponse + */ + public static RouteAggregationRulesChangeDataResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesChangeDataResponse.class); + } + + /** + * Convert an instance of RouteAggregationRulesChangeDataResponse 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/RouteAggregationRulesChangeOperation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeOperation.java new file mode 100644 index 0000000..44b7d9d --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesChangeOperation.java @@ -0,0 +1,401 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRulesBase; +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 Aggregation Rule change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesChangeOperation { + /** + * 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 RouteAggregationRulesBase value; + + public RouteAggregationRulesChangeOperation() { + } + + public RouteAggregationRulesChangeOperation 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 RouteAggregationRulesChangeOperation 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 RouteAggregationRulesChangeOperation value(RouteAggregationRulesBase value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @javax.annotation.Nonnull + + public RouteAggregationRulesBase getValue() { + return value; + } + + + public void setValue(RouteAggregationRulesBase 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 RouteAggregationRulesChangeOperation instance itself + */ + public RouteAggregationRulesChangeOperation 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; + } + RouteAggregationRulesChangeOperation routeAggregationRulesChangeOperation = (RouteAggregationRulesChangeOperation) o; + return Objects.equals(this.op, routeAggregationRulesChangeOperation.op) && + Objects.equals(this.path, routeAggregationRulesChangeOperation.path) && + Objects.equals(this.value, routeAggregationRulesChangeOperation.value)&& + Objects.equals(this.additionalProperties, routeAggregationRulesChangeOperation.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesChangeOperation {\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 RouteAggregationRulesChangeOperation + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesChangeOperation.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesChangeOperation is not found in the empty JSON string", RouteAggregationRulesChangeOperation.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationRulesChangeOperation.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` + RouteAggregationRulesBase.validateJsonObject(jsonObj.getAsJsonObject("value")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesChangeOperation.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesChangeOperation' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesChangeOperation.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesChangeOperation 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 RouteAggregationRulesChangeOperation read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesChangeOperation 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 RouteAggregationRulesChangeOperation given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesChangeOperation + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesChangeOperation + */ + public static RouteAggregationRulesChangeOperation fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesChangeOperation.class); + } + + /** + * Convert an instance of RouteAggregationRulesChangeOperation 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/RouteAggregationRulesData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesData.java new file mode 100644 index 0000000..877d63f --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesData.java @@ -0,0 +1,583 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRuleState; +import com.equinix.openapi.fabric.v4.model.RouteAggregationRulesChange; +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; + +/** + * RouteAggregationRulesData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Aggregation type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + BGP_IPV4_PREFIX_AGGREGATION_RULE("BGP_IPv4_PREFIX_AGGREGATION_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_STATE = "state"; + @SerializedName(SERIALIZED_NAME_STATE) + private RouteAggregationRuleState state; + + public static final String SERIALIZED_NAME_CHANGE = "change"; + @SerializedName(SERIALIZED_NAME_CHANGE) + private RouteAggregationRulesChange change; + + public static final String SERIALIZED_NAME_PREFIX = "prefix"; + @SerializedName(SERIALIZED_NAME_PREFIX) + private String prefix; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + private Changelog changeLog; + + public RouteAggregationRulesData() { + } + + public RouteAggregationRulesData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Aggregation Rules URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public RouteAggregationRulesData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Aggregation type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteAggregationRulesData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Aggregation Rule identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteAggregationRulesData 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 RouteAggregationRulesData description(String description) { + + this.description = description; + return this; + } + + /** + * Customer-provided Route Aggregation Rule description + * @return description + **/ + @javax.annotation.Nullable + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public RouteAggregationRulesData state(RouteAggregationRuleState state) { + + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @javax.annotation.Nullable + + public RouteAggregationRuleState getState() { + return state; + } + + + public void setState(RouteAggregationRuleState state) { + this.state = state; + } + + + public RouteAggregationRulesData change(RouteAggregationRulesChange change) { + + this.change = change; + return this; + } + + /** + * Get change + * @return change + **/ + @javax.annotation.Nullable + + public RouteAggregationRulesChange getChange() { + return change; + } + + + public void setChange(RouteAggregationRulesChange change) { + this.change = change; + } + + + public RouteAggregationRulesData 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 RouteAggregationRulesData 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 RouteAggregationRulesData instance itself + */ + public RouteAggregationRulesData 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; + } + RouteAggregationRulesData routeAggregationRulesData = (RouteAggregationRulesData) o; + return Objects.equals(this.href, routeAggregationRulesData.href) && + Objects.equals(this.type, routeAggregationRulesData.type) && + Objects.equals(this.uuid, routeAggregationRulesData.uuid) && + Objects.equals(this.name, routeAggregationRulesData.name) && + Objects.equals(this.description, routeAggregationRulesData.description) && + Objects.equals(this.state, routeAggregationRulesData.state) && + Objects.equals(this.change, routeAggregationRulesData.change) && + Objects.equals(this.prefix, routeAggregationRulesData.prefix) && + Objects.equals(this.changeLog, routeAggregationRulesData.changeLog)&& + Objects.equals(this.additionalProperties, routeAggregationRulesData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, state, change, prefix, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesData {\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(" 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("state"); + openapiFields.add("change"); + 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 RouteAggregationRulesData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesData is not found in the empty JSON string", RouteAggregationRulesData.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()) { + RouteAggregationRulesChange.validateJsonObject(jsonObj.getAsJsonObject("change")); + } + 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 (!RouteAggregationRulesData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesData 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 RouteAggregationRulesData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesData 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 RouteAggregationRulesData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesData + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesData + */ + public static RouteAggregationRulesData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesData.class); + } + + /** + * Convert an instance of RouteAggregationRulesData 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/RouteAggregationRulesPatchRequestItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPatchRequestItem.java new file mode 100644 index 0000000..3dee4e5 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPatchRequestItem.java @@ -0,0 +1,349 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation Rule change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesPatchRequestItem { + 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 RouteAggregationRulesPatchRequestItem() { + } + + public RouteAggregationRulesPatchRequestItem 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 RouteAggregationRulesPatchRequestItem 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 RouteAggregationRulesPatchRequestItem 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 RouteAggregationRulesPatchRequestItem instance itself + */ + public RouteAggregationRulesPatchRequestItem 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; + } + RouteAggregationRulesPatchRequestItem routeAggregationRulesPatchRequestItem = (RouteAggregationRulesPatchRequestItem) o; + return Objects.equals(this.op, routeAggregationRulesPatchRequestItem.op) && + Objects.equals(this.path, routeAggregationRulesPatchRequestItem.path) && + Objects.equals(this.value, routeAggregationRulesPatchRequestItem.value)&& + Objects.equals(this.additionalProperties, routeAggregationRulesPatchRequestItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesPatchRequestItem {\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 RouteAggregationRulesPatchRequestItem + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesPatchRequestItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesPatchRequestItem is not found in the empty JSON string", RouteAggregationRulesPatchRequestItem.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationRulesPatchRequestItem.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 (!RouteAggregationRulesPatchRequestItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesPatchRequestItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesPatchRequestItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesPatchRequestItem 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 RouteAggregationRulesPatchRequestItem read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesPatchRequestItem 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 RouteAggregationRulesPatchRequestItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesPatchRequestItem + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesPatchRequestItem + */ + public static RouteAggregationRulesPatchRequestItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesPatchRequestItem.class); + } + + /** + * Convert an instance of RouteAggregationRulesPatchRequestItem 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/RouteAggregationRulesPostRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPostRequest.java new file mode 100644 index 0000000..e6370aa --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationRulesPostRequest.java @@ -0,0 +1,300 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationRulesBase; +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 Aggregation Rule POST request + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationRulesPostRequest { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList<>(); + + public RouteAggregationRulesPostRequest() { + } + + public RouteAggregationRulesPostRequest data(List data) { + + this.data = data; + return this; + } + + public RouteAggregationRulesPostRequest addDataItem(RouteAggregationRulesBase dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Route Aggregation 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 RouteAggregationRulesPostRequest instance itself + */ + public RouteAggregationRulesPostRequest 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; + } + RouteAggregationRulesPostRequest routeAggregationRulesPostRequest = (RouteAggregationRulesPostRequest) o; + return Objects.equals(this.data, routeAggregationRulesPostRequest.data)&& + Objects.equals(this.additionalProperties, routeAggregationRulesPostRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesPostRequest {\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 RouteAggregationRulesPostRequest + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationRulesPostRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationRulesPostRequest is not found in the empty JSON string", RouteAggregationRulesPostRequest.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++) { + RouteAggregationRulesBase.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesPostRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesPostRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesPostRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesPostRequest 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 RouteAggregationRulesPostRequest read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationRulesPostRequest 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 RouteAggregationRulesPostRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesPostRequest + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesPostRequest + */ + public static RouteAggregationRulesPostRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesPostRequest.class); + } + + /** + * Convert an instance of RouteAggregationRulesPostRequest 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/RouteAggregationSortItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationSortItem.java new file mode 100644 index 0000000..5cdd602 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationSortItem.java @@ -0,0 +1,416 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * RouteAggregationSortItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationSortItem { + /** + * Possible field names to use on sorting + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + UUID("/uuid"), + + NAME("/name"), + + PROJECT_PROJECTID("/project/projectId"), + + STATE("/state"), + + CONNECTIONSCOUNT("/connectionsCount"), + + CHANGELOG_CREATEDDATETIME("/changeLog/createdDateTime"), + + CHANGELOG_UPDATEDDATETIME("/changeLog/updatedDateTime"); + + private String value; + + PropertyEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PropertyEnum fromValue(String value) { + for (PropertyEnum b : PropertyEnum.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 PropertyEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PropertyEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PropertyEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + private PropertyEnum property = PropertyEnum.CHANGELOG_UPDATEDDATETIME; + + /** + * Sorting direction + */ + @JsonAdapter(DirectionEnum.Adapter.class) + public enum DirectionEnum { + DESC("DESC"), + + ASC("ASC"); + + 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 = DirectionEnum.DESC; + + public RouteAggregationSortItem() { + } + + public RouteAggregationSortItem property(PropertyEnum property) { + + this.property = property; + return this; + } + + /** + * Possible field names to use on sorting + * @return property + **/ + @javax.annotation.Nullable + + public PropertyEnum getProperty() { + return property; + } + + + public void setProperty(PropertyEnum property) { + this.property = property; + } + + + public RouteAggregationSortItem direction(DirectionEnum direction) { + + this.direction = direction; + return this; + } + + /** + * Sorting 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 RouteAggregationSortItem instance itself + */ + public RouteAggregationSortItem 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; + } + RouteAggregationSortItem routeAggregationSortItem = (RouteAggregationSortItem) o; + return Objects.equals(this.property, routeAggregationSortItem.property) && + Objects.equals(this.direction, routeAggregationSortItem.direction)&& + Objects.equals(this.additionalProperties, routeAggregationSortItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, direction, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationSortItem {\n"); + sb.append(" property: ").append(toIndentedString(property)).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("property"); + 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 RouteAggregationSortItem + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationSortItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationSortItem is not found in the empty JSON string", RouteAggregationSortItem.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").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 (!RouteAggregationSortItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationSortItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationSortItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationSortItem 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 RouteAggregationSortItem read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationSortItem 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 RouteAggregationSortItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationSortItem + * @throws IOException if the JSON string is invalid with respect to RouteAggregationSortItem + */ + public static RouteAggregationSortItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationSortItem.class); + } + + /** + * Convert an instance of RouteAggregationSortItem 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/RouteAggregationState.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationState.java new file mode 100644 index 0000000..0739ef2 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationState.java @@ -0,0 +1,81 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation status + */ +@JsonAdapter(RouteAggregationState.Adapter.class) +public enum RouteAggregationState { + + PROVISIONING("PROVISIONING"), + + REPROVISIONING("REPROVISIONING"), + + DEPROVISIONING("DEPROVISIONING"), + + PROVISIONED("PROVISIONED"), + + DEPROVISIONED("DEPROVISIONED"), + + NOT_PROVISIONED("NOT_PROVISIONED"), + + NOT_DEPROVISIONED("NOT_DEPROVISIONED"); + + private String value; + + RouteAggregationState(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteAggregationState fromValue(String value) { + for (RouteAggregationState b : RouteAggregationState.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 RouteAggregationState enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteAggregationState read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteAggregationState.fromValue(value); + } + } +} + diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsBase.java new file mode 100644 index 0000000..30b914d --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsBase.java @@ -0,0 +1,431 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.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; + +/** + * RouteAggregationsBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsBase { + /** + * Route Aggregation type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_AGGREGATION("BGP_IPv4_PREFIX_AGGREGATION"), + + IPV6_PREFIX_AGGREGATION("BGP_IPv6_PREFIX_AGGREGATION"); + + 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 RouteAggregationsBase() { + } + + public RouteAggregationsBase type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Aggregation type + * @return type + **/ + @javax.annotation.Nonnull + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteAggregationsBase name(String name) { + + this.name = name; + return this; + } + + /** + * Get name + * @return name + **/ + @javax.annotation.Nonnull + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public RouteAggregationsBase 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 RouteAggregationsBase project(Project project) { + + this.project = project; + return this; + } + + /** + * Get project + * @return project + **/ + @javax.annotation.Nonnull + + public Project getProject() { + return project; + } + + + public void setProject(Project project) { + this.project = project; + } + + /** + * 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 RouteAggregationsBase instance itself + */ + public RouteAggregationsBase 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; + } + RouteAggregationsBase routeAggregationsBase = (RouteAggregationsBase) o; + return Objects.equals(this.type, routeAggregationsBase.type) && + Objects.equals(this.name, routeAggregationsBase.name) && + Objects.equals(this.description, routeAggregationsBase.description) && + Objects.equals(this.project, routeAggregationsBase.project)&& + Objects.equals(this.additionalProperties, routeAggregationsBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, name, description, project, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsBase {\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(" 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"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("project"); + } + + /** + * 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 RouteAggregationsBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsBase is not found in the empty JSON string", RouteAggregationsBase.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationsBase.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("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").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 required field `project` + Project.validateJsonObject(jsonObj.getAsJsonObject("project")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsBase 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 RouteAggregationsBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsBase 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 RouteAggregationsBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsBase + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsBase + */ + public static RouteAggregationsBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsBase.class); + } + + /** + * Convert an instance of RouteAggregationsBase 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/RouteAggregationsChange.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChange.java new file mode 100644 index 0000000..be8906c --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChange.java @@ -0,0 +1,407 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsChange { + 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_AGGREGATION_UPDATE("BGP_IPv4_PREFIX_AGGREGATION_UPDATE"), + + IPV4_PREFIX_AGGREGATION_CREATION("BGP_IPv4_PREFIX_AGGREGATION_CREATION"), + + IPV4_PREFIX_AGGREGATION_DELETION("BGP_IPv4_PREFIX_AGGREGATION_DELETION"), + + IPV6_PREFIX_AGGREGATION_UPDATE("BGP_IPv6_PREFIX_AGGREGATION_UPDATE"), + + IPV6_PREFIX_AGGREGATION_CREATION("BGP_IPv6_PREFIX_AGGREGATION_CREATION"), + + IPV6_PREFIX_AGGREGATION_DELETION("BGP_IPv6_PREFIX_AGGREGATION_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 RouteAggregationsChange() { + } + + public RouteAggregationsChange 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 RouteAggregationsChange 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 RouteAggregationsChange href(URI href) { + + this.href = href; + return this; + } + + /** + * Route AGGREGATION 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 RouteAggregationsChange instance itself + */ + public RouteAggregationsChange 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; + } + RouteAggregationsChange routeAggregationsChange = (RouteAggregationsChange) o; + return Objects.equals(this.uuid, routeAggregationsChange.uuid) && + Objects.equals(this.type, routeAggregationsChange.type) && + Objects.equals(this.href, routeAggregationsChange.href)&& + Objects.equals(this.additionalProperties, routeAggregationsChange.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, type, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsChange {\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 RouteAggregationsChange + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsChange.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsChange is not found in the empty JSON string", RouteAggregationsChange.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationsChange.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 (!RouteAggregationsChange.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsChange' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsChange.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsChange 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 RouteAggregationsChange read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsChange 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 RouteAggregationsChange given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsChange + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsChange + */ + public static RouteAggregationsChange fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsChange.class); + } + + /** + * Convert an instance of RouteAggregationsChange 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/RouteAggregationsChangeOperation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChangeOperation.java new file mode 100644 index 0000000..3a58cea --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsChangeOperation.java @@ -0,0 +1,401 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationsBase; +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 Aggregation change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsChangeOperation { + /** + * 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 RouteAggregationsBase value; + + public RouteAggregationsChangeOperation() { + } + + public RouteAggregationsChangeOperation 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 RouteAggregationsChangeOperation 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 RouteAggregationsChangeOperation value(RouteAggregationsBase value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @javax.annotation.Nonnull + + public RouteAggregationsBase getValue() { + return value; + } + + + public void setValue(RouteAggregationsBase 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 RouteAggregationsChangeOperation instance itself + */ + public RouteAggregationsChangeOperation 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; + } + RouteAggregationsChangeOperation routeAggregationsChangeOperation = (RouteAggregationsChangeOperation) o; + return Objects.equals(this.op, routeAggregationsChangeOperation.op) && + Objects.equals(this.path, routeAggregationsChangeOperation.path) && + Objects.equals(this.value, routeAggregationsChangeOperation.value)&& + Objects.equals(this.additionalProperties, routeAggregationsChangeOperation.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsChangeOperation {\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 RouteAggregationsChangeOperation + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsChangeOperation.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsChangeOperation is not found in the empty JSON string", RouteAggregationsChangeOperation.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationsChangeOperation.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` + RouteAggregationsBase.validateJsonObject(jsonObj.getAsJsonObject("value")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsChangeOperation.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsChangeOperation' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsChangeOperation.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsChangeOperation 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 RouteAggregationsChangeOperation read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsChangeOperation 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 RouteAggregationsChangeOperation given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsChangeOperation + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsChangeOperation + */ + public static RouteAggregationsChangeOperation fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsChangeOperation.class); + } + + /** + * Convert an instance of RouteAggregationsChangeOperation 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/RouteAggregationsData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsData.java new file mode 100644 index 0000000..e088fce --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsData.java @@ -0,0 +1,645 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationState; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsChange; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsDataProject; +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; + +/** + * RouteAggregationsData + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsData { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + private URI href; + + /** + * Route Aggregation type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + IPV4_PREFIX_AGGREGATION("BGP_IPv4_PREFIX_AGGREGATION"), + + IPV6_PREFIX_AGGREGATION("BGP_IPv6_PREFIX_AGGREGATION"); + + 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 RouteAggregationState state; + + public static final String SERIALIZED_NAME_CHANGE = "change"; + @SerializedName(SERIALIZED_NAME_CHANGE) + private RouteAggregationsChange change; + + public static final String SERIALIZED_NAME_CONNECTIONS_COUNT = "connectionsCount"; + @SerializedName(SERIALIZED_NAME_CONNECTIONS_COUNT) + private Integer connectionsCount; + + public static final String SERIALIZED_NAME_RULES_COUNT = "rulesCount"; + @SerializedName(SERIALIZED_NAME_RULES_COUNT) + private Integer rulesCount; + + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + private RouteAggregationsDataProject project; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + private Changelog changeLog; + + public RouteAggregationsData() { + } + + public RouteAggregationsData href(URI href) { + + this.href = href; + return this; + } + + /** + * Route Aggregation URI + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + public void setHref(URI href) { + this.href = href; + } + + + public RouteAggregationsData type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Route Aggregation type + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public RouteAggregationsData uuid(UUID uuid) { + + this.uuid = uuid; + return this; + } + + /** + * Route Aggregation identifier + * @return uuid + **/ + @javax.annotation.Nullable + + public UUID getUuid() { + return uuid; + } + + + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + + + public RouteAggregationsData 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 RouteAggregationsData 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 RouteAggregationsData state(RouteAggregationState state) { + + this.state = state; + return this; + } + + /** + * Get state + * @return state + **/ + @javax.annotation.Nullable + + public RouteAggregationState getState() { + return state; + } + + + public void setState(RouteAggregationState state) { + this.state = state; + } + + + public RouteAggregationsData change(RouteAggregationsChange change) { + + this.change = change; + return this; + } + + /** + * Get change + * @return change + **/ + @javax.annotation.Nullable + + public RouteAggregationsChange getChange() { + return change; + } + + + public void setChange(RouteAggregationsChange change) { + this.change = change; + } + + + public RouteAggregationsData 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 RouteAggregationsData rulesCount(Integer rulesCount) { + + this.rulesCount = rulesCount; + return this; + } + + /** + * Get rulesCount + * @return rulesCount + **/ + @javax.annotation.Nullable + + public Integer getRulesCount() { + return rulesCount; + } + + + public void setRulesCount(Integer rulesCount) { + this.rulesCount = rulesCount; + } + + + public RouteAggregationsData project(RouteAggregationsDataProject project) { + + this.project = project; + return this; + } + + /** + * Get project + * @return project + **/ + @javax.annotation.Nullable + + public RouteAggregationsDataProject getProject() { + return project; + } + + + public void setProject(RouteAggregationsDataProject project) { + this.project = project; + } + + + public RouteAggregationsData 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 RouteAggregationsData instance itself + */ + public RouteAggregationsData 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; + } + RouteAggregationsData routeAggregationsData = (RouteAggregationsData) o; + return Objects.equals(this.href, routeAggregationsData.href) && + Objects.equals(this.type, routeAggregationsData.type) && + Objects.equals(this.uuid, routeAggregationsData.uuid) && + Objects.equals(this.name, routeAggregationsData.name) && + Objects.equals(this.description, routeAggregationsData.description) && + Objects.equals(this.state, routeAggregationsData.state) && + Objects.equals(this.change, routeAggregationsData.change) && + Objects.equals(this.connectionsCount, routeAggregationsData.connectionsCount) && + Objects.equals(this.rulesCount, routeAggregationsData.rulesCount) && + Objects.equals(this.project, routeAggregationsData.project) && + Objects.equals(this.changeLog, routeAggregationsData.changeLog)&& + Objects.equals(this.additionalProperties, routeAggregationsData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, state, change, connectionsCount, rulesCount, project, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsData {\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(" connectionsCount: ").append(toIndentedString(connectionsCount)).append("\n"); + sb.append(" rulesCount: ").append(toIndentedString(rulesCount)).append("\n"); + sb.append(" project: ").append(toIndentedString(project)).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("connectionsCount"); + openapiFields.add("rulesCount"); + openapiFields.add("project"); + 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 RouteAggregationsData + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsData.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsData is not found in the empty JSON string", RouteAggregationsData.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()) { + RouteAggregationsChange.validateJsonObject(jsonObj.getAsJsonObject("change")); + } + // validate the optional field `project` + if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { + RouteAggregationsDataProject.validateJsonObject(jsonObj.getAsJsonObject("project")); + } + // 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 (!RouteAggregationsData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsData 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 RouteAggregationsData read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsData 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 RouteAggregationsData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsData + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsData + */ + public static RouteAggregationsData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsData.class); + } + + /** + * Convert an instance of RouteAggregationsData 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/RouteAggregationsDataProject.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsDataProject.java new file mode 100644 index 0000000..6f31a59 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsDataProject.java @@ -0,0 +1,319 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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; + +/** + * RouteAggregationsDataProject + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsDataProject { + 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 RouteAggregationsDataProject() { + } + + public RouteAggregationsDataProject 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 RouteAggregationsDataProject 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 RouteAggregationsDataProject instance itself + */ + public RouteAggregationsDataProject 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; + } + RouteAggregationsDataProject routeAggregationsDataProject = (RouteAggregationsDataProject) o; + return Objects.equals(this.projectId, routeAggregationsDataProject.projectId) && + Objects.equals(this.href, routeAggregationsDataProject.href)&& + Objects.equals(this.additionalProperties, routeAggregationsDataProject.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(projectId, href, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsDataProject {\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 RouteAggregationsDataProject + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsDataProject.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsDataProject is not found in the empty JSON string", RouteAggregationsDataProject.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationsDataProject.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 (!RouteAggregationsDataProject.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsDataProject' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsDataProject.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsDataProject 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 RouteAggregationsDataProject read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsDataProject 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 RouteAggregationsDataProject given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsDataProject + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsDataProject + */ + public static RouteAggregationsDataProject fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsDataProject.class); + } + + /** + * Convert an instance of RouteAggregationsDataProject 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/RouteAggregationsPatchRequestItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsPatchRequestItem.java new file mode 100644 index 0000000..7c262cd --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsPatchRequestItem.java @@ -0,0 +1,349 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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 Aggregation change operation data + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsPatchRequestItem { + 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 RouteAggregationsPatchRequestItem() { + } + + public RouteAggregationsPatchRequestItem 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 RouteAggregationsPatchRequestItem 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 RouteAggregationsPatchRequestItem 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 RouteAggregationsPatchRequestItem instance itself + */ + public RouteAggregationsPatchRequestItem 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; + } + RouteAggregationsPatchRequestItem routeAggregationsPatchRequestItem = (RouteAggregationsPatchRequestItem) o; + return Objects.equals(this.op, routeAggregationsPatchRequestItem.op) && + Objects.equals(this.path, routeAggregationsPatchRequestItem.path) && + Objects.equals(this.value, routeAggregationsPatchRequestItem.value)&& + Objects.equals(this.additionalProperties, routeAggregationsPatchRequestItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(op, path, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsPatchRequestItem {\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 RouteAggregationsPatchRequestItem + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsPatchRequestItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsPatchRequestItem is not found in the empty JSON string", RouteAggregationsPatchRequestItem.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RouteAggregationsPatchRequestItem.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 (!RouteAggregationsPatchRequestItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsPatchRequestItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsPatchRequestItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsPatchRequestItem 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 RouteAggregationsPatchRequestItem read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsPatchRequestItem 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 RouteAggregationsPatchRequestItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsPatchRequestItem + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsPatchRequestItem + */ + public static RouteAggregationsPatchRequestItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsPatchRequestItem.class); + } + + /** + * Convert an instance of RouteAggregationsPatchRequestItem 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/RouteAggregationsSearchBase.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBase.java new file mode 100644 index 0000000..e621451 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBase.java @@ -0,0 +1,368 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationSortItem; +import com.equinix.openapi.fabric.v4.model.RouteAggregationsSearchBaseFilter; +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; + +/** + * RouteAggregationsSearchBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsSearchBase { + public static final String SERIALIZED_NAME_FILTER = "filter"; + @SerializedName(SERIALIZED_NAME_FILTER) + private RouteAggregationsSearchBaseFilter filter; + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + private Pagination pagination; + + public static final String SERIALIZED_NAME_SORT = "sort"; + @SerializedName(SERIALIZED_NAME_SORT) + private List sort = new ArrayList<>(); + + public RouteAggregationsSearchBase() { + } + + public RouteAggregationsSearchBase filter(RouteAggregationsSearchBaseFilter filter) { + + this.filter = filter; + return this; + } + + /** + * Get filter + * @return filter + **/ + @javax.annotation.Nullable + + public RouteAggregationsSearchBaseFilter getFilter() { + return filter; + } + + + public void setFilter(RouteAggregationsSearchBaseFilter filter) { + this.filter = filter; + } + + + public RouteAggregationsSearchBase 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 RouteAggregationsSearchBase sort(List sort) { + + this.sort = sort; + return this; + } + + public RouteAggregationsSearchBase addSortItem(RouteAggregationSortItem sortItem) { + if (this.sort == null) { + this.sort = new ArrayList<>(); + } + this.sort.add(sortItem); + return this; + } + + /** + * Get sort + * @return sort + **/ + @javax.annotation.Nullable + + public List getSort() { + return sort; + } + + + public void setSort(List sort) { + this.sort = sort; + } + + /** + * 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 RouteAggregationsSearchBase instance itself + */ + public RouteAggregationsSearchBase 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; + } + RouteAggregationsSearchBase routeAggregationsSearchBase = (RouteAggregationsSearchBase) o; + return Objects.equals(this.filter, routeAggregationsSearchBase.filter) && + Objects.equals(this.pagination, routeAggregationsSearchBase.pagination) && + Objects.equals(this.sort, routeAggregationsSearchBase.sort)&& + Objects.equals(this.additionalProperties, routeAggregationsSearchBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filter, pagination, sort, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsSearchBase {\n"); + sb.append(" filter: ").append(toIndentedString(filter)).append("\n"); + sb.append(" pagination: ").append(toIndentedString(pagination)).append("\n"); + sb.append(" sort: ").append(toIndentedString(sort)).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("filter"); + openapiFields.add("pagination"); + openapiFields.add("sort"); + + // 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 RouteAggregationsSearchBase + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsSearchBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsSearchBase is not found in the empty JSON string", RouteAggregationsSearchBase.openapiRequiredFields.toString())); + } + } + // validate the optional field `filter` + if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { + RouteAggregationsSearchBaseFilter.validateJsonObject(jsonObj.getAsJsonObject("filter")); + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonObject(jsonObj.getAsJsonObject("pagination")); + } + if (jsonObj.get("sort") != null && !jsonObj.get("sort").isJsonNull()) { + JsonArray jsonArraysort = jsonObj.getAsJsonArray("sort"); + if (jsonArraysort != null) { + // ensure the json data is an array + if (!jsonObj.get("sort").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `sort` to be an array in the JSON string but got `%s`", jsonObj.get("sort").toString())); + } + + // validate the optional field `sort` (array) + for (int i = 0; i < jsonArraysort.size(); i++) { + RouteAggregationSortItem.validateJsonObject(jsonArraysort.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsSearchBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsSearchBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsSearchBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsSearchBase 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 RouteAggregationsSearchBase read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsSearchBase 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 RouteAggregationsSearchBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsSearchBase + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsSearchBase + */ + public static RouteAggregationsSearchBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsSearchBase.class); + } + + /** + * Convert an instance of RouteAggregationsSearchBase 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/RouteAggregationsSearchBaseFilter.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBaseFilter.java new file mode 100644 index 0000000..c337ccc --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchBaseFilter.java @@ -0,0 +1,300 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationsSearchFilterItem; +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; + +/** + * RouteAggregationsSearchBaseFilter + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsSearchBaseFilter { + public static final String SERIALIZED_NAME_AND = "and"; + @SerializedName(SERIALIZED_NAME_AND) + private List and = new ArrayList<>(); + + public RouteAggregationsSearchBaseFilter() { + } + + public RouteAggregationsSearchBaseFilter and(List and) { + + this.and = and; + return this; + } + + public RouteAggregationsSearchBaseFilter addAndItem(RouteAggregationsSearchFilterItem andItem) { + if (this.and == null) { + this.and = new ArrayList<>(); + } + this.and.add(andItem); + return this; + } + + /** + * Get and + * @return and + **/ + @javax.annotation.Nullable + + public List getAnd() { + return and; + } + + + public void setAnd(List and) { + this.and = and; + } + + /** + * 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 RouteAggregationsSearchBaseFilter instance itself + */ + public RouteAggregationsSearchBaseFilter 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; + } + RouteAggregationsSearchBaseFilter routeAggregationsSearchBaseFilter = (RouteAggregationsSearchBaseFilter) o; + return Objects.equals(this.and, routeAggregationsSearchBaseFilter.and)&& + Objects.equals(this.additionalProperties, routeAggregationsSearchBaseFilter.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(and, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsSearchBaseFilter {\n"); + sb.append(" and: ").append(toIndentedString(and)).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("and"); + + // 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 RouteAggregationsSearchBaseFilter + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsSearchBaseFilter.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsSearchBaseFilter is not found in the empty JSON string", RouteAggregationsSearchBaseFilter.openapiRequiredFields.toString())); + } + } + if (jsonObj.get("and") != null && !jsonObj.get("and").isJsonNull()) { + JsonArray jsonArrayand = jsonObj.getAsJsonArray("and"); + if (jsonArrayand != null) { + // ensure the json data is an array + if (!jsonObj.get("and").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `and` to be an array in the JSON string but got `%s`", jsonObj.get("and").toString())); + } + + // validate the optional field `and` (array) + for (int i = 0; i < jsonArrayand.size(); i++) { + RouteAggregationsSearchFilterItem.validateJsonObject(jsonArrayand.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsSearchBaseFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsSearchBaseFilter' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsSearchBaseFilter.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsSearchBaseFilter 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 RouteAggregationsSearchBaseFilter read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsSearchBaseFilter 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 RouteAggregationsSearchBaseFilter given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsSearchBaseFilter + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsSearchBaseFilter + */ + public static RouteAggregationsSearchBaseFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsSearchBaseFilter.class); + } + + /** + * Convert an instance of RouteAggregationsSearchBaseFilter 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/RouteAggregationsSearchFilterItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchFilterItem.java new file mode 100644 index 0000000..3185873 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchFilterItem.java @@ -0,0 +1,406 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.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; + +/** + * RouteAggregationsSearchFilterItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsSearchFilterItem { + /** + * Gets or Sets property + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + NAME("/name"), + + PROJECT_PROJECTID("/project/projectId"), + + UUID("/uuid"), + + STATE("/state"); + + private String value; + + PropertyEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PropertyEnum fromValue(String value) { + for (PropertyEnum b : PropertyEnum.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 PropertyEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PropertyEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PropertyEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + private PropertyEnum property; + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + private String operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + private List values = new ArrayList<>(); + + public RouteAggregationsSearchFilterItem() { + } + + public RouteAggregationsSearchFilterItem property(PropertyEnum property) { + + this.property = property; + return this; + } + + /** + * Get property + * @return property + **/ + @javax.annotation.Nullable + + public PropertyEnum getProperty() { + return property; + } + + + public void setProperty(PropertyEnum property) { + this.property = property; + } + + + public RouteAggregationsSearchFilterItem operator(String operator) { + + this.operator = operator; + return this; + } + + /** + * Get operator + * @return operator + **/ + @javax.annotation.Nullable + + public String getOperator() { + return operator; + } + + + public void setOperator(String operator) { + this.operator = operator; + } + + + public RouteAggregationsSearchFilterItem values(List values) { + + this.values = values; + return this; + } + + public RouteAggregationsSearchFilterItem addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * Get values + * @return values + **/ + @javax.annotation.Nullable + + public List getValues() { + return values; + } + + + public void setValues(List values) { + this.values = values; + } + + /** + * 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 RouteAggregationsSearchFilterItem instance itself + */ + public RouteAggregationsSearchFilterItem 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; + } + RouteAggregationsSearchFilterItem routeAggregationsSearchFilterItem = (RouteAggregationsSearchFilterItem) o; + return Objects.equals(this.property, routeAggregationsSearchFilterItem.property) && + Objects.equals(this.operator, routeAggregationsSearchFilterItem.operator) && + Objects.equals(this.values, routeAggregationsSearchFilterItem.values)&& + Objects.equals(this.additionalProperties, routeAggregationsSearchFilterItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, operator, values, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsSearchFilterItem {\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"); + 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("property"); + openapiFields.add("operator"); + openapiFields.add("values"); + + // 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 RouteAggregationsSearchFilterItem + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsSearchFilterItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsSearchFilterItem is not found in the empty JSON string", RouteAggregationsSearchFilterItem.openapiRequiredFields.toString())); + } + } + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").toString())); + } + if ((jsonObj.get("operator") != null && !jsonObj.get("operator").isJsonNull()) && !jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `operator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsSearchFilterItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsSearchFilterItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsSearchFilterItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsSearchFilterItem 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 RouteAggregationsSearchFilterItem read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsSearchFilterItem 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 RouteAggregationsSearchFilterItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsSearchFilterItem + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsSearchFilterItem + */ + public static RouteAggregationsSearchFilterItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsSearchFilterItem.class); + } + + /** + * Convert an instance of RouteAggregationsSearchFilterItem 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/RouteAggregationsSearchResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchResponse.java new file mode 100644 index 0000000..46f3c2e --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteAggregationsSearchResponse.java @@ -0,0 +1,334 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.RouteAggregationsData; +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; + +/** + * RouteAggregationsSearchResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class RouteAggregationsSearchResponse { + 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 RouteAggregationsSearchResponse() { + } + + public RouteAggregationsSearchResponse 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 RouteAggregationsSearchResponse data(List data) { + + this.data = data; + return this; + } + + public RouteAggregationsSearchResponse addDataItem(RouteAggregationsData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of Route Aggregations + * @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 RouteAggregationsSearchResponse instance itself + */ + public RouteAggregationsSearchResponse 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; + } + RouteAggregationsSearchResponse routeAggregationsSearchResponse = (RouteAggregationsSearchResponse) o; + return Objects.equals(this.pagination, routeAggregationsSearchResponse.pagination) && + Objects.equals(this.data, routeAggregationsSearchResponse.data)&& + Objects.equals(this.additionalProperties, routeAggregationsSearchResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationsSearchResponse {\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 RouteAggregationsSearchResponse + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!RouteAggregationsSearchResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RouteAggregationsSearchResponse is not found in the empty JSON string", RouteAggregationsSearchResponse.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++) { + RouteAggregationsData.validateJsonObject(jsonArraydata.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationsSearchResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationsSearchResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationsSearchResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationsSearchResponse 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 RouteAggregationsSearchResponse read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + RouteAggregationsSearchResponse 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 RouteAggregationsSearchResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationsSearchResponse + * @throws IOException if the JSON string is invalid with respect to RouteAggregationsSearchResponse + */ + public static RouteAggregationsSearchResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationsSearchResponse.class); + } + + /** + * Convert an instance of RouteAggregationsSearchResponse 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/RouteFilterChangeData.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterChangeData.java index 0836285..473ef02 100644 --- 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 @@ -45,7 +45,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Current state of latest Route Filter change + * Current state of latest route filter change */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterChangeData { @@ -225,7 +225,7 @@ public RouteFilterChangeData createdBy(String createdBy) { } /** - * Created by User Key + * Created by user key * @return createdBy **/ @javax.annotation.Nullable @@ -269,7 +269,7 @@ public RouteFilterChangeData updatedBy(String updatedBy) { } /** - * Updated by User Key + * Updated by user key * @return updatedBy **/ @javax.annotation.Nullable @@ -401,7 +401,7 @@ public RouteFilterChangeData href(URI href) { } /** - * Route Filter Change URI + * Route filter change URI * @return href **/ @javax.annotation.Nullable 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 index 245ef98..7e07b71 100644 --- 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 @@ -46,7 +46,7 @@ import com.equinix.openapi.fabric.JSON; /** - * List of Route Filter changes + * List of route filter changes */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterChangeDataResponse { 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 index 476780f..45cefb4 100644 --- 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 @@ -119,7 +119,7 @@ public RouteFilterConnectionsData uuid(UUID uuid) { } /** - * Route Filter identifier + * Route filter identifier * @return uuid **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRuleState.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRuleState.java index 442867f..acc708c 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRuleState.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRuleState.java @@ -22,7 +22,7 @@ import com.google.gson.stream.JsonWriter; /** - * Route Filter Rule status + * Route filter rule status */ @JsonAdapter(RouteFilterRuleState.Adapter.class) public enum RouteFilterRuleState { 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 index 536c5a3..906e7ff 100644 --- 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 @@ -43,7 +43,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Current state of latest Route Filter Rule change + * Current state of latest route filter rule change */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterRulesChange { 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 index 6e7dff2..39f97f6 100644 --- 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 @@ -45,7 +45,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Current state of latest Route Filter Rules change + * Current state of latest route filter rules change */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterRulesChangeData { 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 index 70ab713..c96c7bc 100644 --- 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 @@ -46,7 +46,7 @@ import com.equinix.openapi.fabric.JSON; /** - * List of Route Filter Rule changes + * List of route filter rule changes */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterRulesChangeDataResponse { 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 index 3652468..93bbfb6 100644 --- 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 @@ -43,7 +43,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Route Filter Rule change operation data + * Route filter rule change operation data */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterRulesChangeOperation { 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 index d4c0048..254730e 100644 --- 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 @@ -56,7 +56,7 @@ public class RouteFilterRulesData { private URI href; /** - * Route Filter type + * Route filter type */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -221,7 +221,7 @@ public RouteFilterRulesData type(TypeEnum type) { } /** - * Route Filter type + * Route filter type * @return type **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPatchRequestItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPatchRequestItem.java index d81542c..0df07d2 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPatchRequestItem.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFilterRulesPatchRequestItem.java @@ -42,7 +42,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Route Filter Rule change operation data + * Route filter rule change operation data */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFilterRulesPatchRequestItem { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java index 844638b..efbaddc 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersChange.java @@ -43,7 +43,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Current state of latest Route Filter change + * Current state of latest route filter change */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFiltersChange { @@ -168,7 +168,7 @@ public RouteFiltersChange href(URI href) { } /** - * Route Filter Change URI + * Route filter change URI * @return href **/ @javax.annotation.Nullable 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 index 6e77eba..380b727 100644 --- 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 @@ -43,7 +43,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Route Filter change operation data + * Route filter change operation data */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFiltersChangeOperation { 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 index 76384bd..07e498b 100644 --- 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 @@ -204,7 +204,7 @@ public RouteFiltersData href(URI href) { } /** - * Route Filter URI + * Route filter URI * @return href **/ @javax.annotation.Nullable @@ -248,7 +248,7 @@ public RouteFiltersData uuid(UUID uuid) { } /** - * Route Filter identifier + * Route filter identifier * @return uuid **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersPatchRequestItem.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersPatchRequestItem.java index 4824c71..fc30298 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersPatchRequestItem.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersPatchRequestItem.java @@ -42,7 +42,7 @@ import com.equinix.openapi.fabric.JSON; /** - * Route Filter change operation data + * Route filter change operation data */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class RouteFiltersPatchRequestItem { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersSearchResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersSearchResponse.java index c198fc5..291819f 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersSearchResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/RouteFiltersSearchResponse.java @@ -98,7 +98,7 @@ public RouteFiltersSearchResponse addDataItem(RouteFiltersData dataItem) { } /** - * List of Route Filters + * List of route filters * @return data **/ @javax.annotation.Nullable diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceToken.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceToken.java index caf9acd..4aeb243 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceToken.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceToken.java @@ -66,60 +66,17 @@ public class ServiceToken { @SerializedName(SERIALIZED_NAME_HREF) private URI href; + public static final String SERIALIZED_NAME_EXPIRY = "expiry"; + @SerializedName(SERIALIZED_NAME_EXPIRY) + private Integer expiry; + public static final String SERIALIZED_NAME_UUID = "uuid"; @SerializedName(SERIALIZED_NAME_UUID) private UUID uuid; - /** - * information about token side - */ - @JsonAdapter(IssuerSideEnum.Adapter.class) - public enum IssuerSideEnum { - ASIDE("ASIDE"), - - ZSIDE("ZSIDE"); - - private String value; - - IssuerSideEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static IssuerSideEnum fromValue(String value) { - for (IssuerSideEnum b : IssuerSideEnum.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 IssuerSideEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public IssuerSideEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return IssuerSideEnum.fromValue(value); - } - } - } - public static final String SERIALIZED_NAME_ISSUER_SIDE = "issuerSide"; @SerializedName(SERIALIZED_NAME_ISSUER_SIDE) - private IssuerSideEnum issuerSide; + private String issuerSide; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -203,6 +160,30 @@ public URI getHref() { + public ServiceToken expiry(Integer expiry) { + + this.expiry = expiry; + return this; + } + + /** + * Get expiry + * @return expiry + * @deprecated + **/ + @Deprecated + @javax.annotation.Nullable + + public Integer getExpiry() { + return expiry; + } + + + public void setExpiry(Integer expiry) { + this.expiry = expiry; + } + + public ServiceToken uuid(UUID uuid) { this.uuid = uuid; @@ -225,7 +206,7 @@ public void setUuid(UUID uuid) { } - public ServiceToken issuerSide(IssuerSideEnum issuerSide) { + public ServiceToken issuerSide(String issuerSide) { this.issuerSide = issuerSide; return this; @@ -234,15 +215,17 @@ public ServiceToken issuerSide(IssuerSideEnum issuerSide) { /** * information about token side * @return issuerSide + * @deprecated **/ + @Deprecated @javax.annotation.Nullable - public IssuerSideEnum getIssuerSide() { + public String getIssuerSide() { return issuerSide; } - public void setIssuerSide(IssuerSideEnum issuerSide) { + public void setIssuerSide(String issuerSide) { this.issuerSide = issuerSide; } @@ -509,6 +492,7 @@ public boolean equals(Object o) { ServiceToken serviceToken = (ServiceToken) o; return Objects.equals(this.type, serviceToken.type) && Objects.equals(this.href, serviceToken.href) && + Objects.equals(this.expiry, serviceToken.expiry) && Objects.equals(this.uuid, serviceToken.uuid) && Objects.equals(this.issuerSide, serviceToken.issuerSide) && Objects.equals(this.name, serviceToken.name) && @@ -525,7 +509,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(type, href, uuid, issuerSide, name, description, expirationDateTime, connection, state, notifications, account, changelog, project, additionalProperties); + return Objects.hash(type, href, expiry, uuid, issuerSide, name, description, expirationDateTime, connection, state, notifications, account, changelog, project, additionalProperties); } @Override @@ -534,6 +518,7 @@ public String toString() { sb.append("class ServiceToken {\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" expiry: ").append(toIndentedString(expiry)).append("\n"); sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); sb.append(" issuerSide: ").append(toIndentedString(issuerSide)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); @@ -570,6 +555,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("type"); openapiFields.add("href"); + openapiFields.add("expiry"); openapiFields.add("uuid"); openapiFields.add("issuerSide"); openapiFields.add("name"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceTokenConnection.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceTokenConnection.java index 4f201b9..85af461 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceTokenConnection.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/ServiceTokenConnection.java @@ -58,6 +58,8 @@ public class ServiceTokenConnection { public enum TypeEnum { EVPL_VC("EVPL_VC"), + EPL_VC("EPL_VC"), + EVPLAN_VC("EVPLAN_VC"), EPLAN_VC("EPLAN_VC"), diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocation.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocation.java index 318f742..1d57ce6 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocation.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocation.java @@ -46,6 +46,10 @@ */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class SimplifiedLocation { + public static final String SERIALIZED_NAME_METRO_HREF = "metroHref"; + @SerializedName(SERIALIZED_NAME_METRO_HREF) + private String metroHref; + public static final String SERIALIZED_NAME_REGION = "region"; @SerializedName(SERIALIZED_NAME_REGION) private String region; @@ -58,10 +62,6 @@ public class SimplifiedLocation { @SerializedName(SERIALIZED_NAME_METRO_CODE) private String metroCode; - public static final String SERIALIZED_NAME_METRO_HREF = "metroHref"; - @SerializedName(SERIALIZED_NAME_METRO_HREF) - private String metroHref; - public static final String SERIALIZED_NAME_IBX = "ibx"; @SerializedName(SERIALIZED_NAME_IBX) private String ibx; @@ -69,6 +69,28 @@ public class SimplifiedLocation { public SimplifiedLocation() { } + public SimplifiedLocation metroHref(String metroHref) { + + this.metroHref = metroHref; + return this; + } + + /** + * Get metroHref + * @return metroHref + **/ + @javax.annotation.Nullable + + public String getMetroHref() { + return metroHref; + } + + + public void setMetroHref(String metroHref) { + this.metroHref = metroHref; + } + + public SimplifiedLocation region(String region) { this.region = region; @@ -135,28 +157,6 @@ public void setMetroCode(String metroCode) { } - public SimplifiedLocation metroHref(String metroHref) { - - this.metroHref = metroHref; - return this; - } - - /** - * Get metroHref - * @return metroHref - **/ - @javax.annotation.Nullable - - public String getMetroHref() { - return metroHref; - } - - - public void setMetroHref(String metroHref) { - this.metroHref = metroHref; - } - - public SimplifiedLocation ibx(String ibx) { this.ibx = ibx; @@ -235,27 +235,27 @@ public boolean equals(Object o) { return false; } SimplifiedLocation simplifiedLocation = (SimplifiedLocation) o; - return Objects.equals(this.region, simplifiedLocation.region) && + return Objects.equals(this.metroHref, simplifiedLocation.metroHref) && + Objects.equals(this.region, simplifiedLocation.region) && Objects.equals(this.metroName, simplifiedLocation.metroName) && Objects.equals(this.metroCode, simplifiedLocation.metroCode) && - Objects.equals(this.metroHref, simplifiedLocation.metroHref) && Objects.equals(this.ibx, simplifiedLocation.ibx)&& Objects.equals(this.additionalProperties, simplifiedLocation.additionalProperties); } @Override public int hashCode() { - return Objects.hash(region, metroName, metroCode, metroHref, ibx, additionalProperties); + return Objects.hash(metroHref, region, metroName, metroCode, ibx, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SimplifiedLocation {\n"); + sb.append(" metroHref: ").append(toIndentedString(metroHref)).append("\n"); sb.append(" region: ").append(toIndentedString(region)).append("\n"); sb.append(" metroName: ").append(toIndentedString(metroName)).append("\n"); sb.append(" metroCode: ").append(toIndentedString(metroCode)).append("\n"); - sb.append(" metroHref: ").append(toIndentedString(metroHref)).append("\n"); sb.append(" ibx: ").append(toIndentedString(ibx)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -280,10 +280,10 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("metroHref"); openapiFields.add("region"); openapiFields.add("metroName"); openapiFields.add("metroCode"); - openapiFields.add("metroHref"); openapiFields.add("ibx"); // a set of required properties/fields (JSON key names) @@ -302,6 +302,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { throw new IllegalArgumentException(String.format("The required field(s) %s in SimplifiedLocation is not found in the empty JSON string", SimplifiedLocation.openapiRequiredFields.toString())); } } + if ((jsonObj.get("metroHref") != null && !jsonObj.get("metroHref").isJsonNull()) && !jsonObj.get("metroHref").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `metroHref` to be a primitive type in the JSON string but got `%s`", jsonObj.get("metroHref").toString())); + } if ((jsonObj.get("region") != null && !jsonObj.get("region").isJsonNull()) && !jsonObj.get("region").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `region` to be a primitive type in the JSON string but got `%s`", jsonObj.get("region").toString())); } @@ -311,9 +314,6 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if ((jsonObj.get("metroCode") != null && !jsonObj.get("metroCode").isJsonNull()) && !jsonObj.get("metroCode").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `metroCode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("metroCode").toString())); } - if ((jsonObj.get("metroHref") != null && !jsonObj.get("metroHref").isJsonNull()) && !jsonObj.get("metroHref").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `metroHref` to be a primitive type in the JSON string but got `%s`", jsonObj.get("metroHref").toString())); - } if ((jsonObj.get("ibx") != null && !jsonObj.get("ibx").isJsonNull()) && !jsonObj.get("ibx").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `ibx` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ibx").toString())); } diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocationWithoutIBX.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocationWithoutIBX.java index a5f3739..a3a99e8 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocationWithoutIBX.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedLocationWithoutIBX.java @@ -46,9 +46,9 @@ */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class SimplifiedLocationWithoutIBX { - public static final String SERIALIZED_NAME_HREF = "href"; - @SerializedName(SERIALIZED_NAME_HREF) - private String href; + public static final String SERIALIZED_NAME_METRO_HREF = "metroHref"; + @SerializedName(SERIALIZED_NAME_METRO_HREF) + private String metroHref; public static final String SERIALIZED_NAME_REGION = "region"; @SerializedName(SERIALIZED_NAME_REGION) @@ -65,25 +65,25 @@ public class SimplifiedLocationWithoutIBX { public SimplifiedLocationWithoutIBX() { } - public SimplifiedLocationWithoutIBX href(String href) { + public SimplifiedLocationWithoutIBX metroHref(String metroHref) { - this.href = href; + this.metroHref = metroHref; return this; } /** * The Canonical URL at which the resource resides. - * @return href + * @return metroHref **/ @javax.annotation.Nullable - public String getHref() { - return href; + public String getMetroHref() { + return metroHref; } - public void setHref(String href) { - this.href = href; + public void setMetroHref(String metroHref) { + this.metroHref = metroHref; } @@ -207,7 +207,7 @@ public boolean equals(Object o) { return false; } SimplifiedLocationWithoutIBX simplifiedLocationWithoutIBX = (SimplifiedLocationWithoutIBX) o; - return Objects.equals(this.href, simplifiedLocationWithoutIBX.href) && + return Objects.equals(this.metroHref, simplifiedLocationWithoutIBX.metroHref) && Objects.equals(this.region, simplifiedLocationWithoutIBX.region) && Objects.equals(this.metroName, simplifiedLocationWithoutIBX.metroName) && Objects.equals(this.metroCode, simplifiedLocationWithoutIBX.metroCode)&& @@ -216,14 +216,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, region, metroName, metroCode, additionalProperties); + return Objects.hash(metroHref, region, metroName, metroCode, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SimplifiedLocationWithoutIBX {\n"); - sb.append(" href: ").append(toIndentedString(href)).append("\n"); + sb.append(" metroHref: ").append(toIndentedString(metroHref)).append("\n"); sb.append(" region: ").append(toIndentedString(region)).append("\n"); sb.append(" metroName: ").append(toIndentedString(metroName)).append("\n"); sb.append(" metroCode: ").append(toIndentedString(metroCode)).append("\n"); @@ -250,7 +250,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("href"); + openapiFields.add("metroHref"); openapiFields.add("region"); openapiFields.add("metroName"); openapiFields.add("metroCode"); @@ -279,8 +279,8 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.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("metroHref") != null && !jsonObj.get("metroHref").isJsonNull()) && !jsonObj.get("metroHref").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `metroHref` to be a primitive type in the JSON string but got `%s`", jsonObj.get("metroHref").toString())); } if ((jsonObj.get("region") != null && !jsonObj.get("region").isJsonNull()) && !jsonObj.get("region").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `region` to be a primitive type in the JSON string but got `%s`", jsonObj.get("region").toString())); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedPort.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedPort.java index ed68cc8..537c28b 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedPort.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SimplifiedPort.java @@ -66,6 +66,10 @@ */ @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class SimplifiedPort { + 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 PortType type; @@ -74,10 +78,6 @@ public class SimplifiedPort { @SerializedName(SERIALIZED_NAME_ID) private Integer id; - 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; @@ -240,6 +240,19 @@ public SimplifiedPort( this.href = href; } + /** + * Equinix assigned response attribute for an absolute URL that is the subject of the link's context. + * @return href + **/ + @javax.annotation.Nullable + + public URI getHref() { + return href; + } + + + + public SimplifiedPort type(PortType type) { this.type = type; @@ -284,19 +297,6 @@ public void setId(Integer id) { } - /** - * Equinix assigned response attribute for an absolute URL that is the subject of the link's context. - * @return href - **/ - @javax.annotation.Nullable - - public URI getHref() { - return href; - } - - - - public SimplifiedPort uuid(UUID uuid) { this.uuid = uuid; @@ -946,9 +946,9 @@ public boolean equals(Object o) { return false; } SimplifiedPort simplifiedPort = (SimplifiedPort) o; - return Objects.equals(this.type, simplifiedPort.type) && + return Objects.equals(this.href, simplifiedPort.href) && + Objects.equals(this.type, simplifiedPort.type) && Objects.equals(this.id, simplifiedPort.id) && - Objects.equals(this.href, simplifiedPort.href) && Objects.equals(this.uuid, simplifiedPort.uuid) && Objects.equals(this.name, simplifiedPort.name) && Objects.equals(this.description, simplifiedPort.description) && @@ -980,16 +980,16 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(type, id, href, uuid, name, description, physicalPortsSpeed, connectionsCount, project, state, operation, account, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, tether, demarcationPoint, redundancy, encapsulation, lagEnabled, _package, settings, physicalPortQuantity, additionalInfo, physicalPorts, additionalProperties); + return Objects.hash(href, type, id, uuid, name, description, physicalPortsSpeed, connectionsCount, project, state, operation, account, serviceType, bandwidth, availableBandwidth, usedBandwidth, location, device, _interface, tether, demarcationPoint, redundancy, encapsulation, lagEnabled, _package, settings, physicalPortQuantity, additionalInfo, physicalPorts, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SimplifiedPort {\n"); + sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" href: ").append(toIndentedString(href)).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"); @@ -1039,9 +1039,9 @@ 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("id"); - openapiFields.add("href"); openapiFields.add("uuid"); openapiFields.add("name"); openapiFields.add("description"); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Stream.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Stream.java index 57ff690..1162dd8 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Stream.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/Stream.java @@ -123,9 +123,9 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_STREAM_SUBSCRIPTIONS_COUNT) private Integer streamSubscriptionsCount; - public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; - @SerializedName(SERIALIZED_NAME_CHANGELOG) - private Changelog changelog; + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + private Changelog changeLog; /** * Gets or Sets type @@ -304,25 +304,25 @@ public void setStreamSubscriptionsCount(Integer streamSubscriptionsCount) { } - public Stream changelog(Changelog changelog) { + public Stream changeLog(Changelog changeLog) { - this.changelog = changelog; + this.changeLog = changeLog; return this; } /** - * Get changelog - * @return changelog + * Get changeLog + * @return changeLog **/ @javax.annotation.Nullable - public Changelog getChangelog() { - return changelog; + public Changelog getChangeLog() { + return changeLog; } - public void setChangelog(Changelog changelog) { - this.changelog = changelog; + public void setChangeLog(Changelog changeLog) { + this.changeLog = changeLog; } @@ -495,7 +495,7 @@ public boolean equals(Object o) { Objects.equals(this.state, stream.state) && Objects.equals(this.assetsCount, stream.assetsCount) && Objects.equals(this.streamSubscriptionsCount, stream.streamSubscriptionsCount) && - Objects.equals(this.changelog, stream.changelog) && + Objects.equals(this.changeLog, stream.changeLog) && Objects.equals(this.type, stream.type) && Objects.equals(this.name, stream.name) && Objects.equals(this.description, stream.description) && @@ -506,7 +506,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, uuid, state, assetsCount, streamSubscriptionsCount, changelog, type, name, description, project, enabled, additionalProperties); + return Objects.hash(href, uuid, state, assetsCount, streamSubscriptionsCount, changeLog, type, name, description, project, enabled, additionalProperties); } @Override @@ -518,7 +518,7 @@ public String toString() { sb.append(" state: ").append(toIndentedString(state)).append("\n"); sb.append(" assetsCount: ").append(toIndentedString(assetsCount)).append("\n"); sb.append(" streamSubscriptionsCount: ").append(toIndentedString(streamSubscriptionsCount)).append("\n"); - sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" changeLog: ").append(toIndentedString(changeLog)).append("\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"); @@ -578,9 +578,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if ((jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) && !jsonObj.get("state").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("state").toString())); } - // validate the optional field `changelog` - if (jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) { - Changelog.validateJsonObject(jsonObj.getAsJsonObject("changelog")); + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonObject(jsonObj.getAsJsonObject("changeLog")); } 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())); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamAsset.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamAsset.java index 3229f44..728196f 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamAsset.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamAsset.java @@ -56,6 +56,69 @@ public class StreamAsset { @SerializedName(SERIALIZED_NAME_UUID) private UUID uuid; + /** + * Asset types + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + XF_PORT("XF_PORT"), + + IP_VC("IP_VC"), + + EVPLAN_VC("EVPLAN_VC"), + + EVPL_VC("EVPL_VC"), + + XF_METRO("XF_METRO"), + + XF_ROUTER("XF_ROUTER"), + + ORGANIZATION("ORGANIZATION"), + + PROJECT("PROJECT"); + + 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_METRICS_ENABLED = "metricsEnabled"; @SerializedName(SERIALIZED_NAME_METRICS_ENABLED) private Boolean metricsEnabled; @@ -163,6 +226,28 @@ public void setUuid(UUID uuid) { } + public StreamAsset type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Asset types + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + public StreamAsset metricsEnabled(Boolean metricsEnabled) { this.metricsEnabled = metricsEnabled; @@ -263,6 +348,7 @@ public boolean equals(Object o) { StreamAsset streamAsset = (StreamAsset) o; return Objects.equals(this.href, streamAsset.href) && Objects.equals(this.uuid, streamAsset.uuid) && + Objects.equals(this.type, streamAsset.type) && Objects.equals(this.metricsEnabled, streamAsset.metricsEnabled) && Objects.equals(this.attachmentStatus, streamAsset.attachmentStatus)&& Objects.equals(this.additionalProperties, streamAsset.additionalProperties); @@ -270,7 +356,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, uuid, metricsEnabled, attachmentStatus, additionalProperties); + return Objects.hash(href, uuid, type, metricsEnabled, attachmentStatus, additionalProperties); } @Override @@ -279,6 +365,7 @@ public String toString() { sb.append("class StreamAsset {\n"); sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" metricsEnabled: ").append(toIndentedString(metricsEnabled)).append("\n"); sb.append(" attachmentStatus: ").append(toIndentedString(attachmentStatus)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -306,6 +393,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("href"); openapiFields.add("uuid"); + openapiFields.add("type"); openapiFields.add("metricsEnabled"); openapiFields.add("attachmentStatus"); @@ -331,6 +419,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { 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("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("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())); } diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscription.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscription.java index 69487f3..2ce78c1 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscription.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscription.java @@ -16,6 +16,7 @@ import com.equinix.openapi.fabric.v4.model.Changelog; import com.equinix.openapi.fabric.v4.model.Project; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionFilter; +import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSelector; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSink; import com.equinix.openapi.fabric.v4.model.StreamTarget; import com.google.gson.TypeAdapter; @@ -191,13 +192,21 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FILTERS) private StreamSubscriptionFilter filters; + public static final String SERIALIZED_NAME_METRIC_SELECTOR = "metricSelector"; + @SerializedName(SERIALIZED_NAME_METRIC_SELECTOR) + private StreamSubscriptionSelector metricSelector; + + public static final String SERIALIZED_NAME_EVENT_SELECTOR = "eventSelector"; + @SerializedName(SERIALIZED_NAME_EVENT_SELECTOR) + private StreamSubscriptionSelector eventSelector; + public static final String SERIALIZED_NAME_SINK = "sink"; @SerializedName(SERIALIZED_NAME_SINK) private StreamSubscriptionSink sink; - public static final String SERIALIZED_NAME_CHANGELOG = "changelog"; - @SerializedName(SERIALIZED_NAME_CHANGELOG) - private Changelog changelog; + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + private Changelog changeLog; public StreamSubscription() { } @@ -421,6 +430,50 @@ public void setFilters(StreamSubscriptionFilter filters) { } + public StreamSubscription metricSelector(StreamSubscriptionSelector metricSelector) { + + this.metricSelector = metricSelector; + return this; + } + + /** + * Get metricSelector + * @return metricSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getMetricSelector() { + return metricSelector; + } + + + public void setMetricSelector(StreamSubscriptionSelector metricSelector) { + this.metricSelector = metricSelector; + } + + + public StreamSubscription eventSelector(StreamSubscriptionSelector eventSelector) { + + this.eventSelector = eventSelector; + return this; + } + + /** + * Get eventSelector + * @return eventSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getEventSelector() { + return eventSelector; + } + + + public void setEventSelector(StreamSubscriptionSelector eventSelector) { + this.eventSelector = eventSelector; + } + + public StreamSubscription sink(StreamSubscriptionSink sink) { this.sink = sink; @@ -443,25 +496,25 @@ public void setSink(StreamSubscriptionSink sink) { } - public StreamSubscription changelog(Changelog changelog) { + public StreamSubscription changeLog(Changelog changeLog) { - this.changelog = changelog; + this.changeLog = changeLog; return this; } /** - * Get changelog - * @return changelog + * Get changeLog + * @return changeLog **/ @javax.annotation.Nullable - public Changelog getChangelog() { - return changelog; + public Changelog getChangeLog() { + return changeLog; } - public void setChangelog(Changelog changelog) { - this.changelog = changelog; + public void setChangeLog(Changelog changeLog) { + this.changeLog = changeLog; } /** @@ -529,14 +582,16 @@ public boolean equals(Object o) { Objects.equals(this.enabled, streamSubscription.enabled) && Objects.equals(this.stream, streamSubscription.stream) && Objects.equals(this.filters, streamSubscription.filters) && + Objects.equals(this.metricSelector, streamSubscription.metricSelector) && + Objects.equals(this.eventSelector, streamSubscription.eventSelector) && Objects.equals(this.sink, streamSubscription.sink) && - Objects.equals(this.changelog, streamSubscription.changelog)&& + Objects.equals(this.changeLog, streamSubscription.changeLog)&& Objects.equals(this.additionalProperties, streamSubscription.additionalProperties); } @Override public int hashCode() { - return Objects.hash(href, uuid, type, name, description, project, state, enabled, stream, filters, sink, changelog, additionalProperties); + return Objects.hash(href, uuid, type, name, description, project, state, enabled, stream, filters, metricSelector, eventSelector, sink, changeLog, additionalProperties); } @Override @@ -553,8 +608,10 @@ public String toString() { sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" stream: ").append(toIndentedString(stream)).append("\n"); sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" metricSelector: ").append(toIndentedString(metricSelector)).append("\n"); + sb.append(" eventSelector: ").append(toIndentedString(eventSelector)).append("\n"); sb.append(" sink: ").append(toIndentedString(sink)).append("\n"); - sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); + sb.append(" changeLog: ").append(toIndentedString(changeLog)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -588,8 +645,10 @@ private String toIndentedString(Object o) { openapiFields.add("enabled"); openapiFields.add("stream"); openapiFields.add("filters"); + openapiFields.add("metricSelector"); + openapiFields.add("eventSelector"); openapiFields.add("sink"); - openapiFields.add("changelog"); + openapiFields.add("changeLog"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -637,13 +696,21 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("filters") != null && !jsonObj.get("filters").isJsonNull()) { StreamSubscriptionFilter.validateJsonObject(jsonObj.getAsJsonObject("filters")); } + // validate the optional field `metricSelector` + if (jsonObj.get("metricSelector") != null && !jsonObj.get("metricSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("metricSelector")); + } + // validate the optional field `eventSelector` + if (jsonObj.get("eventSelector") != null && !jsonObj.get("eventSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("eventSelector")); + } // validate the optional field `sink` if (jsonObj.get("sink") != null && !jsonObj.get("sink").isJsonNull()) { StreamSubscriptionSink.validateJsonObject(jsonObj.getAsJsonObject("sink")); } - // validate the optional field `changelog` - if (jsonObj.get("changelog") != null && !jsonObj.get("changelog").isJsonNull()) { - Changelog.validateJsonObject(jsonObj.getAsJsonObject("changelog")); + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonObject(jsonObj.getAsJsonObject("changeLog")); } } diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequest.java index ea2bea0..5ace848 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPostRequest.java @@ -15,6 +15,7 @@ import java.util.Arrays; import com.equinix.openapi.fabric.v4.model.Project; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionFilter; +import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSelector; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSink; import com.equinix.openapi.fabric.v4.model.StreamTarget; import com.google.gson.TypeAdapter; @@ -123,6 +124,14 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FILTERS) private StreamSubscriptionFilter filters; + public static final String SERIALIZED_NAME_METRIC_SELECTOR = "metricSelector"; + @SerializedName(SERIALIZED_NAME_METRIC_SELECTOR) + private StreamSubscriptionSelector metricSelector; + + public static final String SERIALIZED_NAME_EVENT_SELECTOR = "eventSelector"; + @SerializedName(SERIALIZED_NAME_EVENT_SELECTOR) + private StreamSubscriptionSelector eventSelector; + public static final String SERIALIZED_NAME_SINK = "sink"; @SerializedName(SERIALIZED_NAME_SINK) private StreamSubscriptionSink sink; @@ -284,6 +293,50 @@ public void setFilters(StreamSubscriptionFilter filters) { } + public StreamSubscriptionPostRequest metricSelector(StreamSubscriptionSelector metricSelector) { + + this.metricSelector = metricSelector; + return this; + } + + /** + * Get metricSelector + * @return metricSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getMetricSelector() { + return metricSelector; + } + + + public void setMetricSelector(StreamSubscriptionSelector metricSelector) { + this.metricSelector = metricSelector; + } + + + public StreamSubscriptionPostRequest eventSelector(StreamSubscriptionSelector eventSelector) { + + this.eventSelector = eventSelector; + return this; + } + + /** + * Get eventSelector + * @return eventSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getEventSelector() { + return eventSelector; + } + + + public void setEventSelector(StreamSubscriptionSelector eventSelector) { + this.eventSelector = eventSelector; + } + + public StreamSubscriptionPostRequest sink(StreamSubscriptionSink sink) { this.sink = sink; @@ -367,13 +420,15 @@ public boolean equals(Object o) { Objects.equals(this.enabled, streamSubscriptionPostRequest.enabled) && Objects.equals(this.stream, streamSubscriptionPostRequest.stream) && Objects.equals(this.filters, streamSubscriptionPostRequest.filters) && + Objects.equals(this.metricSelector, streamSubscriptionPostRequest.metricSelector) && + Objects.equals(this.eventSelector, streamSubscriptionPostRequest.eventSelector) && Objects.equals(this.sink, streamSubscriptionPostRequest.sink)&& Objects.equals(this.additionalProperties, streamSubscriptionPostRequest.additionalProperties); } @Override public int hashCode() { - return Objects.hash(type, name, description, project, enabled, stream, filters, sink, additionalProperties); + return Objects.hash(type, name, description, project, enabled, stream, filters, metricSelector, eventSelector, sink, additionalProperties); } @Override @@ -387,6 +442,8 @@ public String toString() { sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" stream: ").append(toIndentedString(stream)).append("\n"); sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" metricSelector: ").append(toIndentedString(metricSelector)).append("\n"); + sb.append(" eventSelector: ").append(toIndentedString(eventSelector)).append("\n"); sb.append(" sink: ").append(toIndentedString(sink)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -418,6 +475,8 @@ private String toIndentedString(Object o) { openapiFields.add("enabled"); openapiFields.add("stream"); openapiFields.add("filters"); + openapiFields.add("metricSelector"); + openapiFields.add("eventSelector"); openapiFields.add("sink"); // a set of required properties/fields (JSON key names) @@ -457,6 +516,14 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("filters") != null && !jsonObj.get("filters").isJsonNull()) { StreamSubscriptionFilter.validateJsonObject(jsonObj.getAsJsonObject("filters")); } + // validate the optional field `metricSelector` + if (jsonObj.get("metricSelector") != null && !jsonObj.get("metricSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("metricSelector")); + } + // validate the optional field `eventSelector` + if (jsonObj.get("eventSelector") != null && !jsonObj.get("eventSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("eventSelector")); + } // validate the optional field `sink` if (jsonObj.get("sink") != null && !jsonObj.get("sink").isJsonNull()) { StreamSubscriptionSink.validateJsonObject(jsonObj.getAsJsonObject("sink")); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequest.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequest.java index 43a909e..0137478 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequest.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionPutRequest.java @@ -14,6 +14,7 @@ import java.util.Objects; import java.util.Arrays; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionFilter; +import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSelector; import com.equinix.openapi.fabric.v4.model.StreamSubscriptionSink; import com.equinix.openapi.fabric.v4.model.StreamTarget; import com.google.gson.TypeAdapter; @@ -69,6 +70,14 @@ public class StreamSubscriptionPutRequest { @SerializedName(SERIALIZED_NAME_FILTERS) private StreamSubscriptionFilter filters; + public static final String SERIALIZED_NAME_METRIC_SELECTOR = "metricSelector"; + @SerializedName(SERIALIZED_NAME_METRIC_SELECTOR) + private StreamSubscriptionSelector metricSelector; + + public static final String SERIALIZED_NAME_EVENT_SELECTOR = "eventSelector"; + @SerializedName(SERIALIZED_NAME_EVENT_SELECTOR) + private StreamSubscriptionSelector eventSelector; + public static final String SERIALIZED_NAME_SINK = "sink"; @SerializedName(SERIALIZED_NAME_SINK) private StreamSubscriptionSink sink; @@ -186,6 +195,50 @@ public void setFilters(StreamSubscriptionFilter filters) { } + public StreamSubscriptionPutRequest metricSelector(StreamSubscriptionSelector metricSelector) { + + this.metricSelector = metricSelector; + return this; + } + + /** + * Get metricSelector + * @return metricSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getMetricSelector() { + return metricSelector; + } + + + public void setMetricSelector(StreamSubscriptionSelector metricSelector) { + this.metricSelector = metricSelector; + } + + + public StreamSubscriptionPutRequest eventSelector(StreamSubscriptionSelector eventSelector) { + + this.eventSelector = eventSelector; + return this; + } + + /** + * Get eventSelector + * @return eventSelector + **/ + @javax.annotation.Nullable + + public StreamSubscriptionSelector getEventSelector() { + return eventSelector; + } + + + public void setEventSelector(StreamSubscriptionSelector eventSelector) { + this.eventSelector = eventSelector; + } + + public StreamSubscriptionPutRequest sink(StreamSubscriptionSink sink) { this.sink = sink; @@ -267,13 +320,15 @@ public boolean equals(Object o) { Objects.equals(this.stream, streamSubscriptionPutRequest.stream) && Objects.equals(this.enabled, streamSubscriptionPutRequest.enabled) && Objects.equals(this.filters, streamSubscriptionPutRequest.filters) && + Objects.equals(this.metricSelector, streamSubscriptionPutRequest.metricSelector) && + Objects.equals(this.eventSelector, streamSubscriptionPutRequest.eventSelector) && Objects.equals(this.sink, streamSubscriptionPutRequest.sink)&& Objects.equals(this.additionalProperties, streamSubscriptionPutRequest.additionalProperties); } @Override public int hashCode() { - return Objects.hash(name, description, stream, enabled, filters, sink, additionalProperties); + return Objects.hash(name, description, stream, enabled, filters, metricSelector, eventSelector, sink, additionalProperties); } @Override @@ -285,6 +340,8 @@ public String toString() { sb.append(" stream: ").append(toIndentedString(stream)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" metricSelector: ").append(toIndentedString(metricSelector)).append("\n"); + sb.append(" eventSelector: ").append(toIndentedString(eventSelector)).append("\n"); sb.append(" sink: ").append(toIndentedString(sink)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -314,6 +371,8 @@ private String toIndentedString(Object o) { openapiFields.add("stream"); openapiFields.add("enabled"); openapiFields.add("filters"); + openapiFields.add("metricSelector"); + openapiFields.add("eventSelector"); openapiFields.add("sink"); // a set of required properties/fields (JSON key names) @@ -346,6 +405,14 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("filters") != null && !jsonObj.get("filters").isJsonNull()) { StreamSubscriptionFilter.validateJsonObject(jsonObj.getAsJsonObject("filters")); } + // validate the optional field `metricSelector` + if (jsonObj.get("metricSelector") != null && !jsonObj.get("metricSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("metricSelector")); + } + // validate the optional field `eventSelector` + if (jsonObj.get("eventSelector") != null && !jsonObj.get("eventSelector").isJsonNull()) { + StreamSubscriptionSelector.validateJsonObject(jsonObj.getAsJsonObject("eventSelector")); + } // validate the optional field `sink` if (jsonObj.get("sink") != null && !jsonObj.get("sink").isJsonNull()) { StreamSubscriptionSink.validateJsonObject(jsonObj.getAsJsonObject("sink")); diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSelector.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSelector.java new file mode 100644 index 0000000..24c9848 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/StreamSubscriptionSelector.java @@ -0,0 +1,330 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.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; + +/** + * StreamSubscriptionSelector + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class StreamSubscriptionSelector { + public static final String SERIALIZED_NAME_INCLUDE = "include"; + @SerializedName(SERIALIZED_NAME_INCLUDE) + private List include = new ArrayList<>(); + + public static final String SERIALIZED_NAME_EXCEPT = "except"; + @SerializedName(SERIALIZED_NAME_EXCEPT) + private List except = new ArrayList<>(); + + public StreamSubscriptionSelector() { + } + + public StreamSubscriptionSelector include(List include) { + + this.include = include; + return this; + } + + public StreamSubscriptionSelector addIncludeItem(String includeItem) { + if (this.include == null) { + this.include = new ArrayList<>(); + } + this.include.add(includeItem); + return this; + } + + /** + * Get include + * @return include + **/ + @javax.annotation.Nullable + + public List getInclude() { + return include; + } + + + public void setInclude(List include) { + this.include = include; + } + + + public StreamSubscriptionSelector except(List except) { + + this.except = except; + return this; + } + + public StreamSubscriptionSelector addExceptItem(String exceptItem) { + if (this.except == null) { + this.except = new ArrayList<>(); + } + this.except.add(exceptItem); + return this; + } + + /** + * Get except + * @return except + **/ + @javax.annotation.Nullable + + public List getExcept() { + return except; + } + + + public void setExcept(List except) { + this.except = except; + } + + /** + * 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 StreamSubscriptionSelector instance itself + */ + public StreamSubscriptionSelector 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; + } + StreamSubscriptionSelector streamSubscriptionSelector = (StreamSubscriptionSelector) o; + return Objects.equals(this.include, streamSubscriptionSelector.include) && + Objects.equals(this.except, streamSubscriptionSelector.except)&& + Objects.equals(this.additionalProperties, streamSubscriptionSelector.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(include, except, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StreamSubscriptionSelector {\n"); + sb.append(" include: ").append(toIndentedString(include)).append("\n"); + sb.append(" except: ").append(toIndentedString(except)).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("include"); + openapiFields.add("except"); + + // 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 StreamSubscriptionSelector + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!StreamSubscriptionSelector.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StreamSubscriptionSelector is not found in the empty JSON string", StreamSubscriptionSelector.openapiRequiredFields.toString())); + } + } + // ensure the optional json data is an array if present + if (jsonObj.get("include") != null && !jsonObj.get("include").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `include` to be an array in the JSON string but got `%s`", jsonObj.get("include").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("except") != null && !jsonObj.get("except").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `except` to be an array in the JSON string but got `%s`", jsonObj.get("except").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StreamSubscriptionSelector.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StreamSubscriptionSelector' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StreamSubscriptionSelector.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StreamSubscriptionSelector 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 StreamSubscriptionSelector read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + StreamSubscriptionSelector 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 StreamSubscriptionSelector given an JSON string + * + * @param jsonString JSON string + * @return An instance of StreamSubscriptionSelector + * @throws IOException if the JSON string is invalid with respect to StreamSubscriptionSelector + */ + public static StreamSubscriptionSelector fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StreamSubscriptionSelector.class); + } + + /** + * Convert an instance of StreamSubscriptionSelector 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/SubscriptionResponse.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SubscriptionResponse.java index c99a5a6..5ea38ee 100644 --- a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SubscriptionResponse.java +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/SubscriptionResponse.java @@ -184,9 +184,9 @@ public OfferTypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TRIAL) private SubscriptionTrial trial; - public static final String SERIALIZED_NAME_SUBSCRIPTION_KEY = "subscriptionKey"; - @SerializedName(SERIALIZED_NAME_SUBSCRIPTION_KEY) - private String subscriptionKey; + public static final String SERIALIZED_NAME_METRO_CODES = "metroCodes"; + @SerializedName(SERIALIZED_NAME_METRO_CODES) + private List metroCodes = new ArrayList<>(); public static final String SERIALIZED_NAME_ENTITLEMENTS = "entitlements"; @SerializedName(SERIALIZED_NAME_ENTITLEMENTS) @@ -375,25 +375,33 @@ public void setTrial(SubscriptionTrial trial) { } - public SubscriptionResponse subscriptionKey(String subscriptionKey) { + public SubscriptionResponse metroCodes(List metroCodes) { - this.subscriptionKey = subscriptionKey; + this.metroCodes = metroCodes; + return this; + } + + public SubscriptionResponse addMetroCodesItem(String metroCodesItem) { + if (this.metroCodes == null) { + this.metroCodes = new ArrayList<>(); + } + this.metroCodes.add(metroCodesItem); return this; } /** - * Subscription Key - * @return subscriptionKey + * List of available metro + * @return metroCodes **/ @javax.annotation.Nullable - public String getSubscriptionKey() { - return subscriptionKey; + public List getMetroCodes() { + return metroCodes; } - public void setSubscriptionKey(String subscriptionKey) { - this.subscriptionKey = subscriptionKey; + public void setMetroCodes(List metroCodes) { + this.metroCodes = metroCodes; } @@ -508,7 +516,7 @@ public boolean equals(Object o) { Objects.equals(this.isAutoRenew, subscriptionResponse.isAutoRenew) && Objects.equals(this.offerId, subscriptionResponse.offerId) && Objects.equals(this.trial, subscriptionResponse.trial) && - Objects.equals(this.subscriptionKey, subscriptionResponse.subscriptionKey) && + Objects.equals(this.metroCodes, subscriptionResponse.metroCodes) && Objects.equals(this.entitlements, subscriptionResponse.entitlements) && Objects.equals(this.changelog, subscriptionResponse.changelog)&& Objects.equals(this.additionalProperties, subscriptionResponse.additionalProperties); @@ -516,7 +524,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, uuid, state, marketplace, offerType, isAutoRenew, offerId, trial, subscriptionKey, entitlements, changelog, additionalProperties); + return Objects.hash(href, uuid, state, marketplace, offerType, isAutoRenew, offerId, trial, metroCodes, entitlements, changelog, additionalProperties); } @Override @@ -531,7 +539,7 @@ public String toString() { sb.append(" isAutoRenew: ").append(toIndentedString(isAutoRenew)).append("\n"); sb.append(" offerId: ").append(toIndentedString(offerId)).append("\n"); sb.append(" trial: ").append(toIndentedString(trial)).append("\n"); - sb.append(" subscriptionKey: ").append(toIndentedString(subscriptionKey)).append("\n"); + sb.append(" metroCodes: ").append(toIndentedString(metroCodes)).append("\n"); sb.append(" entitlements: ").append(toIndentedString(entitlements)).append("\n"); sb.append(" changelog: ").append(toIndentedString(changelog)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); @@ -565,7 +573,7 @@ private String toIndentedString(Object o) { openapiFields.add("isAutoRenew"); openapiFields.add("offerId"); openapiFields.add("trial"); - openapiFields.add("subscriptionKey"); + openapiFields.add("metroCodes"); openapiFields.add("entitlements"); openapiFields.add("changelog"); @@ -614,8 +622,9 @@ public static void validateJsonObject(JsonObject jsonObj) throws IOException { if (jsonObj.get("trial") != null && !jsonObj.get("trial").isJsonNull()) { SubscriptionTrial.validateJsonObject(jsonObj.getAsJsonObject("trial")); } - if ((jsonObj.get("subscriptionKey") != null && !jsonObj.get("subscriptionKey").isJsonNull()) && !jsonObj.get("subscriptionKey").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `subscriptionKey` to be a primitive type in the JSON string but got `%s`", jsonObj.get("subscriptionKey").toString())); + // ensure the optional json data is an array if present + if (jsonObj.get("metroCodes") != null && !jsonObj.get("metroCodes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `metroCodes` to be an array in the JSON string but got `%s`", jsonObj.get("metroCodes").toString())); } // ensure the json data is an array if (!jsonObj.get("entitlements").isJsonArray()) { diff --git a/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePrice.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePrice.java new file mode 100644 index 0000000..0d32fc6 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePrice.java @@ -0,0 +1,393 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.PrecisionTimePackageRequest; +import com.equinix.openapi.fabric.v4.model.TimeServicePriceConnection; +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; + +/** + * Time Service Product configuration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class TimeServicePrice { + /** + * Precision Time Service Type refers to the corresponding Protocol. + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + NTP("NTP"), + + PTP("PTP"); + + 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_PACKAGE = "package"; + @SerializedName(SERIALIZED_NAME_PACKAGE) + private PrecisionTimePackageRequest _package; + + public static final String SERIALIZED_NAME_CONNECTION = "connection"; + @SerializedName(SERIALIZED_NAME_CONNECTION) + private TimeServicePriceConnection connection; + + public TimeServicePrice() { + } + + public TimeServicePrice type(TypeEnum type) { + + this.type = type; + return this; + } + + /** + * Precision Time Service Type refers to the corresponding Protocol. + * @return type + **/ + @javax.annotation.Nullable + + public TypeEnum getType() { + return type; + } + + + public void setType(TypeEnum type) { + this.type = type; + } + + + public TimeServicePrice _package(PrecisionTimePackageRequest _package) { + + this._package = _package; + return this; + } + + /** + * Get _package + * @return _package + **/ + @javax.annotation.Nullable + + public PrecisionTimePackageRequest getPackage() { + return _package; + } + + + public void setPackage(PrecisionTimePackageRequest _package) { + this._package = _package; + } + + + public TimeServicePrice connection(TimeServicePriceConnection connection) { + + this.connection = connection; + return this; + } + + /** + * Get connection + * @return connection + **/ + @javax.annotation.Nullable + + public TimeServicePriceConnection getConnection() { + return connection; + } + + + public void setConnection(TimeServicePriceConnection connection) { + this.connection = connection; + } + + /** + * 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 TimeServicePrice instance itself + */ + public TimeServicePrice 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; + } + TimeServicePrice timeServicePrice = (TimeServicePrice) o; + return Objects.equals(this.type, timeServicePrice.type) && + Objects.equals(this._package, timeServicePrice._package) && + Objects.equals(this.connection, timeServicePrice.connection)&& + Objects.equals(this.additionalProperties, timeServicePrice.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, _package, connection, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimeServicePrice {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" _package: ").append(toIndentedString(_package)).append("\n"); + sb.append(" connection: ").append(toIndentedString(connection)).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("package"); + openapiFields.add("connection"); + + // 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 TimeServicePrice + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!TimeServicePrice.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimeServicePrice is not found in the empty JSON string", TimeServicePrice.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())); + } + // validate the optional field `package` + if (jsonObj.get("package") != null && !jsonObj.get("package").isJsonNull()) { + PrecisionTimePackageRequest.validateJsonObject(jsonObj.getAsJsonObject("package")); + } + // validate the optional field `connection` + if (jsonObj.get("connection") != null && !jsonObj.get("connection").isJsonNull()) { + TimeServicePriceConnection.validateJsonObject(jsonObj.getAsJsonObject("connection")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimeServicePrice.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimeServicePrice' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimeServicePrice.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimeServicePrice 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 TimeServicePrice read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + TimeServicePrice 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 TimeServicePrice given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimeServicePrice + * @throws IOException if the JSON string is invalid with respect to TimeServicePrice + */ + public static TimeServicePrice fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimeServicePrice.class); + } + + /** + * Convert an instance of TimeServicePrice 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/TimeServicePriceConnection.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnection.java new file mode 100644 index 0000000..9765dc2 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnection.java @@ -0,0 +1,280 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.TimeServicePriceConnectionASide; +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; + +/** + * Time Service Price Connection configuration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class TimeServicePriceConnection { + public static final String SERIALIZED_NAME_A_SIDE = "aSide"; + @SerializedName(SERIALIZED_NAME_A_SIDE) + private TimeServicePriceConnectionASide aSide; + + public TimeServicePriceConnection() { + } + + public TimeServicePriceConnection aSide(TimeServicePriceConnectionASide aSide) { + + this.aSide = aSide; + return this; + } + + /** + * Get aSide + * @return aSide + **/ + @javax.annotation.Nullable + + public TimeServicePriceConnectionASide getaSide() { + return aSide; + } + + + public void setaSide(TimeServicePriceConnectionASide aSide) { + this.aSide = aSide; + } + + /** + * 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 TimeServicePriceConnection instance itself + */ + public TimeServicePriceConnection 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; + } + TimeServicePriceConnection timeServicePriceConnection = (TimeServicePriceConnection) o; + return Objects.equals(this.aSide, timeServicePriceConnection.aSide)&& + Objects.equals(this.additionalProperties, timeServicePriceConnection.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(aSide, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimeServicePriceConnection {\n"); + sb.append(" aSide: ").append(toIndentedString(aSide)).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("aSide"); + + // 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 TimeServicePriceConnection + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!TimeServicePriceConnection.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimeServicePriceConnection is not found in the empty JSON string", TimeServicePriceConnection.openapiRequiredFields.toString())); + } + } + // validate the optional field `aSide` + if (jsonObj.get("aSide") != null && !jsonObj.get("aSide").isJsonNull()) { + TimeServicePriceConnectionASide.validateJsonObject(jsonObj.getAsJsonObject("aSide")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimeServicePriceConnection.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimeServicePriceConnection' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimeServicePriceConnection.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimeServicePriceConnection 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 TimeServicePriceConnection read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + TimeServicePriceConnection 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 TimeServicePriceConnection given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimeServicePriceConnection + * @throws IOException if the JSON string is invalid with respect to TimeServicePriceConnection + */ + public static TimeServicePriceConnection fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimeServicePriceConnection.class); + } + + /** + * Convert an instance of TimeServicePriceConnection 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/TimeServicePriceConnectionASide.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionASide.java new file mode 100644 index 0000000..e89bc05 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionASide.java @@ -0,0 +1,280 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.TimeServicePriceConnectionAccessPoint; +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; + +/** + * Time Service Price Connection ASide configuration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class TimeServicePriceConnectionASide { + public static final String SERIALIZED_NAME_ACCESS_POINT = "accessPoint"; + @SerializedName(SERIALIZED_NAME_ACCESS_POINT) + private TimeServicePriceConnectionAccessPoint accessPoint; + + public TimeServicePriceConnectionASide() { + } + + public TimeServicePriceConnectionASide accessPoint(TimeServicePriceConnectionAccessPoint accessPoint) { + + this.accessPoint = accessPoint; + return this; + } + + /** + * Get accessPoint + * @return accessPoint + **/ + @javax.annotation.Nullable + + public TimeServicePriceConnectionAccessPoint getAccessPoint() { + return accessPoint; + } + + + public void setAccessPoint(TimeServicePriceConnectionAccessPoint accessPoint) { + this.accessPoint = accessPoint; + } + + /** + * 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 TimeServicePriceConnectionASide instance itself + */ + public TimeServicePriceConnectionASide 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; + } + TimeServicePriceConnectionASide timeServicePriceConnectionASide = (TimeServicePriceConnectionASide) o; + return Objects.equals(this.accessPoint, timeServicePriceConnectionASide.accessPoint)&& + Objects.equals(this.additionalProperties, timeServicePriceConnectionASide.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(accessPoint, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimeServicePriceConnectionASide {\n"); + sb.append(" accessPoint: ").append(toIndentedString(accessPoint)).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("accessPoint"); + + // 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 TimeServicePriceConnectionASide + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!TimeServicePriceConnectionASide.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimeServicePriceConnectionASide is not found in the empty JSON string", TimeServicePriceConnectionASide.openapiRequiredFields.toString())); + } + } + // validate the optional field `accessPoint` + if (jsonObj.get("accessPoint") != null && !jsonObj.get("accessPoint").isJsonNull()) { + TimeServicePriceConnectionAccessPoint.validateJsonObject(jsonObj.getAsJsonObject("accessPoint")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimeServicePriceConnectionASide.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimeServicePriceConnectionASide' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimeServicePriceConnectionASide.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimeServicePriceConnectionASide 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 TimeServicePriceConnectionASide read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + TimeServicePriceConnectionASide 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 TimeServicePriceConnectionASide given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimeServicePriceConnectionASide + * @throws IOException if the JSON string is invalid with respect to TimeServicePriceConnectionASide + */ + public static TimeServicePriceConnectionASide fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimeServicePriceConnectionASide.class); + } + + /** + * Convert an instance of TimeServicePriceConnectionASide 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/TimeServicePriceConnectionAccessPoint.java b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionAccessPoint.java new file mode 100644 index 0000000..1c611e4 --- /dev/null +++ b/equinix-openapi-fabric/src/main/java/com/equinix/openapi/fabric/v4/model/TimeServicePriceConnectionAccessPoint.java @@ -0,0 +1,280 @@ +/* + * Equinix Fabric API v4 + * + * + * + * 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.PriceLocation; +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; + +/** + * Time Service Price Connection Access Point configuration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class TimeServicePriceConnectionAccessPoint { + public static final String SERIALIZED_NAME_LOCATION = "location"; + @SerializedName(SERIALIZED_NAME_LOCATION) + private PriceLocation location; + + public TimeServicePriceConnectionAccessPoint() { + } + + public TimeServicePriceConnectionAccessPoint location(PriceLocation location) { + + this.location = location; + return this; + } + + /** + * Get location + * @return location + **/ + @javax.annotation.Nullable + + public PriceLocation getLocation() { + return location; + } + + + public void setLocation(PriceLocation location) { + this.location = location; + } + + /** + * 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 TimeServicePriceConnectionAccessPoint instance itself + */ + public TimeServicePriceConnectionAccessPoint 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; + } + TimeServicePriceConnectionAccessPoint timeServicePriceConnectionAccessPoint = (TimeServicePriceConnectionAccessPoint) o; + return Objects.equals(this.location, timeServicePriceConnectionAccessPoint.location)&& + Objects.equals(this.additionalProperties, timeServicePriceConnectionAccessPoint.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(location, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimeServicePriceConnectionAccessPoint {\n"); + sb.append(" location: ").append(toIndentedString(location)).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("location"); + + // 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 TimeServicePriceConnectionAccessPoint + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!TimeServicePriceConnectionAccessPoint.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in TimeServicePriceConnectionAccessPoint is not found in the empty JSON string", TimeServicePriceConnectionAccessPoint.openapiRequiredFields.toString())); + } + } + // validate the optional field `location` + if (jsonObj.get("location") != null && !jsonObj.get("location").isJsonNull()) { + PriceLocation.validateJsonObject(jsonObj.getAsJsonObject("location")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TimeServicePriceConnectionAccessPoint.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TimeServicePriceConnectionAccessPoint' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(TimeServicePriceConnectionAccessPoint.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, TimeServicePriceConnectionAccessPoint 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 TimeServicePriceConnectionAccessPoint read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + // store additional fields in the deserialized instance + TimeServicePriceConnectionAccessPoint 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 TimeServicePriceConnectionAccessPoint given an JSON string + * + * @param jsonString JSON string + * @return An instance of TimeServicePriceConnectionAccessPoint + * @throws IOException if the JSON string is invalid with respect to TimeServicePriceConnectionAccessPoint + */ + public static TimeServicePriceConnectionAccessPoint fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TimeServicePriceConnectionAccessPoint.class); + } + + /** + * Convert an instance of TimeServicePriceConnectionAccessPoint to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/spec/oas3.fabric.fetched.json b/spec/oas3.fabric.fetched.json index 1b17b4c..20312d6 100644 --- a/spec/oas3.fabric.fetched.json +++ b/spec/oas3.fabric.fetched.json @@ -12,7 +12,7 @@ "name": "Equinix Inc", "url": "https://developer.equinix.com/agreement" }, - "version": "4.17" + "version": "4.18" }, "externalDocs": { "description": "Find more information on Equinix Developer Portal", @@ -32,7 +32,7 @@ "tags": [ { "name": "Cloud Routers", - "description": "Cloud Routers Preview" + "description": "Cloud Routers" }, { "name": "Connections", @@ -48,12 +48,20 @@ }, { "name": "Precision Time", - "description": "Precision Time Preview" + "description": "Precision Time Beta" }, { "name": "Prices", "description": "Prices" }, + { + "name": "Route Filter Rules", + "description": "Route Filter Rules" + }, + { + "name": "Route Filters", + "description": "Route Filters" + }, { "name": "Routing Protocols", "description": "Routing Protocols" @@ -88,7 +96,18 @@ "summary": "Create Connection", "description": "This API provides capability to create user's virtual connection", "operationId": "createConnection", - "parameters": [], + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], "requestBody": { "content": { "application/json": { @@ -293,6 +312,9 @@ }, "Fcr2Metal-Network": { "$ref": "#/components/examples/Fcr2Metal-Network" + }, + "Connection-Colo2Sp-GenericDryRunCreate": { + "$ref": "#/components/examples/CreateConnectionDryRunRequest" } } } @@ -300,6 +322,21 @@ "required": true }, "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Connection" + }, + "examples": { + "ConnectionDryRun-Colo2Sp-Generic": { + "$ref": "#/components/examples/CreateConnectionDryRunResponse" + } + } + } + } + }, "201": { "description": "Accept Connection Request", "content": { @@ -436,6 +473,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -899,6 +939,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -952,7 +995,7 @@ "tags": [ "Cloud Routers" ], - "summary": "search advertised", + "summary": "Search Advertised Routes", "description": "The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting", "operationId": "searchConnectionAdvertisedRoutes", "parameters": [ @@ -1008,6 +1051,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1061,7 +1107,7 @@ "tags": [ "Cloud Routers" ], - "summary": "Search received", + "summary": "Search Received Routes", "description": "The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting", "operationId": "searchConnectionReceivedRoutes", "parameters": [ @@ -1117,6 +1163,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1230,6 +1279,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1368,6 +1420,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1657,6 +1712,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1813,6 +1871,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1951,6 +2012,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2113,6 +2177,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2270,6 +2337,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2450,6 +2520,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -3158,6 +3231,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -3260,6 +3336,18 @@ }, "virtualPortProduct": { "$ref": "#/components/examples/VirtualPortProduct" + }, + "precisionTimeProductNtpStandardPackageCode": { + "$ref": "#/components/examples/PrecisionTimeNtpStandardPackage" + }, + "precisionTimeProductNtpEnterprisePackageCode": { + "$ref": "#/components/examples/PrecisionTimeNtpEnterprisePackage" + }, + "precisionTimeProductPtpStandardPackageCode": { + "$ref": "#/components/examples/PrecisionTimePtpStandardPackage" + }, + "precisionTimeProductPtpEnterprisePackageCode": { + "$ref": "#/components/examples/PrecisionTimePtpEnterprisePackage" } } } @@ -3286,6 +3374,9 @@ }, "virtualPort": { "$ref": "#/components/examples/VirtualPort" + }, + "precisionTimeService": { + "$ref": "#/components/examples/PrecisionTimeService" } } } @@ -5008,7 +5099,18 @@ "summary": "Create Service Token", "description": "Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.", "operationId": "createServiceToken", - "parameters": [], + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], "requestBody": { "content": { "application/json": { @@ -5016,32 +5118,32 @@ "$ref": "#/components/schemas/ServiceToken" }, "examples": { - "AsideTokenWithQnQExample": { + "AsideTokenWithQnQ": { "$ref": "#/components/examples/createServiceTokenWithQnQ" }, - "AsideTokenWithDot1QExample": { + "AsideTokenWithDot1Q": { "$ref": "#/components/examples/createServiceTokenWithDot1Q" }, - "AsideTokenWithVxlanExample": { + "AsideTokenWithVxlan": { "$ref": "#/components/examples/createServiceTokenWithVxlan" }, - "ZsideTokenWithQnQExample": { + "ZsideTokenWithQnQ": { "$ref": "#/components/examples/createZsideServiceTokenWithQnQ" }, - "ZsideTokenWithQnQ-CrhExample": { - "$ref": "#/components/examples/createZsideServiceTokenWithQnQ-CRH" - }, - "ZsideTokenWithDot1QExample": { + "ZsideTokenWithDot1Q": { "$ref": "#/components/examples/createZsideServiceTokenWithDot1Q" }, - "ZsideTokenWithVxlanExample": { + "ZsideTokenWithVxlan": { "$ref": "#/components/examples/createZsideServiceTokenWithVxlan" }, - "ZsideTokenWithVDExample": { + "ZsideTokenWithVD": { "$ref": "#/components/examples/createZsideServiceTokenWithVD" }, - "ZsideTokenWithNetworkExample": { + "ZsideTokenWithNetwork": { "$ref": "#/components/examples/createZsideServiceTokenWithNetwork" + }, + "AsideTokenWithDot1QDryRunCreate": { + "$ref": "#/components/examples/createServiceTokenDryRunRequest" } } } @@ -5049,6 +5151,21 @@ "required": true }, "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceToken" + }, + "examples": { + "ServiceTokenDryRun": { + "$ref": "#/components/examples/createServiceTokenDryRunResponse" + } + } + } + } + }, "201": { "description": "Successful operation", "content": { @@ -5074,6 +5191,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5172,6 +5292,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5287,6 +5410,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5449,7 +5575,7 @@ "Metros" ], "summary": "Get Metro by Code", - "description": "GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. .", + "description": "GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location.", "operationId": "getMetroByCode", "parameters": [ { @@ -6116,14 +6242,14 @@ } } }, - "/fabric/v4/connections/{connectionId}/routeFilters": { + "/fabric/v4/connections/{connectionId}/routeAggregations": { "get": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Get All RouteFilters", - "description": "This API provides capability to view all Route Filters attached to a Connection", - "operationId": "getConnectionRouteFilters", + "summary": "Get All Aggregations", + "description": "This API provides capability to view all Route Aggregations attached to a Connection", + "operationId": "getConnectionRouteAggregations", "parameters": [ { "name": "connectionId", @@ -6141,11 +6267,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" + "$ref": "#/components/schemas/GetAllConnectionRouteAggregationsResponse" }, "examples": { - "ConnectionRouteFiltersResponse": { - "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" + "ConnectionRouteAggregationsResponse": { + "$ref": "#/components/examples/ConnectionRouteAggregationsGetAll" } } } @@ -6200,7 +6326,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6247,22 +6373,22 @@ } } }, - "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { + "/fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId}": { "get": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Get Route Filter", - "description": "This API provides capability to view a specific Route Filter attached to a Connection", - "operationId": "getConnectionRouteFilterByUuid", + "summary": "Get Aggregation", + "description": "This API provides capability to view a specific Route Aggregation attached to a Connection", + "operationId": "getConnectionRouteAggregationByUuid", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6281,11 +6407,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterAttachResponse": { - "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" + "ConnectionRouteAggregationAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteAggregationsResponse" } } } @@ -6340,7 +6466,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6388,19 +6514,19 @@ }, "put": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Attach Route Filter", - "description": "This API provides capability to attach a Route Filter to a Connection", - "operationId": "attachConnectionRouteFilter", + "summary": "Attach Aggregation", + "description": "This API provides capability to attach a Route Aggregation to a Connection", + "operationId": "attachConnectionRouteAggregation", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6413,35 +6539,17 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionRouteFiltersBase" - }, - "examples": { - "ConnectionRouteFilterAttachInboundExample": { - "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" - }, - "ConnectionRouteFilterAttachOutboundExample": { - "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" - } - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterAttachResponse": { - "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" + "ConnectionRouteAggregationAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteAggregationsResponse" } } } @@ -6455,9 +6563,6 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidDirection": { - "$ref": "#/components/examples/400_invalid_direction" - }, "TransientState": { "$ref": "#/components/examples/400_transient_state" } @@ -6496,7 +6601,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6544,19 +6649,19 @@ }, "delete": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Detach Route Filter", - "description": "This API provides capability to detach a Route Filter from a Connection", - "operationId": "detachConnectionRouteFilter", + "summary": "Detach Aggregation", + "description": "This API provides capability to detach a Route Aggregation from a Connection", + "operationId": "detachConnectionRouteAggregation", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6575,14 +6680,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterDetachInboundResponse": { - "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" - }, - "ConnectionRouteFilterDetachOutboundResponse": { - "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" + "ConnectionRouteAggregationDetachResponse": { + "$ref": "#/components/examples/DetachConnectionRouteAggregationResponse" } } } @@ -6634,7 +6736,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6681,44 +6783,36 @@ } } }, - "/fabric/v4/routeFilters": { - "post": { + "/fabric/v4/connections/{connectionId}/routeFilters": { + "get": { "tags": [ "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/RouteFiltersBase" - }, - "examples": { - "RouteFilterBgpIpv4Prefix": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" - }, - "RouteFilterBgpIpv6Prefix": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv6Prefix" - } - } + "summary": "Get All Route Filters", + "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": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" }, "examples": { - "GetSpecificRouteFilterResponse": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + "ConnectionRouteFiltersResponse": { + "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" } } } @@ -6732,8 +6826,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "TransientState": { - "$ref": "#/components/examples/400_transient_state" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -6817,14 +6914,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}": { + "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { "get": { "tags": [ "Route Filters" ], - "summary": "Get Filter By UUID", - "description": "This API provides capability to view a Route Filter by UUID", - "operationId": "getRouteFilterByUuid", + "summary": "Get Route Filter", + "description": "This API provides capability to view a specific Route Filter attached to a Connection", + "operationId": "getConnectionRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -6834,6 +6931,15 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], "responses": { @@ -6842,11 +6948,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "GetSpecificRouteFilterResponse": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + "ConnectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -6947,13 +7053,13 @@ } } }, - "delete": { + "put": { "tags": [ "Route Filters" ], - "summary": "Delete Route Filter", - "description": "This API provides capability to delete a Route Filter", - "operationId": "deleteRouteFilterByUuid", + "summary": "Attach Route Filter", + "description": "This API provides capability to attach a Route Filter to a Connection", + "operationId": "attachConnectionRouteFilter", "parameters": [ { "name": "routeFilterId", @@ -6963,19 +7069,46 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionRouteFiltersBase" + }, + "examples": { + "ConnectionRouteFilterAttachInboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" + }, + "ConnectionRouteFilterAttachOutboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" + } + } + } + }, + "required": true + }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "RouteFilterDeleteBgpIpv4PrefixResponse": { - "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" + "ConnectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -6989,8 +7122,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_attached_connection" + "InvalidDirection": { + "$ref": "#/components/examples/400_invalid_direction" + }, + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -7073,13 +7209,13 @@ } } }, - "patch": { + "delete": { "tags": [ "Route Filters" ], - "summary": "Patch Route Filter", - "description": "This API provides capability to partially update a Route Filter", - "operationId": "patchRouteFilterByUuid", + "summary": "Detach Route Filter", + "description": "This API provides capability to detach a Route Filter from a Connection", + "operationId": "detachConnectionRouteFilter", "parameters": [ { "name": "routeFilterId", @@ -7089,34 +7225,31 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteFiltersPatchRequest" - }, - "examples": { - "RouteFilterNamePatchExample": { - "$ref": "#/components/examples/PatchRouteFilterName" - } - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "RouteFilterNamePatchResponse": { - "$ref": "#/components/examples/RouteFilterNamePatchResponse" + "ConnectionRouteFilterDetachInboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" + }, + "ConnectionRouteFilterDetachOutboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" } } } @@ -7131,7 +7264,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_transient_state" } } } @@ -7215,56 +7348,44 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/changes": { - "get": { + "/fabric/v4/routeFilters": { + "post": { "tags": [ "Route Filters" ], - "summary": "Get All Changes", - "description": "This API provides capability to retrieve all of a Route Filter's Changes", - "operationId": "getRouteFilterChanges", - "parameters": [ - { - "name": "routeFilterId", - "in": "path", - "description": "Route Filters Id", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "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/RouteFiltersBase" + }, + "examples": { + "RouteFilterBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" + }, + "RouteFilterBgpIpv6Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv6Prefix" + } + } } }, - { - "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 - } - ], + "required": true + }, "responses": { - "200": { - "description": "Fabric Route Filter Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterChangeDataResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterChangesResponse": { - "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" + "GetSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -7278,11 +7399,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -7333,6 +7451,21 @@ } } }, + "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": { @@ -7351,14 +7484,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { + "/fabric/v4/routeFilters/{routeFilterId}": { "get": { "tags": [ "Route Filters" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve a specific Route Filter's Changes", - "operationId": "getRouteFilterChangeByUuid", + "summary": "Get Route Filter By UUID", + "description": "This API provides capability to view a Route Filter by UUID", + "operationId": "getRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -7368,28 +7501,19 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } - }, - { - "name": "changeId", - "in": "path", - "description": "Routing Protocol Change UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/ChangeId_1" - } } ], "responses": { "200": { - "description": "Fabric Route Filter Change object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterChangeData" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterChangeResponse": { - "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" + "GetSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -7458,6 +7582,21 @@ } } }, + "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": { @@ -7474,16 +7613,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/connections": { - "get": { + }, + "delete": { "tags": [ "Route Filters" ], - "summary": "Get Connections", - "description": "This API provides capability to view all Connections using the Route Filter", - "operationId": "getRouteFilterConnections", + "summary": "Delete Route Filter", + "description": "This API provides capability to delete a Route Filter", + "operationId": "deleteRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -7496,16 +7633,16 @@ } ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterGetConnectionsResponse": { - "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" } } } @@ -7519,11 +7656,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "example": { + "$ref": "#/components/examples/400_attached_connection" } } } @@ -7605,26 +7739,34 @@ } } } - } - }, - "/fabric/v4/routeFilters/search": { - "post": { + }, + "patch": { "tags": [ "Route Filters" ], - "summary": "Search Route Filters", - "description": "This API provides capability to search Route Filters", - "operationId": "searchRouteFilters", - "parameters": [], + "summary": "Patch Route Filter", + "description": "This API provides capability to partially update a Route Filter", + "operationId": "patchRouteFilterByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + } + ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersSearchBase" + "$ref": "#/components/schemas/RouteFiltersPatchRequest" }, "examples": { - "searchRouteFiltersRequest": { - "$ref": "#/components/examples/SearchRouteFiltersRequest" + "RouteFilterNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterName" } } } @@ -7632,16 +7774,16 @@ "required": true }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersSearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "SearchRouteFiltersResponse": { - "$ref": "#/components/examples/SearchRouteFiltersResponse" + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" } } } @@ -7655,11 +7797,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -7743,14 +7882,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { + "/fabric/v4/routeFilters/{routeFilterId}/changes": { "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "GetRFRules", - "description": "This API provides capability to get all Route Filters Rules for Fabric", - "operationId": "getRouteFilterRules", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter's Changes", + "operationId": "getRouteFilterChanges", "parameters": [ { "name": "routeFilterId", @@ -7784,30 +7923,33 @@ ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterRulesResponse" + "$ref": "#/components/schemas/RouteFilterChangeDataResponse" }, "examples": { - "getAllRouteFilterRules": { - "$ref": "#/components/examples/RouteFilterRulesGetAll" + "RouteFilterChangesResponse": { + "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" } } } } }, "400": { - "description": "Resource not found", + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/404_invalid_id" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7844,11 +7986,16 @@ } }, "404": { - "description": "Route Filter Rule ID Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } } } } @@ -7869,14 +8016,16 @@ } } } - }, - "post": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { + "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "Create RFRule", - "description": "This API provides capability to create a Route Filter Rule", - "operationId": "createRouteFilterRule", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter's Changes", + "operationId": "getRouteFilterChangeByUuid", "parameters": [ { "name": "routeFilterId", @@ -7886,40 +8035,28 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_1" + } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteFilterRulesBase" - }, - "examples": { - "RouteFilterRuleBgpIpv4Prefix": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" - }, - "RouteFilterRuleBgpIpv6Prefix": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6Prefix" - } - } - } - }, - "required": true - }, "responses": { - "202": { - "description": "Successful operation", + "200": { + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/RouteFilterChangeData" }, "examples": { - "GetSpecificRouteFilterRuleIpv4Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" - }, - "GetSpecificRouteFilterRuleIpv6Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" } } } @@ -7933,11 +8070,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7974,17 +8111,7 @@ } }, "404": { - "description": "Route Filter Rule ID Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, - "415": { - "description": "Unsupported Media Type", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7992,7 +8119,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8016,14 +8143,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { + "/fabric/v4/routeFilters/{routeFilterId}/connections": { "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "GetRFRule By UUID", - "description": "This API provides capability to view a Route Filter Rule by UUID", - "operationId": "getRouteFilterRuleByUuid", + "summary": "Get All Connections on Route Filter", + "description": "This API provides capability to view all Connections using the Route Filter", + "operationId": "getRouteFilterConnections", "parameters": [ { "name": "routeFilterId", @@ -8033,31 +8160,19 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } - }, - { - "name": "routeFilterRuleId", - "in": "path", - "description": "Route Filter Rules Id", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouteFilterRuleId" - } } ], "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" }, "examples": { - "GetSpecificRouteFilterRuleIpv4Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" - }, - "GetSpecificRouteFilterRuleIpv6Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" + "RouteFilterGetConnectionsResponse": { + "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" } } } @@ -8071,11 +8186,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -8157,46 +8272,26 @@ } } } - }, - "put": { + } + }, + "/fabric/v4/routeFilters/search": { + "post": { "tags": [ - "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" - } - } + "Route Filters" ], + "summary": "Search Route Filters", + "description": "This API provides capability to search Route Filters", + "operationId": "searchRouteFilters", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesBase" + "$ref": "#/components/schemas/RouteFiltersSearchBase" }, "examples": { - "RouteFilterIpv4ReplaceExample": { - "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" - }, - "RouteFilterIpv6ReplaceExample": { - "$ref": "#/components/examples/UpdateRouteFilterRuleIPv6" + "searchRouteFiltersRequest": { + "$ref": "#/components/examples/SearchRouteFiltersRequest" } } } @@ -8204,19 +8299,16 @@ "required": true }, "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/RouteFiltersSearchResponse" }, "examples": { - "RouteFilterRuleIpv4ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" - }, - "routeFilterRuleIpv6ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" + "SearchRouteFiltersResponse": { + "$ref": "#/components/examples/SearchRouteFiltersResponse" } } } @@ -8230,11 +8322,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -8316,14 +8408,16 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { + "get": { "tags": [ "Route Filter Rules" ], - "summary": "DeleteRFRule", - "description": "This API provides capability to delete a Route Filter Rule", - "operationId": "deleteRouteFilterRuleByUuid", + "summary": "Get Route Filter Rules", + "description": "This API provides capability to get all Route Filters Rules for Fabric", + "operationId": "getRouteFilterRules", "parameters": [ { "name": "routeFilterId", @@ -8335,36 +8429,44 @@ } }, { - "name": "routeFilterRuleId", - "in": "path", - "description": "Route Filter Rules Id", - "required": true, + "name": "offset", + "in": "query", + "description": "offset", + "required": false, "schema": { - "$ref": "#/components/schemas/RouteFilterRuleId" - } + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "RouteFilterDeleteBgpIpv4PrefixResponse": { - "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" - }, - "routeFilterDeleteBgpIpv6PrefixResponse": { - "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv6PrefixResponse" + "getAllRouteFilterRules": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -8372,7 +8474,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_transient_filter" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8409,31 +8511,11 @@ } }, "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", + "description": "Route Filter Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } @@ -8455,13 +8537,13 @@ } } }, - "patch": { + "post": { "tags": [ "Route Filter Rules" ], - "summary": "PatchRFilterRule", - "description": "This API provides capability to partially update a Route Filter Rule", - "operationId": "patchRouteFilterRuleByUuid", + "summary": "Create Route Filter Rule", + "description": "This API provides capability to create a Route Filter Rule", + "operationId": "createRouteFilterRule", "parameters": [ { "name": "routeFilterId", @@ -8471,32 +8553,20 @@ "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" + "$ref": "#/components/schemas/RouteFilterRulesBase" }, "examples": { - "RouteFilterRuleName": { - "$ref": "#/components/examples/PatchRouteFilterRuleName" - }, - "RouteFilterRulePrefix": { - "$ref": "#/components/examples/PatchRouteFilterRulePrefix" + "RouteFilterRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" }, - "RouteFilterRulePrefixMatch": { - "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" + "RouteFilterRuleBgpIpv6Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6Prefix" } } } @@ -8512,11 +8582,11 @@ "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterRuleIpv4ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" + "GetSpecificRouteFilterRuleIpv4Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" }, - "routeFilterRuleIpv6ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" + "GetSpecificRouteFilterRuleIpv6Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" } } } @@ -8571,16 +8641,11 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Filter Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404_invalid_id" - } } } } @@ -8618,14 +8683,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { "get": { "tags": [ "Route Filter Rules" ], - "summary": "Get All Changes", - "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", - "operationId": "getRouteFilterRuleChanges", + "summary": "Get Route Filter Rule By UUID", + "description": "This API provides capability to view a Route Filter Rule by UUID", + "operationId": "getRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8644,39 +8709,22 @@ "schema": { "$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 Route Filter Rule Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterRuleChangesResponse": { - "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" + "GetSpecificRouteFilterRuleIpv4Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" + }, + "GetSpecificRouteFilterRuleIpv6Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" } } } @@ -8690,11 +8738,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" }, "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8745,6 +8793,21 @@ } } }, + "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": { @@ -8761,16 +8824,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { - "get": { + }, + "put": { "tags": [ "Route Filter Rules" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", - "operationId": "getRouteFilterRuleChangeByUuid", + "summary": "Replace Route Filter Rule", + "description": "This API provides capability to replace a Route Filter Rule completely", + "operationId": "replaceRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8789,28 +8850,40 @@ "schema": { "$ref": "#/components/schemas/RouteFilterRuleId" } - }, - { - "name": "changeId", - "in": "path", - "description": "Route Filter Rule Change UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/ChangeId_2" - } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + }, + "examples": { + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" + }, + "RouteFilterIpv6ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv6" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Route Filter Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesChangeData" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterChangeResponse": { - "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" + "RouteFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" + }, + "routeFilterRuleIpv6ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" } } } @@ -8824,11 +8897,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" }, "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8879,6 +8952,21 @@ } } }, + "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": { @@ -8895,16 +8983,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { - "post": { + }, + "delete": { "tags": [ "Route Filter Rules" ], - "summary": "Bulk RFRules", - "description": "This API provides capability to create bulk route filter rules", - "operationId": "createRouteFilterRulesInBulk", + "summary": "Delete Route Filter Rule", + "description": "This API provides capability to delete a Route Filter Rule", + "operationId": "deleteRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8914,36 +9000,38 @@ "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/RouteFilterRulesPostRequest" - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterRulesResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "getAllRouteFilterRules": { - "$ref": "#/components/examples/RouteFilterRulesBulkResponse" + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" + }, + "routeFilterDeleteBgpIpv6PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv6PrefixResponse" } } } } }, "400": { - "description": "Resource not found", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8951,7 +9039,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_transient_filter" } } } @@ -8988,7 +9076,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -8996,7 +9084,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9033,32 +9121,49 @@ } } } - } - }, - "/fabric/v4/routers": { - "post": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Filter Rules" + ], + "summary": "Patch Route Filter Rule", + "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" + } + } ], - "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" + "$ref": "#/components/schemas/RouteFilterRulesPatchRequest" }, "examples": { - "CreateLabPackage": { - "$ref": "#/components/examples/CreateLabPackage" + "RouteFilterRuleName": { + "$ref": "#/components/examples/PatchRouteFilterRuleName" }, - "CreateProPackage": { - "$ref": "#/components/examples/CreateStandardPackage" + "RouteFilterRulePrefix": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefix" }, - "CreateWithMarketplaceSubscription": { - "$ref": "#/components/examples/CreateWithMarketplaceSubscription" + "RouteFilterRulePrefixMatch": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" } } } @@ -9066,19 +9171,19 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPostResponseExample" + "RouteFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" }, - "cloudRouterResponseForMarketplaceSubscription": { - "$ref": "#/components/examples/CloudRouterPostResponseMarketplaceExample" + "routeFilterRuleIpv6ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" } } } @@ -9092,8 +9197,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_package" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9129,6 +9237,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": { @@ -9153,7 +9276,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -9162,39 +9285,83 @@ } } }, - "/fabric/v4/routers/{routerId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { "get": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Get Routers", - "description": "This API provides capability to retrieve user's Cloud Routers", - "operationId": "getCloudRouterByUuid", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChanges", "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": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$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 Cloud Router object", + "description": "Fabric Route Filter Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterResponseExample" + "RouteFilterRuleChangesResponse": { + "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, - "cloudRouterResponseMarketplace": { - "$ref": "#/components/examples/CloudRouterResponseExampleMarketplace" + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9231,7 +9398,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -9239,7 +9406,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9254,35 +9421,67 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Delete Routers", - "description": "This API provides capability to delete user's Cloud Routers", - "operationId": "deleteCloudRouterByUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChangeByUuid", "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": "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": { - "204": { - "description": "Deleted Cloud Router Successfully" + "200": { + "description": "Fabric Route Filter Change object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesChangeData" + }, + "examples": { + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" + } + } + } + } }, "400": { "description": "Bad request", @@ -9292,8 +9491,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_state" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9330,7 +9532,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -9338,7 +9540,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9353,71 +9555,62 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "patch": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { + "post": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Update Routers", - "description": "This API provides capability to update user's Cloud Routers", - "operationId": "updateCloudRouterByUuid", + "summary": "Bulk Create Route Filter Rules", + "description": "This API provides capability to create bulk route filter rules", + "operationId": "createRouteFilterRulesInBulk", "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" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterUpdateRequest" - }, - "examples": { - "UpdatePackage": { - "$ref": "#/components/examples/UpdatePackage" - }, - "UpdateName": { - "$ref": "#/components/examples/UpdateName" - }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNotifications" - } + "$ref": "#/components/schemas/RouteFilterRulesPostRequest" } } }, "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPatchResponseExample" + "getAllRouteFilterRules": { + "$ref": "#/components/examples/RouteFilterRulesBulkResponse" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -9425,7 +9618,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9470,7 +9663,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/400" } } } @@ -9500,7 +9693,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -9509,44 +9702,41 @@ } } }, - "/fabric/v4/routers/{routerId}/actions": { - "get": { + "/fabric/v4/routeAggregations": { + "post": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActions", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" + "summary": "Create Aggregations", + "description": "This API provides capability to create a Route Aggregation", + "operationId": "createRouteAggregation", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationsBase" + }, + "examples": { + "RouteAggregationBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" + } + } } }, - { - "name": "state", - "in": "query", - "description": "Action state", - "schema": { - "$ref": "#/components/schemas/ActionState" - } - } - ], + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "GetSpecificRouteAggregationResponse": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" } } } @@ -9560,8 +9750,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -9598,7 +9788,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9606,14 +9796,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": { @@ -9636,70 +9826,45 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "post": { + } + }, + "/fabric/v4/routeAggregations/{routeAggregationId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Route table actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "createCloudRouterAction", + "summary": "Get Aggregation", + "description": "This API provides capability to view a Route Aggregation by UUID", + "operationId": "getRouteAggregationByUuid", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterActionRequest" - }, - "examples": { - "RouteEntriesStatusUpdate": { - "$ref": "#/components/examples/RouteEntriesStatusUpdate" - }, - "ReceivedRouteEntriesStatusUpdate": { - "$ref": "#/components/examples/ReceivedRouteEntriesStatusUpdate" - }, - "AdvertisedRouteEntriesStatusUpdate": { - "$ref": "#/components/examples/AdvertisedRouteEntriesStatusUpdate" - } - } - } - }, - "required": true - }, "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "cloudRouterActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" - }, - "receivedRouteEntriesExample": { - "$ref": "#/components/examples/CloudRouterReceivedRoutesActionResponse" - }, - "advertisedRouteEntriesExample": { - "$ref": "#/components/examples/CloudRouterAdvertisedRoutesActionResponse" + "GetSpecificRouteAggregationResponse": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" } } } @@ -9713,8 +9878,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9751,7 +9919,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9759,14 +9927,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": { @@ -9789,56 +9957,44 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions/search": { - "post": { + }, + "delete": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Search actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "searchRouterActions", + "summary": "Delete Aggregation", + "description": "This API provides capability to delete a Route Aggregation", + "operationId": "deleteRouteAggregationByUuid", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterActionsSearchRequest" - }, - "examples": { - "CloudRouterActionsSearchByType": { - "$ref": "#/components/examples/CloudRouterActionsSearchByType" - } - } - } - }, - "required": true - }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionsSearchResponse" + "$ref": "#/components/schemas/RouteAggregationsData" + }, + "examples": { + "RouteAggregationDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" + } } } } @@ -9852,7 +10008,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_attached_connection" } } } @@ -9889,7 +10045,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9897,14 +10053,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": { @@ -9927,62 +10083,58 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions/{actionId}": { - "get": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActionsByUuid", + "summary": "Patch Aggregation", + "description": "This API provides capability to partially update a Route Aggregation", + "operationId": "patchRouteAggregationByUuid", "parameters": [ { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" - } - }, - { - "name": "actionId", + "name": "routeAggregationId", "in": "path", - "description": "Action UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/ActionId_1" - } - }, - { - "name": "state", - "in": "query", - "description": "Action state", - "schema": { - "$ref": "#/components/schemas/ActionState" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationsPatchRequest" + }, + "examples": { + "RouteAggregationNamePatchExample": { + "$ref": "#/components/examples/PatchRouteAggregationName" + } + } + } + }, + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "RouteAggregationNamePatchResponse": { + "$ref": "#/components/examples/RouteAggregationNamePatchResponse" } } } @@ -10034,7 +10186,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10042,14 +10194,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": { @@ -10072,7 +10224,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10081,59 +10233,57 @@ } } }, - "/fabric/v4/routers/{routerId}/routes/search": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/changes": { + "get": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "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 All Changes", + "description": "This API provides capability to retrieve all of a Route Aggregation's Changes", + "operationId": "getRouteAggregationChanges", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } + }, + { + "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 } ], - "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", + "description": "Fabric Route Aggregation Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + "$ref": "#/components/schemas/RouteAggregationChangeDataResponse" + }, + "examples": { + "RouteAggregationChangesResponse": { + "$ref": "#/components/examples/RouteAggregationGetAllChangesResponseExample" + } } } } @@ -10146,8 +10296,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -10184,7 +10337,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10192,13 +10345,13 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "415": { + "500": { "description": "Internal server error", "content": { "application/json": { @@ -10207,7 +10360,117 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/500_internal_error" + } + } + } + } + } + } + } + }, + "/fabric/v4/routeAggregations/{routeAggregationId}/changes/{changeId}": { + "get": { + "tags": [ + "Route Aggregations" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Aggregation's Changes", + "operationId": "getRouteAggregationChangeByUuid", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_3" + } + } + ], + "responses": { + "200": { + "description": "Fabric Route Aggregation Change object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationChangeData" + }, + "examples": { + "RouteAggregationChangeResponse": { + "$ref": "#/components/examples/RouteAggregationGetChangeResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "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": "Route Aggregation ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10222,7 +10485,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10231,54 +10494,36 @@ } } }, - "/fabric/v4/routers/{routerId}/validate": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/connections": { + "get": { "tags": [ - "Routing Protocols" + "Route Aggregations" ], - "summary": "Validate Subnet", - "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", - "operationId": "validateRoutingProtocol", + "summary": "Get All Connections on Route Aggregation", + "description": "This API provides capability to view all Connections using the Route Aggregation", + "operationId": "getRouteAggregationConnections", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ValidateRequest" - }, - "examples": { - "ValidateDirectIpv4": { - "$ref": "#/components/examples/Request-direct-ipv4" - }, - "ValidateDirectIpv6": { - "$ref": "#/components/examples/Request-direct-ipv6" - } - } - } - }, - "required": true - }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetResponse" + "$ref": "#/components/schemas/GetRouteAggregationGetConnectionsResponse" }, "examples": { - "ValidateSubnet": { - "$ref": "#/components/examples/Response-200" + "RouteAggregationGetConnectionsResponse": { + "$ref": "#/components/examples/RouteAggregationGetConnectionsResponse" } } } @@ -10292,11 +10537,86 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, - "Subnet Overlapping": { - "$ref": "#/components/examples/error-400-overlappingSubnet" + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "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": "Route Aggregation 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" } } } @@ -10305,30 +10625,24 @@ } } }, - "/fabric/v4/routers/search": { + "/fabric/v4/routeAggregations/search": { "post": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "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", + "summary": "Search Aggregations", + "description": "This API provides capability to search Route Aggregations", + "operationId": "searchRouteAggregations", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterSearchRequest" + "$ref": "#/components/schemas/RouteAggregationsSearchBase" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterByNameAndMetroName": { - "$ref": "#/components/examples/SearchFilterByNameAndMetroName" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + "searchRouteAggregationsRequest": { + "$ref": "#/components/examples/SearchRouteAggregationsRequest" } } } @@ -10341,11 +10655,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchResponse" + "$ref": "#/components/schemas/RouteAggregationsSearchResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/search-example" + "SearchRouteAggregationsResponse": { + "$ref": "#/components/examples/SearchRouteAggregationsResponse" } } } @@ -10359,8 +10673,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -10396,6 +10713,21 @@ } } }, + "404": { + "description": "Route Aggregation 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": { @@ -10420,7 +10752,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10429,15 +10761,24 @@ } } }, - "/fabric/v4/routerPackages": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules": { "get": { "tags": [ - "Cloud Routers" + "Route Aggregation Rules" ], - "summary": "List Packages", - "description": "This API provides capability to retrieve user's Cloud Routers Packages", - "operationId": "getCloudRouterPackages", + "summary": "GetRARules", + "description": "This API provides capability to get all Route Aggregations Rules for Fabric", + "operationId": "getRouteAggregationRules", "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" + } + }, { "name": "offset", "in": "query", @@ -10461,15 +10802,30 @@ ], "responses": { "200": { - "description": "Fabric Cloud Router Packages", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/GetRouteAggregationRulesResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/ListFCRPackagesResponse" + "getAllRouteAggregationRules": { + "$ref": "#/components/examples/RouteAggregationRulesGetAll" + } + } + } + } + }, + "400": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10505,17 +10861,12 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } @@ -10529,41 +10880,59 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routerPackages/{routerPackageCode}": { - "get": { + }, + "post": { "tags": [ - "Cloud Routers" + "Route Aggregation Rules" ], - "summary": "Get Package Details", - "description": "This API provides capability to retrieve user's Cloud Routers Package Details", - "operationId": "getCloudRouterPackageByCode", + "summary": "Create RARule", + "description": "This API provides capability to create a Route Aggregation Rule", + "operationId": "createRouteAggregationRule", "parameters": [ { - "name": "routerPackageCode", + "name": "routeAggregationId", "in": "path", - "description": "Equinix-assigned Cloud Router package identifier", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterPackageCode" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + }, + "examples": { + "RouteAggregationRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4Prefix" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Cloud Router Package details", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/RouteAggregationRulesData" + }, + "examples": { + "GetSpecificRouteAggregationRuleIpv4Response": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse" + } } } } @@ -10576,8 +10945,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_package" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10613,23 +10985,18 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -10637,35 +11004,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } } - } - } - } - }, - "/fabric/v4/health": { - "get": { - "tags": [ - "Health" - ], - "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", + }, + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/HealthResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "metroExample": { - "$ref": "#/components/examples/healthResponse" + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -10674,98 +11028,45 @@ } } }, - "/fabric/v4/connections/validate": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}": { + "get": { "tags": [ - "Connections" + "Route Aggregation Rules" ], - "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" - } - } + "summary": "GetRARule By UUID", + "description": "This API provides capability to view a Route Aggregation Rule by UUID", + "operationId": "getRouteAggregationRuleByUuid", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" } }, - "required": true - }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + } + ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionResponse" + "$ref": "#/components/schemas/RouteAggregationRulesData" }, "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" + "GetSpecificRouteAggregationRuleIpv4Response": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse" } } } @@ -10779,64 +11080,18 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" - } - } - } - } - } - } - } - }, - "/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" - }, - "CreateLocalNetwork": { - "$ref": "#/components/examples/CreateLocalNetwork" - } - } - } - }, - "required": true - }, - "responses": { - "202": { - "description": "Fabric Network Access point object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Network" - }, - "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPostResponseExample" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "400": { - "description": "Bad request", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -10844,14 +11099,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/401" } } } } }, - "401": { - "description": "Unauthorized", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -10859,14 +11114,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/403" } } } } }, - "403": { - "description": "Forbidden", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10874,7 +11129,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10904,45 +11159,85 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/networks/{networkId}": { - "get": { + }, + "put": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Network By ID", - "description": "This API provides capability to retrieve user's Fabric Network", - "operationId": "getNetworkByUuid", + "summary": "ReplaceRARule", + "description": "This API provides capability to replace a Route Aggregation Rule completely", + "operationId": "replaceRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + }, + "examples": { + "RouteaggregationIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteAggregationRuleIPv4" + } + } + } + }, + "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/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetResponseExample" + "RouteAggregationRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteAggregationRuleReplaceIpv4Response" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10979,7 +11274,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10987,7 +11282,37 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$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" } } } @@ -10997,33 +11322,42 @@ }, "delete": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Delete Network By ID", - "description": "This API provides capability to delete user's Fabric Network", - "operationId": "deleteNetworkByUuid", + "summary": "DeleteRARule", + "description": "This API provides capability to delete a Route aggregation Rule", + "operationId": "deleteRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], "responses": { "202": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkDeleteResponseExample" + "RouteAggregationDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteAggregationRuleDeleteBgpIpv4PrefixResponse" } } } @@ -11038,7 +11372,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_transient_aggregation" } } } @@ -11075,7 +11409,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11083,7 +11417,37 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$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" } } } @@ -11093,34 +11457,43 @@ }, "patch": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Update Network By ID", - "description": "This API provides capability to update user's Fabric Network", - "operationId": "updateNetworkByUuid", + "summary": "PatchRARule", + "description": "This API provides capability to partially update a Route Aggregation Rule", + "operationId": "patchRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkUpdateRequest" + "$ref": "#/components/schemas/RouteAggregationRulesPatchRequest" }, "examples": { - "UpdateName": { - "$ref": "#/components/examples/UpdateNetworkName" + "RouteaggregationRuleName": { + "$ref": "#/components/examples/PatchRouteAggregationRuleName" }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNetworkNotifications" + "RouteaggregationRulePrefix": { + "$ref": "#/components/examples/PatchRouteAggregationRulePrefix" } } } @@ -11128,16 +11501,16 @@ "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/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPatchResponseExample" + "RouteAggregationRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteAggregationRuleReplaceIpv4Response" } } } @@ -11151,8 +11524,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_state" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11189,7 +11565,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11197,7 +11573,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11217,48 +11593,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/search": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes": { + "get": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "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" - } - } + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Aggregation Rule's Changes", + "operationId": "getRouteAggregationRuleChanges", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" } }, - "required": true - }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + }, + { + "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 Aggregation Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchResponse" + "$ref": "#/components/schemas/RouteAggregationRulesChangeDataResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkSearchResponseExample" + "RouteAggregationRuleChangesResponse": { + "$ref": "#/components/examples/RouteAggregationRulesGetAllChangesResponseExample" } } } @@ -11272,8 +11684,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -11309,8 +11724,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11318,7 +11733,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$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" } } } @@ -11327,36 +11757,54 @@ } } }, - "/fabric/v4/networks/{networkId}/connections": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes/{changeId}": { "get": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Connections", - "description": "The API provides capability to get list of user's Fabric Network connections", - "operationId": "getConnectionsByNetworkUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Aggregation Rule's Changes", + "operationId": "getRouteAggregationRuleChangeByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Route Aggregation Rule Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_4" } } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Route Aggregation Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkConnections" + "$ref": "#/components/schemas/RouteAggregationRulesChangeData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/GetNetworkConnectionExample" + "RouteAggregationChangeResponse": { + "$ref": "#/components/examples/RouteAggregationRuleGetChangeResponseExample" } } } @@ -11370,8 +11818,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -11407,8 +11858,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11416,7 +11867,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$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" } } } @@ -11425,43 +11891,53 @@ } } }, - "/fabric/v4/networks/{networkId}/changes": { - "get": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk": { + "post": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Network Changes", - "description": "The API provides capability to get list of user's Fabric Network changes", - "operationId": "getNetworkChanges", + "summary": "Bulk RARules", + "description": "This API provides capability to create bulk route aggregation rules", + "operationId": "createRouteAggregationRulesInBulk", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesPostRequest" + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChangeResponse" + "$ref": "#/components/schemas/GetRouteAggregationRulesResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkChangeResponseExample" + "getAllRouteAggregationRules": { + "$ref": "#/components/examples/RouteAggregationRulesBulkResponse" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -11469,7 +11945,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11505,6 +11981,21 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -11519,49 +12010,83 @@ } } } + }, + "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}": { - "get": { + "/fabric/v4/routers": { + "post": { "tags": [ - "Networks" + "Cloud Routers" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve user's Fabric Network Change", - "operationId": "getNetworkChangeByUuid", + "summary": "Create Routers", + "description": "This API provides capability to create user's Cloud Routers", + "operationId": "createCloudRouter", "parameters": [ { - "name": "networkId", - "in": "path", - "description": "Network UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/NetworkId" - } - }, - { - "name": "changeId", - "in": "path", - "description": "Network Change UUID", - "required": true, + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, "schema": { - "$ref": "#/components/schemas/ChangeId_3" + "type": "boolean", + "default": false } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPostRequest" + }, + "examples": { + "CreateLabPackage": { + "$ref": "#/components/examples/CreateLabPackage" + }, + "CreateProPackage": { + "$ref": "#/components/examples/CreateStandardPackage" + }, + "CreateWithMarketplaceSubscription": { + "$ref": "#/components/examples/CreateWithMarketplaceSubscription" + } + } + } + }, + "required": true + }, "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChange" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetChangeResponseExample" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPostResponseExample" + }, + "cloudRouterResponseForMarketplaceSubscription": { + "$ref": "#/components/examples/CloudRouterPostResponseMarketplaceExample" + }, + "cloudRouterResponseDryRun": { + "$ref": "#/components/examples/CloudRouterResponseExampleDryRun" } } } @@ -11575,8 +12100,17 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "invalidPackage": { + "$ref": "#/components/examples/400_invalid_package" + }, + "invalidName": { + "$ref": "#/components/examples/400_invalid_name" + }, + "invalidAccount": { + "$ref": "#/components/examples/400_invalid_account" + }, + "maxLabFcrReached": { + "$ref": "#/components/examples/400_max_lab_fcr_demo" } } } @@ -11612,8 +12146,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -11621,218 +12155,63 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } } - } - } - } - }, - "/fabric/v4/timeServices": { - "post": { - "tags": [ - "Precision Time" - ], - "summary": "Create Time Service", - "description": "The API provides capability to create Precision Time service", - "operationId": "createTimeServices", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" - }, - "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardService" - }, - "ptpStandard": { - "$ref": "#/components/examples/ptpStandardService" - }, - "ntpEnterprise": { - "$ref": "#/components/examples/ntpEnterpriseService" - }, - "ptpEnterprise": { - "$ref": "#/components/examples/ptpEnterpriseService" - }, - "ptpStandardWithAdvancedConfiguration": { - "$ref": "#/components/examples/ptpStandardWithAdvancedConfiguration" - }, - "ptpEnterpriseWithAdvancedConfiguration": { - "$ref": "#/components/examples/ptpEnterpriseWithAdvancedConfiguration" - }, - "ntpEnterpriseWithAdvancedConfiguration": { - "$ref": "#/components/examples/ntpEnterpriseWithAdvancedConfiguration" - } - } - } }, - "required": true - }, - "responses": { - "202": { - "description": "Successful Accepted operation", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" - }, - "ntpEnterprise": { - "$ref": "#/components/examples/ntpEnterpriseCreateResponse" - }, - "ptpStandard": { - "$ref": "#/components/examples/ptpStandardCreateResponse" - }, - "ptpEnterprise": { - "$ref": "#/components/examples/ptpEnterpriseCreateResponse" + "example": { + "$ref": "#/components/examples/500" } } } } - }, - "400": { - "description": "Bad request", + } + } + } + }, + "/fabric/v4/routers/{routerId}": { + "get": { + "tags": [ + "Cloud Routers" + ], + "summary": "Get Routers", + "description": "This API provides capability to retrieve user's Cloud Routers", + "operationId": "getCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "responses": { + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterResponseExample" }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "cloudRouterResponseMarketplace": { + "$ref": "#/components/examples/CloudRouterResponseExampleMarketplace" } } } @@ -11868,8 +12247,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -11877,7 +12256,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404" } } } @@ -11899,66 +12278,28 @@ } } } - } - }, - "/fabric/v4/timeServices/{serviceId}": { - "get": { + }, + "delete": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Service By ID.", - "description": "The API provides capability to get Precision Time Service details", - "operationId": "getTimeServicesById", + "summary": "Delete Routers", + "description": "This API provides capability to delete user's Cloud Routers", + "operationId": "deleteCloudRouterByUuid", "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" } } ], "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" - }, - "examples": { - "ntpStandardOriginPort": { - "$ref": "#/components/examples/ntpStandardResponseASidePort" - }, - "ntpStandardOriginVirtualDevice": { - "$ref": "#/components/examples/ntpStandardResponseASideVirtualDevice" - }, - "ntpStandardOriginCloudRouter": { - "$ref": "#/components/examples/ntpStandardResponseASideCloudRouter" - }, - "ntpEnterpriseOriginPort": { - "$ref": "#/components/examples/ntpEnterpriseWOMD5ResponseASidePort" - }, - "ntpEnterpriseWithAdvConfigOriginPort": { - "$ref": "#/components/examples/ntpEnterpriseResponseASidePort" - }, - "ntpEnterpriseWithAdvConfigOriginVirtualDevice": { - "$ref": "#/components/examples/ntpEnterpriseResponseASideVirtualDevice" - }, - "ntpEnterpriseWithAdvConfigOriginCloudRouter": { - "$ref": "#/components/examples/ntpEnterpriseResponseASideCloudRouter" - }, - "ptpStandardOriginPort": { - "$ref": "#/components/examples/ptpStandardResponse" - }, - "ptpEnterpriseOriginPort": { - "$ref": "#/components/examples/ptpEnterpriseResponse" - } - } - } - } + "204": { + "description": "Deleted Cloud Router Successfully" }, "400": { "description": "Bad request", @@ -11966,6 +12307,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -12015,21 +12361,6 @@ } } }, - "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": { @@ -12047,42 +12378,39 @@ } } }, - "put": { + "patch": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Configure Service.", - "description": "The API provides capability to Configure/Fulfill the Precision Time Service.", - "operationId": "fulfillTimeServices", + "summary": "Update Routers", + "description": "This API provides capability to update user's Cloud Routers", + "operationId": "updateCloudRouterByUuid", "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": { + "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" + "$ref": "#/components/schemas/CloudRouterUpdateRequest" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/configureStandardService" - }, - "ptpStandard": { - "$ref": "#/components/examples/configureStandardService" + "UpdatePackage": { + "$ref": "#/components/examples/UpdatePackage" }, - "ntpEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/configureNtpEnterpriseAdvancedConfig" + "UpdateName": { + "$ref": "#/components/examples/UpdateName" }, - "ptpEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/configurePtpWithAdvancedConfig" + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNotifications" } } } @@ -12090,16 +12418,16 @@ "required": true }, "responses": { - "202": { - "description": "Successful Accepted operation", + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardConfigureResponse" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPatchResponseExample" } } } @@ -12113,134 +12441,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12322,36 +12524,61 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/routers/{routerId}/actions": { + "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Delete by ID.", - "description": "The API provides capability to delete Precision Time Service by service id.", - "operationId": "deleteTimeServiceById", + "summary": "Get Route Table 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": { - "202": { - "description": "Successful Delete", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardDeletingResponse" + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12403,7 +12630,7 @@ } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -12434,50 +12661,39 @@ } } }, - "patch": { + "post": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Update By ID.", - "description": "The API provides capability to update Precision Time Service by service id.", - "operationId": "updateTimeServicesById", + "summary": "Create Route Table Action", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "createCloudRouterAction", "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" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "maxItems": 1, - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/precisionTimeChangeOperation" - } + "$ref": "#/components/schemas/CloudRouterActionRequest" }, "examples": { - "updateName": { - "$ref": "#/components/examples/updateName" - }, - "updatePackageCode": { - "$ref": "#/components/examples/updatePackageCode" - }, - "updateNetworkInformation": { - "$ref": "#/components/examples/updateNetworkInformation" + "RouteEntriesStatusUpdate": { + "$ref": "#/components/examples/RouteEntriesStatusUpdate" }, - "updatePtpAdvancedConfiguration": { - "$ref": "#/components/examples/updatePtpAdvancedConfiguration" + "ReceivedRouteEntriesStatusUpdate": { + "$ref": "#/components/examples/ReceivedRouteEntriesStatusUpdate" }, - "updateNtpAdvancedConfiguration": { - "$ref": "#/components/examples/updateNtpAdvancedConfiguration" + "AdvertisedRouteEntriesStatusUpdate": { + "$ref": "#/components/examples/AdvertisedRouteEntriesStatusUpdate" } } } @@ -12486,15 +12702,21 @@ }, "responses": { "202": { - "description": "Successful Accepted operation", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardReprovisionResponse" + "cloudRouterActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + }, + "receivedRouteEntriesExample": { + "$ref": "#/components/examples/CloudRouterReceivedRoutesActionResponse" + }, + "advertisedRouteEntriesExample": { + "$ref": "#/components/examples/CloudRouterAdvertisedRoutesActionResponse" } } } @@ -12508,134 +12730,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12687,7 +12783,7 @@ } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -12719,30 +12815,34 @@ } } }, - "/fabric/v4/timeServices/search": { + "/fabric/v4/routers/{routerId}/actions/search": { "post": { "tags": [ - "Precision Time" + "Cloud Routers" + ], + "summary": "Search Route Table Actions", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "searchRouterActions", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } ], - "summary": "Search Time Services", - "description": "The API provides capability to get list of user's Time Services using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchTimeServices", - "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TimeServicesSearchRequest" + "$ref": "#/components/schemas/CloudRouterActionsSearchRequest" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchTimeServicesFilterByStatus" - }, - "SearchFilterByNameAndProtocol": { - "$ref": "#/components/examples/SearchTimeServicesByNameAndProtocol" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchTimeServicesFilterOrAnd" + "CloudRouterActionsSearchByType": { + "$ref": "#/components/examples/CloudRouterActionsSearchByType" } } } @@ -12755,12 +12855,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ServiceSearchResponse" - }, - "examples": { - "Example": { - "$ref": "#/components/examples/serviceSearchResponse" - } + "$ref": "#/components/schemas/CloudRouterActionsSearchResponse" } } } @@ -12774,7 +12869,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/service_400_invalid_sorting" + "$ref": "#/components/examples/400_invalid_sorting" } } } @@ -12810,8 +12905,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": { @@ -12843,36 +12953,68 @@ } } }, - "/fabric/v4/timeServices/{serviceId}/connections": { + "/fabric/v4/routers/{routerId}/actions/{actionId}": { "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Connection Links", - "description": "The API provides capability to get prevision timing service's details", - "operationId": "getTimeServicesConnectionsByServiceId", + "summary": "Get Route Table Action by ID", + "description": "This API provides capability to fetch action status", + "operationId": "getCloudRouterActionsByUuid", "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": "actionId", + "in": "path", + "description": "Action UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ActionId_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/precisionTimeServiceConnectionsResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" + }, + "examples": { + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/serviceConnectionsResponse" + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12908,8 +13050,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": { @@ -12941,122 +13098,65 @@ } } }, - "/fabric/v4/timeServicePackages": { - "get": { + "/fabric/v4/routers/{routerId}/routes/search": { + "post": { "tags": [ - "Precision Time" - ], - "summary": "Get Packages", - "description": "The API provides capability to get timing service's packages", - "operationId": "getTimeServicesPackages", - "parameters": [], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" - }, - "examples": { - "example": { - "$ref": "#/components/examples/servicePackagesResponse" - } - } - } - } - }, - "415": { - "description": "Unsupported Media Type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } - } - } - } - }, - "/fabric/v4/timeServicePackages/{packageCode}": { - "get": { - "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Package By Code", - "description": "The API provides capability to get timing service's package by code", - "operationId": "getTimeServicesPackageByCode", + "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": "packageCode", + "name": "routerId", "in": "path", - "description": "Package Code", + "description": "Router UUID", "required": true, "schema": { - "type": "string", - "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" - ] + "$ref": "#/components/schemas/RouterId_1" } } ], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimePackageResponse" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchRequest" + }, + "examples": { + "SearchFilterByNextHop": { + "$ref": "#/components/examples/SearchFilterByNextHop" }, - "examples": { - "example": { - "$ref": "#/components/examples/servicePackageResponse" - } + "SearchFilterByPrefix": { + "$ref": "#/components/examples/SearchFilterByPrefix" + }, + "SearchFilterByType": { + "$ref": "#/components/examples/SearchFilterByType" + }, + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" } } } }, - "415": { - "description": "Unsupported Media Type", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } + "$ref": "#/components/schemas/RouteTableEntrySearchResponse" } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -13064,52 +13164,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/400_invalid_sorting" } } } } - } - } - } - }, - "/fabric/v4/marketplaceSubscriptions/{subscriptionId}": { - "get": { - "tags": [ - "Marketplace Subscriptions" - ], - "summary": "Get Subscription", - "description": "The API provides capability to get subscription", - "operationId": "getSubscriptionById", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/SubscriptionId" - } - } - ], - "responses": { - "200": { - "description": "Successful operation", + }, + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/subscription-response" + "$ref": "#/components/examples/401" } } } } }, - "401": { - "description": "Unauthorized", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -13117,14 +13194,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/403" } } } } }, - "403": { - "description": "Forbidden", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -13132,14 +13209,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/404" } } } } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -13168,135 +13245,107 @@ } } } - }, - "x-preview": false + } } }, - "/fabric/v4/streams": { - "get": { + "/fabric/v4/routers/{routerId}/validate": { + "post": { "tags": [ - "Streams" + "Routing Protocols" ], - "summary": "Get Streams", - "description": "This API provides capability to retrieve streams", - "operationId": "getStreams", + "summary": "Validate Subnet", + "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", + "operationId": "validateRoutingProtocol", "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": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/RouterId" + } } ], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetAllStreamResponse" - }, - "examples": { - "Example": { - "$ref": "#/components/examples/stream-get-all-example" - } - } - } - } - }, - "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" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "ValidateDirectIpv4": { + "$ref": "#/components/examples/Request-direct-ipv4" }, - "examples": { - "example": { - "$ref": "#/components/examples/403" - } + "ValidateDirectIpv6": { + "$ref": "#/components/examples/Request-direct-ipv6" } } } }, - "404": { - "description": "Not Found", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/ValidateSubnetResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/404" + "ValidateSubnet": { + "$ref": "#/components/examples/Response-200" } } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/500" + "Bad Request": { + "$ref": "#/components/examples/error-400" + }, + "Subnet Overlapping": { + "$ref": "#/components/examples/error-400-overlappingSubnet" } } } } } } - }, + } + }, + "/fabric/v4/routers/search": { "post": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Create Stream", - "description": "This API provides capability to create user's stream", - "operationId": "createStreams", + "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/StreamPostRequest" + "$ref": "#/components/schemas/CloudRouterSearchRequest" }, "examples": { - "CreateStream": { - "$ref": "#/components/examples/StreamPostRequestExample" + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterByNameAndMetroName": { + "$ref": "#/components/examples/SearchFilterByNameAndMetroName" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" } } } @@ -13304,16 +13353,16 @@ "required": true }, "responses": { - "202": { - "description": "Stream object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/SearchResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamResponseExample" + "Example": { + "$ref": "#/components/examples/search-example" } } } @@ -13325,6 +13374,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } } } } @@ -13392,51 +13446,52 @@ } } }, - "/fabric/v4/streams/{streamId}": { + "/fabric/v4/routerPackages": { "get": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Get Stream", - "description": "This API provides capability to get user's stream", - "operationId": "getStreamByUuid", + "summary": "List Packages", + "description": "This API provides capability to retrieve user's Cloud Routers Packages", + "operationId": "getCloudRouterPackages", "parameters": [ { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, + "name": "offset", + "in": "query", + "description": "offset", + "required": false, "schema": { - "$ref": "#/components/schemas/StreamId" - } + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Stream object", + "description": "Fabric Cloud Router Packages", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/PackageResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamResponseExample" + "Example": { + "$ref": "#/components/examples/ListFCRPackagesResponse" } } } } }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, "401": { "description": "Unauthorized", "content": { @@ -13467,8 +13522,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -13476,7 +13531,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } @@ -13498,52 +13553,34 @@ } } } - }, - "put": { + } + }, + "/fabric/v4/routerPackages/{routerPackageCode}": { + "get": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Update Stream", - "description": "This API provides capability to update user's stream", - "operationId": "updateStreamByUuid", + "summary": "Get Package Details", + "description": "This API provides capability to retrieve user's Cloud Routers Package Details", + "operationId": "getCloudRouterPackageByCode", "parameters": [ { - "name": "streamId", + "name": "routerPackageCode", "in": "path", - "description": "Stream UUID", + "description": "Equinix-assigned Cloud Router package identifier", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/RouterPackageCode" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamPutRequest" - }, - "examples": { - "UpdateStream": { - "$ref": "#/components/examples/StreamPutRequestExample" - } - } - } - }, - "required": true - }, "responses": { - "202": { - "description": "Stream object", + "200": { + "description": "Fabric Cloud Router Package details", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" - }, - "examples": { - "StreamResponse": { - "$ref": "#/components/examples/StreamResponseExample" - } + "$ref": "#/components/schemas/CloudRouterPackage" } } } @@ -13554,6 +13591,20 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "invalidPackage": { + "$ref": "#/components/examples/400_invalid_package" + }, + "invalidName": { + "$ref": "#/components/examples/400_invalid_name" + }, + "invalidAccount": { + "$ref": "#/components/examples/400_invalid_account" + }, + "maxLabFcrReached": { + "$ref": "#/components/examples/400_max_lab_fcr_demo" + } } } } @@ -13588,21 +13639,6 @@ } } }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404" - } - } - } - } - }, "415": { "description": "Unsupported Media Type", "content": { @@ -13634,106 +13670,143 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/health": { + "get": { "tags": [ - "Streams" - ], - "summary": "Delete Stream", - "description": "This API provides capability to delete user's stream", - "operationId": "deleteStreamByUuid", - "parameters": [ - { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamId" - } - } + "Health" ], + "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": { - "202": { - "description": "Stream object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/HealthResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamDeleteRequestExample" + "metroExample": { + "$ref": "#/components/examples/healthResponse" } } } } - }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/401" - } - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "/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" }, - "examples": { - "example": { - "$ref": "#/components/examples/403" - } + "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" } } } }, - "404": { - "description": "Not Found", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/ConnectionResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/404" + "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" } } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/500" + "Bad Request": { + "$ref": "#/components/examples/error-400" } } } @@ -13742,45 +13815,44 @@ } } }, - "/fabric/v4/streamAssets/search": { + "/fabric/v4/networks": { "post": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Assets", - "description": "This API provides capability to retrieve stream assets", - "operationId": "getStreamsAssets", + "summary": "Create Network", + "description": "This API provides capability to create user's Fabric Network", + "operationId": "createNetwork", "parameters": [ { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "schema": { - "type": "integer" - }, - "example": 1 - }, - { - "name": "limit", + "name": "dryRun", "in": "query", - "description": "number of records to fetch", + "description": "option to verify that API calls will succeed", "required": false, "schema": { - "type": "integer" - }, - "example": 10 + "type": "boolean", + "default": false + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAssetSearchRequest" + "$ref": "#/components/schemas/NetworkPostRequest" }, "examples": { - "SearchAssets": { - "$ref": "#/components/examples/StreamAssetSearchRequestExample" + "CreateGlobalNetwork": { + "$ref": "#/components/examples/CreateGlobalNetwork" + }, + "CreateRegionalNetwork": { + "$ref": "#/components/examples/CreateRegionalNetwork" + }, + "CreateLocalNetwork": { + "$ref": "#/components/examples/CreateLocalNetwork" + }, + "NetworkDryRunCreate": { + "$ref": "#/components/examples/CreateNetworkDryRunResponse" } } } @@ -13793,11 +13865,41 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllStreamAssetResponse" + "$ref": "#/components/schemas/Network" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-asset-get-all-example" + "networkDryRun": { + "$ref": "#/components/examples/CreateNetworkDryRunResponse" + } + } + } + } + }, + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPostResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" } } } @@ -13833,8 +13935,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -13842,7 +13944,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } @@ -13866,69 +13968,41 @@ } } }, - "/fabric/v4/streams/{streamId}/{asset}/{assetId}": { + "/fabric/v4/networks/{networkId}": { "get": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Asset", - "description": "This API provides capability to get user's assets attached to a stream", - "operationId": "getStreamAssetByUuid", + "summary": "Get Network By ID", + "description": "This API provides capability to retrieve user's Fabric Network", + "operationId": "getNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], "responses": { "200": { - "description": "Stream asset object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamConnectionAssetResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkGetResponseExample" } } } } }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, "401": { "description": "Unauthorized", "content": { @@ -13973,86 +14047,38 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } }, - "put": { + "delete": { "tags": [ - "Streams" + "Networks" ], - "summary": "Attach Asset", - "description": "This API provides capability to attach an asset to a stream", - "operationId": "updateStreamAssetByUuid", + "summary": "Delete Network By ID", + "description": "This API provides capability to delete user's Fabric Network", + "operationId": "deleteNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamAssetPutRequest" - }, - "examples": { - "UpdateStream": { - "$ref": "#/components/examples/StreamAssetPutRequestExample" - } - } - } - }, - "required": true - }, "responses": { "202": { - "description": "Stream object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamAssetResponse": { - "$ref": "#/components/examples/StreamRouterAssetAttachResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkDeleteResponseExample" } } } @@ -14064,6 +14090,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -14112,86 +14143,56 @@ } } } - }, - "415": { - "description": "Unsupported Media Type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } }, - "delete": { + "patch": { "tags": [ - "Streams" + "Networks" ], - "summary": "Detach Asset", - "description": "This API provides capability to detach an asset from a stream", - "operationId": "deleteStreamAssetByUuid", + "summary": "Update Network By ID", + "description": "This API provides capability to update user's Fabric Network", + "operationId": "updateNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], + "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": { - "202": { - "description": "Stream object", + "200": { + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamAssetResponse": { - "$ref": "#/components/examples/StreamRouterAssetDetachResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkPatchResponseExample" } } } @@ -14203,6 +14204,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -14252,8 +14258,8 @@ } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14261,7 +14267,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } @@ -14270,63 +14276,51 @@ } } }, - "/fabric/v4/streams/{streamId}/streamSubscriptions": { - "get": { + "/fabric/v4/networks/search": { + "post": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Stream's Subs", - "description": "This API provides capability to retrieve subscriptions in a stream", - "operationId": "getSubscriptionsInStream", - "parameters": [ - { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamId" + "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" + } + } } }, - { - "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 - } - ], + "required": true + }, "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetSubscriptionsInStreamResponse" + "$ref": "#/components/schemas/NetworkSearchResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-get-all-subscription-example" + "networkResponse": { + "$ref": "#/components/examples/NetworkSearchResponseExample" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -14334,14 +14328,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_invalid_sorting" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -14349,14 +14343,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -14364,14 +14358,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14379,7 +14373,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } @@ -14388,54 +14382,43 @@ } } }, - "/fabric/v4/streamSubscriptions": { + "/fabric/v4/networks/{networkId}/connections": { "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Get Subscriptions", - "description": "This API provides capability to retrieve stream subscriptions", - "operationId": "getStreamSubscriptions", + "summary": "Get Connections", + "description": "The API provides capability to get list of user's Fabric Network connections", + "operationId": "getConnectionsByNetworkUuid", "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": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/NetworkId" + } } ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllStreamSubscriptionResponse" + "$ref": "#/components/schemas/NetworkConnections" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-subscription-get-all-example" + "networkResponse": { + "$ref": "#/components/examples/GetNetworkConnectionExample" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -14443,14 +14426,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_invalid_uuid" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -14458,14 +14441,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -14473,14 +14456,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14488,57 +14471,45 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } } } } - }, - "post": { + } + }, + "/fabric/v4/networks/{networkId}/changes": { + "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Create Subscription", - "description": "This API provides capability to create user's Stream Subscriptions", - "operationId": "createStreamSubscriptions", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamSubscriptionPostRequest" - }, - "examples": { - "CreateStreamSubscription_Splunk": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSplunk" - }, - "CreateStreamSubscription_Slack": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSlack" - }, - "CreateStreamSubscription_Pagerduty": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExamplePagerduty" - }, - "CreateStreamSubscription_Datadog": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleDatadog" - } - } + "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" } - }, - "required": true - }, + } + ], "responses": { - "202": { - "description": "Stream Subscription object", + "200": { + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/NetworkChangeResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkChangeResponseExample" } } } @@ -14550,6 +14521,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } } } } @@ -14598,55 +14574,49 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } } }, - "/fabric/v4/streamSubscriptions/{streamSubscriptionId}": { + "/fabric/v4/networks/{networkId}/changes/{changeId}": { "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Get Subscription", - "description": "This API provides capability to delete user's get Stream Subscriptions", - "operationId": "getStreamSubscriptionByUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve user's Fabric Network Change", + "operationId": "getNetworkChangeByUuid", "parameters": [ { - "name": "streamSubscriptionId", + "name": "networkId", "in": "path", - "description": "Stream Subscription UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" + "$ref": "#/components/schemas/NetworkId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Network Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_5" } } ], "responses": { "200": { - "description": "Stream Subscription object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/NetworkChange" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkGetChangeResponseExample" } } } @@ -14658,6 +14628,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } } } } @@ -14706,51 +14681,46 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } - }, - "put": { + } + }, + "/fabric/v4/timeServices": { + "post": { "tags": [ - "Stream Subscriptions" - ], - "summary": "Update Subscription", - "description": "This API provides capability to update user's Stream Subscriptions", - "operationId": "updateStreamSubscriptionByUuid", - "parameters": [ - { - "name": "streamSubscriptionId", - "in": "path", - "description": "Stream Subscription UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" - } - } + "Precision Time" ], + "summary": "Create Time Service", + "description": "The API provides capability to create Precision Time service", + "operationId": "createTimeServices", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscriptionPutRequest" + "$ref": "#/components/schemas/precisionTimeServiceRequest" }, "examples": { - "UpdateSubscription": { - "$ref": "#/components/examples/StreamSubscriptionPutRequestExample" + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardService" + }, + "ptpStandard": { + "$ref": "#/components/examples/ptpStandardService" + }, + "ntpEnterprise": { + "$ref": "#/components/examples/ntpEnterpriseService" + }, + "ptpEnterprise": { + "$ref": "#/components/examples/ptpEnterpriseService" + }, + "ptpStandardWithAdvancedConfiguration": { + "$ref": "#/components/examples/ptpStandardWithAdvancedConfiguration" + }, + "ptpEnterpriseWithAdvancedConfiguration": { + "$ref": "#/components/examples/ptpEnterpriseWithAdvancedConfiguration" + }, + "ntpEnterpriseWithAdvancedConfiguration": { + "$ref": "#/components/examples/ntpEnterpriseWithAdvancedConfiguration" } } } @@ -14759,15 +14729,24 @@ }, "responses": { "202": { - "description": "Stream Subscription object", + "description": "Successful Accepted operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/precisionTimeServiceResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + }, + "ntpEnterprise": { + "$ref": "#/components/examples/ntpEnterpriseCreateResponse" + }, + "ptpStandard": { + "$ref": "#/components/examples/ptpStandardCreateResponse" + }, + "ptpEnterprise": { + "$ref": "#/components/examples/ptpEnterpriseCreateResponse" } } } @@ -14779,6 +14758,137 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } } } } @@ -14813,21 +14923,6 @@ } } }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404" - } - } - } - } - }, "415": { "description": "Unsupported Media Type", "content": { @@ -14859,36 +14954,62 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/timeServices/{serviceId}": { + "get": { "tags": [ - "Stream Subscriptions" + "Precision Time" ], - "summary": "Delete Subscription", - "description": "This API provides capability to delete user's Stream Subscriptions", - "operationId": "deleteStreamSubscriptionByUuid", + "summary": "Get Service By ID.", + "description": "The API provides capability to get Precision Time Service details", + "operationId": "getTimeServicesById", "parameters": [ { - "name": "streamSubscriptionId", + "name": "serviceId", "in": "path", - "description": "Stream Subscription UUID", + "description": "Service UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" + "$ref": "#/components/schemas/ServiceId" } } ], "responses": { - "202": { - "description": "Stream Subscription object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/precisionTimeServiceResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionDeleteResponseExample" + "ntpStandardOriginPort": { + "$ref": "#/components/examples/ntpStandardResponseASidePort" + }, + "ntpStandardOriginVirtualDevice": { + "$ref": "#/components/examples/ntpStandardResponseASideVirtualDevice" + }, + "ntpStandardOriginCloudRouter": { + "$ref": "#/components/examples/ntpStandardResponseASideCloudRouter" + }, + "ntpEnterpriseOriginPort": { + "$ref": "#/components/examples/ntpEnterpriseWOMD5ResponseASidePort" + }, + "ntpEnterpriseWithAdvConfigOriginPort": { + "$ref": "#/components/examples/ntpEnterpriseResponseASidePort" + }, + "ntpEnterpriseWithAdvConfigOriginVirtualDevice": { + "$ref": "#/components/examples/ntpEnterpriseResponseASideVirtualDevice" + }, + "ntpEnterpriseWithAdvConfigOriginCloudRouter": { + "$ref": "#/components/examples/ntpEnterpriseResponseASideCloudRouter" + }, + "ptpStandardOriginPort": { + "$ref": "#/components/examples/ptpStandardResponse" + }, + "ptpEnterpriseOriginPort": { + "$ref": "#/components/examples/ptpEnterpriseResponse" } } } @@ -14949,6 +15070,21 @@ } } }, + "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": { @@ -14965,38 +15101,2956 @@ } } } - } - } - }, - "components": { - "schemas": { - "ConnectionPostRequest": { - "required": [ - "aSide", - "bandwidth", - "name", - "notifications", - "type", - "zSide" + }, + "put": { + "tags": [ + "Precision Time" ], - "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" - } + "summary": "Configure Service.", + "description": "The API provides capability to Configure/Fulfill the Precision Time Service.", + "operationId": "fulfillTimeServices", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceRequest" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/configureStandardService" + }, + "ptpStandard": { + "$ref": "#/components/examples/configureStandardService" + }, + "ntpEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/configureNtpEnterpriseAdvancedConfig" + }, + "ptpEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/configurePtpWithAdvancedConfig" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Accepted operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardConfigureResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Precision Time" + ], + "summary": "Delete by ID.", + "description": "The API provides capability to delete Precision Time Service by service id.", + "operationId": "deleteTimeServiceById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "responses": { + "202": { + "description": "Successful Delete", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardDeletingResponse" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "patch": { + "tags": [ + "Precision Time" + ], + "summary": "Update By ID.", + "description": "The API provides capability to update Precision Time Service by service id.", + "operationId": "updateTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "maxItems": 1, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/precisionTimeChangeOperation" + } + }, + "examples": { + "updateName": { + "$ref": "#/components/examples/updateName" + }, + "updatePackageCode": { + "$ref": "#/components/examples/updatePackageCode" + }, + "updateNetworkInformation": { + "$ref": "#/components/examples/updateNetworkInformation" + }, + "updatePtpAdvancedConfiguration": { + "$ref": "#/components/examples/updatePtpAdvancedConfiguration" + }, + "updateNtpAdvancedConfiguration": { + "$ref": "#/components/examples/updateNtpAdvancedConfiguration" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Accepted operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardReprovisionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServices/search": { + "post": { + "tags": [ + "Precision Time" + ], + "summary": "Search Time Services", + "description": "The API provides capability to get list of user's Time Services using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchTimeServices", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimeServicesSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchTimeServicesFilterByStatus" + }, + "SearchFilterByNameAndProtocol": { + "$ref": "#/components/examples/SearchTimeServicesByNameAndProtocol" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchTimeServicesFilterOrAnd" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceSearchResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/serviceSearchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/service_400_invalid_sorting" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServices/{serviceId}/connections": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Connection Links", + "description": "The API provides capability to get prevision timing service's details", + "operationId": "getTimeServicesConnectionsByServiceId", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "responses": { + "200": { + "description": "Return Time Service Connection", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceConnectionsResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/serviceConnectionsResponse" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServicePackages": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Packages", + "description": "The API provides capability to get timing service's packages", + "operationId": "getTimeServicesPackages", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/servicePackagesResponse" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/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" + ] + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimePackageResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/servicePackageResponse" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/marketplaceSubscriptions/{subscriptionId}": { + "get": { + "tags": [ + "Marketplace Subscriptions" + ], + "summary": "Get Subscription", + "description": "The API provides capability to get subscription", + "operationId": "getSubscriptionById", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/SubscriptionId" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/subscription-response" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Streams", + "description": "This API provides capability to retrieve streams", + "operationId": "getStreams", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Streams" + ], + "summary": "Create Stream", + "description": "This API provides capability to create user's stream", + "operationId": "createStreams", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamPostRequest" + }, + "examples": { + "CreateStream": { + "$ref": "#/components/examples/StreamPostRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Stream", + "description": "This API provides capability to get user's stream", + "operationId": "getStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "200": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Streams" + ], + "summary": "Update Stream", + "description": "This API provides capability to update user's stream", + "operationId": "updateStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamPutRequest" + }, + "examples": { + "UpdateStream": { + "$ref": "#/components/examples/StreamPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Streams" + ], + "summary": "Delete Stream", + "description": "This API provides capability to delete user's stream", + "operationId": "deleteStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamDeleteRequestExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamAssets/search": { + "post": { + "tags": [ + "Streams" + ], + "summary": "Get Assets", + "description": "This API provides capability to retrieve stream assets", + "operationId": "getStreamsAssets", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAssetSearchRequest" + }, + "examples": { + "SearchAssets": { + "$ref": "#/components/examples/StreamAssetSearchRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamAssetResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-asset-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}/{asset}/{assetId}": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Asset", + "description": "This API provides capability to get user's assets attached to a stream", + "operationId": "getStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "200": { + "description": "Stream asset object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamConnectionAssetResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Streams" + ], + "summary": "Attach Asset", + "description": "This API provides capability to attach an asset to a stream", + "operationId": "updateStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAssetPutRequest" + }, + "examples": { + "UpdateStream": { + "$ref": "#/components/examples/StreamAssetPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamAssetResponse": { + "$ref": "#/components/examples/StreamRouterAssetAttachResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Streams" + ], + "summary": "Detach Asset", + "description": "This API provides capability to detach an asset from a stream", + "operationId": "deleteStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamAssetResponse": { + "$ref": "#/components/examples/StreamRouterAssetDetachResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}/streamSubscriptions": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Stream's Subs", + "description": "This API provides capability to retrieve subscriptions in a stream", + "operationId": "getSubscriptionsInStream", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + }, + { + "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": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionsInStreamResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-get-all-subscription-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamSubscriptions": { + "get": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Get Subscriptions", + "description": "This API provides capability to retrieve stream subscriptions", + "operationId": "getStreamSubscriptions", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamSubscriptionResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-subscription-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Create Subscription", + "description": "This API provides capability to create user's Stream Subscriptions", + "operationId": "createStreamSubscriptions", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionPostRequest" + }, + "examples": { + "CreateStreamSubscription_Splunk": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSplunk" + }, + "CreateStreamSubscription_Slack": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSlack" + }, + "CreateStreamSubscription_Pagerduty": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExamplePagerduty" + }, + "CreateStreamSubscription_Datadog": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleDatadog" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamSubscriptions/{streamSubscriptionId}": { + "get": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Get Subscription", + "description": "This API provides capability to delete user's get Stream Subscriptions", + "operationId": "getStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "responses": { + "200": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Update Subscription", + "description": "This API provides capability to update user's Stream Subscriptions", + "operationId": "updateStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionPutRequest" + }, + "examples": { + "UpdateSubscription": { + "$ref": "#/components/examples/StreamSubscriptionPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Delete Subscription", + "description": "This API provides capability to delete user's Stream Subscriptions", + "operationId": "deleteStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionDeleteResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ConnectionPostRequest": { + "required": [ + "aSide", + "bandwidth", + "name", + "notifications", + "type", + "zSide" + ], + "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" + } }, "bandwidth": { "maximum": 50000, @@ -15028,6 +18082,9 @@ }, "marketplaceSubscription": { "$ref": "#/components/schemas/marketplaceSubscription" + }, + "endCustomer": { + "$ref": "#/components/schemas/EndCustomer" } }, "description": "Create connection post request" @@ -16947,6 +20004,10 @@ "format": "uri", "readOnly": true }, + "expiry": { + "type": "integer", + "deprecated": true + }, "uuid": { "type": "string", "description": "Equinix-assigned service token identifier", @@ -16955,10 +20016,7 @@ "issuerSide": { "type": "string", "description": "information about token side", - "enum": [ - "ASIDE", - "ZSIDE" - ] + "deprecated": true }, "name": { "type": "string", @@ -17205,7 +20263,8 @@ "description": "Geographic boundary types", "enum": [ "CANADA", - "CONUS" + "CONUS", + "JAPAN" ] }, "MetroErrorList": { @@ -17463,6 +20522,9 @@ "$ref": "#/components/schemas/PortAdditionalInfo" } }, + "endCustomer": { + "$ref": "#/components/schemas/EndCustomer" + }, "physicalPorts": { "type": "array", "description": "Physical ports that implement this port", @@ -17717,6 +20779,61 @@ } } }, + "GetAllConnectionRouteAggregationsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregations attached to a Connection", + "items": { + "$ref": "#/components/schemas/ConnectionRouteAggregationData" + } + } + } + }, + "RouteAggregationId": { + "type": "string", + "description": "Route Aggregations UUID", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "ConnectionRouteAggregationData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "attachmentStatus": { + "type": "string", + "enum": [ + "ATTACHING", + "ATTACHED", + "DETACHED", + "DETACHING", + "FAILED", + "PENDING_BGP_CONFIGURATION" + ] + } + } + }, "GetAllConnectionRouteFiltersResponse": { "type": "object", "properties": { @@ -17742,13 +20859,13 @@ "properties": { "href": { "type": "string", - "description": "Route Filter URI", + "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", + "description": "Route filter type", "enum": [ "BGP_IPv4_PREFIX_FILTER", "BGP_IPv6_PREFIX_FILTER" @@ -17830,7 +20947,7 @@ "properties": { "href": { "type": "string", - "description": "Route Filter URI", + "description": "Route filter URI", "format": "uri", "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -17844,7 +20961,7 @@ }, "uuid": { "type": "string", - "description": "Route Filter identifier", + "description": "Route filter identifier", "format": "uuid", "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -17906,7 +21023,7 @@ } } }, - "description": "List of Route Filter changes" + "description": "List of route filter changes" }, "ChangeId_1": { "type": "string", @@ -17928,7 +21045,7 @@ }, "createdBy": { "type": "string", - "description": "Created by User Key" + "description": "Created by user key" }, "createdDateTime": { "type": "string", @@ -17937,7 +21054,7 @@ }, "updatedBy": { "type": "string", - "description": "Updated by User Key" + "description": "Updated by user key" }, "updatedDateTime": { "type": "string", @@ -17952,7 +21069,7 @@ "$ref": "#/components/schemas/RouteFiltersChangeOperation" } }, - "description": "Current state of latest Route Filter change", + "description": "Current state of latest route filter change", "allOf": [ { "$ref": "#/components/schemas/RouteFiltersChange" @@ -18053,7 +21170,7 @@ }, "data": { "type": "array", - "description": "List of Route Filters", + "description": "List of route filters", "items": { "$ref": "#/components/schemas/RouteFiltersData" } @@ -18111,7 +21228,7 @@ }, "type": { "type": "string", - "description": "Route Filter type", + "description": "Route filter type", "enum": [ "BGP_IPv4_PREFIX_FILTER_RULE", "BGP_IPv6_PREFIX_FILTER_RULE" @@ -18185,7 +21302,7 @@ } } }, - "description": "List of Route Filter Rule changes" + "description": "List of route filter rule changes" }, "ChangeId_2": { "type": "string", @@ -18227,7 +21344,7 @@ "$ref": "#/components/schemas/RouteFilterRulesChangeOperation" } }, - "description": "Current state of latest Route Filter Rules change", + "description": "Current state of latest route filter rules change", "allOf": [ { "$ref": "#/components/schemas/RouteFilterRulesChange" @@ -18247,6 +21364,430 @@ }, "description": "Create Route Filter Rule POST request" }, + "RouteAggregationsBase": { + "required": [ + "name", + "project", + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION", + "BGP_IPv6_PREFIX_AGGREGATION" + ] + }, + "name": { + "type": "string", + "example": "My-direct-route-1" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" + }, + "project": { + "$ref": "#/components/schemas/Project" + } + } + }, + "RouteAggregationsData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION", + "BGP_IPv6_PREFIX_AGGREGATION" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "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/RouteAggregationState" + }, + "change": { + "$ref": "#/components/schemas/RouteAggregationsChange" + }, + "connectionsCount": { + "type": "integer", + "example": 0 + }, + "rulesCount": { + "type": "integer", + "example": 0 + }, + "project": { + "$ref": "#/components/schemas/RouteAggregationsData_project" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "RouteAggregationsPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Aggregations request", + "items": { + "$ref": "#/components/schemas/RouteAggregationsPatchRequestItem" + } + }, + "RouteAggregationChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationChangeData" + } + } + }, + "description": "List of Route Aggregation changes" + }, + "ChangeId_3": { + "type": "string", + "description": "Route Aggregations Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteAggregationChangeData": { + "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/RouteAggregationsChangeOperation" + } + }, + "description": "Current state of latest Route Aggregation change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteAggregationsChange" + } + ] + }, + "GetRouteAggregationGetConnectionsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Connections using a Route Aggregation", + "items": { + "$ref": "#/components/schemas/RouteAggregationConnectionsData" + } + } + } + }, + "RouteAggregationsSearchBase": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/RouteAggregationsSearchBase_filter" + }, + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationSortItem" + } + } + } + }, + "RouteAggregationsSearchFilterItem": { + "type": "object", + "properties": { + "property": { + "type": "string", + "enum": [ + "/type", + "/name", + "/project/projectId", + "/uuid", + "/state" + ] + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RouteAggregationSortItem": { + "type": "object", + "properties": { + "property": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/type", + "/uuid", + "/name", + "/project/projectId", + "/state", + "/connectionsCount", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" + ] + }, + "direction": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + } + } + }, + "RouteAggregationsSearchResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregations", + "items": { + "$ref": "#/components/schemas/RouteAggregationsData" + } + } + } + }, + "GetRouteAggregationRulesResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregation Rules", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesData" + } + } + } + }, + "RouteAggregationRulesBase": { + "required": [ + "prefix" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Private-subnet-Aggregation" + }, + "description": { + "type": "string", + "description": "Customer-provided Route Aggregation Rule description" + }, + "prefix": { + "type": "string", + "example": "192.168.0.0/24" + } + } + }, + "RouteAggregationRulesData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation Rules URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_RULE" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation Rule identifier", + "format": "uuid", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "name": { + "type": "string", + "example": "Private-subnet-aggregation-2" + }, + "description": { + "type": "string", + "description": "Customer-provided Route Aggregation Rule description" + }, + "state": { + "$ref": "#/components/schemas/RouteAggregationRuleState" + }, + "change": { + "$ref": "#/components/schemas/RouteAggregationRulesChange" + }, + "prefix": { + "type": "string", + "example": "192.168.0.0/24" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "RouteAggregationRuleId": { + "type": "string", + "description": "Route Aggregation Rule UUID", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "RouteAggregationRulesPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Aggregations Rule request", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesPatchRequestItem" + } + }, + "RouteAggregationRulesChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesChangeData" + } + } + }, + "description": "List of Route Aggregation Rule changes" + }, + "ChangeId_4": { + "type": "string", + "description": "Route Aggregation Rule Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteAggregationRulesChangeData": { + "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" + }, + "data": { + "$ref": "#/components/schemas/RouteAggregationRulesChangeOperation" + } + }, + "description": "Current state of latest Route Aggregation Rules change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteAggregationRulesChange" + } + ] + }, + "RouteAggregationRulesPostRequest": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Route Aggregation Rule configuration", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + } + } + }, + "description": "Create Route Aggregation Rule POST request" + }, "CloudRouterPostRequest": { "type": "object", "properties": { @@ -18319,31 +21860,11 @@ "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" - }, "marketplaceSubscription": { "$ref": "#/components/schemas/marketplaceSubscription" }, @@ -18386,7 +21907,7 @@ }, "CloudRouterActionState": { "type": "string", - "description": "Cloud Router action state", + "description": "Cloud router action state", "enum": [ "SUCCEEDED", "FAILED", @@ -18431,7 +21952,7 @@ "$ref": "#/components/schemas/Operation" } }, - "description": "Cloud Router actions response object" + "description": "Cloud router actions response object" }, "CloudRouterActionRequest": { "required": [ @@ -18446,7 +21967,7 @@ "$ref": "#/components/schemas/RouterActionsConnection" } }, - "description": "Cloud Router action request" + "description": "Cloud router action request" }, "CloudRouterActionsSearchRequest": { "type": "object", @@ -18907,46 +22428,10 @@ "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": "CloudRouter package NAT supported type", - "example": "STATIC_NAT", - "enum": [ - "STATIC_NAT" - ] - }, "vcCountMax": { "minimum": 0, "type": "integer", @@ -19328,7 +22813,7 @@ }, "description": "List of network changes" }, - "ChangeId_3": { + "ChangeId_5": { "type": "string", "description": "Network Change UUID", "format": "uuid", @@ -19465,6 +22950,7 @@ "description": "Precision Time Service Status.", "enum": [ "CANCELLED", + "CANCELLING", "CONFIGURING", "CONFIGURING_FAILED", "DRAFT", @@ -19509,6 +22995,9 @@ "order": { "$ref": "#/components/schemas/precisionTimeOrder" }, + "pricing": { + "$ref": "#/components/schemas/precisionTimePrice" + }, "changeLog": { "$ref": "#/components/schemas/Changelog" } @@ -19865,9 +23354,12 @@ "trial": { "$ref": "#/components/schemas/SubscriptionTrial" }, - "subscriptionKey": { - "type": "string", - "description": "Subscription Key" + "metroCodes": { + "type": "array", + "description": "List of available metro", + "items": { + "type": "string" + } }, "entitlements": { "type": "array", @@ -19880,8 +23372,7 @@ "$ref": "#/components/schemas/Changelog" } }, - "description": "Subscription Response", - "x-preview": false + "description": "Subscription Response" }, "SubscriptionState": { "type": "string", @@ -20048,7 +23539,7 @@ "description": "Stream subscriptions count", "example": 2 }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" } }, @@ -20214,7 +23705,9 @@ "ports", "connections", "routers", - "metros" + "metros", + "organizations", + "projects" ] }, "StreamAsset": { @@ -20232,6 +23725,20 @@ "format": "uuid", "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, + "type": { + "type": "string", + "description": "Asset types", + "enum": [ + "XF_PORT", + "IP_VC", + "EVPLAN_VC", + "EVPL_VC", + "XF_METRO", + "XF_ROUTER", + "ORGANIZATION", + "PROJECT" + ] + }, "metricsEnabled": { "type": "boolean", "description": "enable metric", @@ -20323,6 +23830,12 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" } @@ -20385,6 +23898,30 @@ } } }, + "StreamSubscriptionSelector": { + "type": "object", + "properties": { + "include": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/StreamSubscriptionExpression" + } + }, + "except": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/StreamSubscriptionExpression" + } + } + } + }, + "StreamSubscriptionExpression": { + "type": "string", + "description": "Possible event or metric names to use on event and metric selectors:\n * `*` - all events or metrics\n * `equinix.fabric.port.*` - port events or metrics\n * `equinix.fabric.connection.*` - connection events or metrics\n * `equinix.fabric.cloudrouter.*` - cloud router events\n * `equinix.fabric.metro.*` - metro metrics\n * `equinix.fabric.network.*` - network events\n * `equinix.fabric.service_token.*` - service token events\n * `equinix.fabric.network_edge.*` - network edge events\n", + "example": "equinix.fabric.connection.*" + }, "StreamSubscriptionSink": { "type": "object", "properties": { @@ -20530,10 +24067,16 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" } }, @@ -20567,6 +24110,12 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" } @@ -20737,7 +24286,9 @@ "description": "Marketplace Subscription type", "example": "AWS_MARKETPLACE_SUBSCRIPTION", "enum": [ - "AWS_MARKETPLACE_SUBSCRIPTION" + "AWS_MARKETPLACE_SUBSCRIPTION", + "GCP_MARKETPLACE_SUBSCRIPTION", + "AZURE_MARKETPLACE_SUBSCRIPTION" ] }, "uuid": { @@ -20748,6 +24299,22 @@ }, "description": "Equinix Fabric Entity for Marketplace Subscription" }, + "EndCustomer": { + "type": "object", + "properties": { + "isDisclosed": { + "type": "boolean", + "description": "Indicate if endCustomer info should be disclosed or not", + "default": false + }, + "name": { + "type": "string" + }, + "mdmId": { + "type": "string" + } + } + }, "ConnectionState": { "type": "string", "description": "Connection status", @@ -21140,7 +24707,7 @@ "$ref": "#/components/schemas/Changelog" } }, - "description": "Adv/Rec Route table entry object" + "description": "Advertised and received route table entry object" }, "BGPConnectionIpv4": { "required": [ @@ -21600,6 +25167,9 @@ }, "port": { "$ref": "#/components/schemas/VirtualPortPrice" + }, + "timeService": { + "$ref": "#/components/schemas/TimeServicePrice" } } }, @@ -21623,6 +25193,10 @@ "SimplifiedLocation": { "type": "object", "properties": { + "metroHref": { + "type": "string", + "example": "https://api.equinix.com/fabric/v4/metros/AM" + }, "region": { "type": "string", "example": "AMER, APAC, EMEA" @@ -21635,10 +25209,6 @@ "type": "string", "example": "AM" }, - "metroHref": { - "type": "string", - "example": "https://api.equinix.com/fabric/v4/metros/AM" - }, "ibx": { "type": "string", "example": "AM1", @@ -21676,6 +25246,7 @@ "description": "Type of Connection", "enum": [ "EVPL_VC", + "EPL_VC", "EVPLAN_VC", "EPLAN_VC", "IPWAN_VC" @@ -22295,11 +25866,11 @@ }, "href": { "type": "string", - "description": "Route Filter Change URI", + "description": "Route filter change URI", "format": "uri" } }, - "description": "Current state of latest Route Filter change" + "description": "Current state of latest route filter change" }, "RouteFiltersPatchRequestItem": { "required": [ @@ -22324,7 +25895,7 @@ "description": "new value for updated parameter" } }, - "description": "Route Filter change operation data" + "description": "Route filter change operation data" }, "RouteFiltersChangeOperation": { "required": [ @@ -22352,7 +25923,7 @@ "$ref": "#/components/schemas/RouteFiltersBase" } }, - "description": "Route Filter change operation data" + "description": "Route filter change operation data" }, "RouteFilterConnectionsData": { "type": "object", @@ -22368,7 +25939,7 @@ }, "uuid": { "type": "string", - "description": "Route Filter identifier", + "description": "Route filter identifier", "format": "uuid", "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -22380,7 +25951,7 @@ }, "RouteFilterRuleState": { "type": "string", - "description": "Route Filter Rule status", + "description": "Route filter rule status", "enum": [ "PROVISIONING", "REPROVISIONING", @@ -22420,7 +25991,7 @@ "format": "uri" } }, - "description": "Current state of latest Route Filter Rule change" + "description": "Current state of latest route filter rule change" }, "RouteFilterRulesPatchRequestItem": { "required": [ @@ -22445,7 +26016,7 @@ "description": "new value for updated parameter" } }, - "description": "Route Filter Rule change operation data" + "description": "Route filter rule change operation data" }, "RouteFilterRulesChangeOperation": { "required": [ @@ -22473,7 +26044,222 @@ "$ref": "#/components/schemas/RouteFilterRulesBase" } }, - "description": "Route Filter Rule change operation data" + "description": "Route filter rule change operation data" + }, + "RouteAggregationState": { + "type": "string", + "description": "Route Aggregation status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteAggregationsChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", + "BGP_IPv4_PREFIX_AGGREGATION_CREATION", + "BGP_IPv4_PREFIX_AGGREGATION_DELETION", + "BGP_IPv6_PREFIX_AGGREGATION_UPDATE", + "BGP_IPv6_PREFIX_AGGREGATION_CREATION", + "BGP_IPv6_PREFIX_AGGREGATION_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route AGGREGATION Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Route Aggregation change" + }, + "RouteAggregationsPatchRequestItem": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/name" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Route Aggregation change operation data" + }, + "RouteAggregationsChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "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/RouteAggregationsBase" + } + }, + "description": "Route Aggregation change operation data" + }, + "RouteAggregationConnectionsData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Connection URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f" + }, + "type": { + "$ref": "#/components/schemas/ConnectionType" + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "name": { + "type": "string", + "example": "connection-1" + } + } + }, + "RouteAggregationRuleState": { + "type": "string", + "description": "Route Aggregation Rule status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteAggregationRulesChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE", + "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", + "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Aggregation Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Route Aggregation Rule change" + }, + "RouteAggregationRulesPatchRequestItem": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/prefix" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Route Aggregation Rule change operation data" + }, + "RouteAggregationRulesChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "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/RouteAggregationRulesBase" + } + }, + "description": "Route Aggregation Rule change operation data" }, "SimplifiedLocationWithoutIBX": { "required": [ @@ -22481,9 +26267,10 @@ ], "type": "object", "properties": { - "href": { + "metroHref": { "type": "string", - "description": "The Canonical URL at which the resource resides." + "description": "The Canonical URL at which the resource resides.", + "example": "https://api.equinix.com/fabric/v4/metros/AM" }, "region": { "type": "string", @@ -22626,7 +26413,7 @@ }, "CloudRouterActionType": { "type": "string", - "description": "Cloud Router action type", + "description": "Cloud router action type", "enum": [ "BGP_SESSION_STATUS_UPDATE", "ROUTE_TABLE_ENTRY_UPDATE", @@ -22650,12 +26437,12 @@ "properties": { "bgpIpv4RoutesCount": { "type": "integer", - "description": "IPV4 Route Count", + "description": "IPV4 route count", "example": 6 }, "bgpIpv6RoutesCount": { "type": "integer", - "description": "IPV6 Route Count", + "description": "IPV6 route count", "example": 6 } }, @@ -23169,6 +26956,23 @@ }, "description": "Fabric Connection Precision Time Service Response Object" }, + "precisionTimePrice": { + "title": "precisionTimePrice", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "offering price currency" + }, + "charges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceCharge" + } + } + }, + "description": "Precision Time Price" + }, "connectionLink": { "type": "object", "properties": { @@ -23466,7 +27270,8 @@ "VIRTUAL_CONNECTION_PRODUCT", "IP_BLOCK_PRODUCT", "VIRTUAL_PORT_PRODUCT", - "CLOUD_ROUTER_PRODUCT" + "CLOUD_ROUTER_PRODUCT", + "PRECISION_TIME_PRODUCT" ] }, "PriceCharge": { @@ -23599,6 +27404,26 @@ }, "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." }, + "TimeServicePrice": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Precision Time Service Type refers to the corresponding Protocol.", + "enum": [ + "NTP", + "PTP" + ] + }, + "package": { + "$ref": "#/components/schemas/precisionTimePackageRequest" + }, + "connection": { + "$ref": "#/components/schemas/TimeServicePriceConnection" + } + }, + "description": "Time Service Product configuration" + }, "ServiceTokenSide": { "type": "object", "properties": { @@ -23776,7 +27601,7 @@ ] }, "keyNumber": { - "maximum": 65534, + "maximum": 65535, "minimum": 1, "type": "integer", "description": "The authentication Key ID.", @@ -23819,6 +27644,12 @@ "SimplifiedPort": { "type": "object", "properties": { + "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 + }, "type": { "$ref": "#/components/schemas/PortType" }, @@ -23826,12 +27657,6 @@ "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", @@ -24196,6 +28021,9 @@ "properties": { "metroCode": { "type": "string" + }, + "ibx": { + "type": "string" } } }, @@ -24276,6 +28104,15 @@ }, "description": "Port configuration." }, + "TimeServicePriceConnection": { + "type": "object", + "properties": { + "aSide": { + "$ref": "#/components/schemas/TimeServicePriceConnectionASide" + } + }, + "description": "Time Service Price Connection configuration" + }, "AccessPointSelector": { "type": "object", "properties": { @@ -24288,6 +28125,10 @@ "NETWORK" ] }, + "hideAssetInfo": { + "type": "boolean", + "deprecated": true + }, "port": { "$ref": "#/components/schemas/SimplifiedMetadataEntity" }, @@ -24358,6 +28199,15 @@ "REMOTE" ] }, + "TimeServicePriceConnectionASide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/TimeServicePriceConnectionAccessPoint" + } + }, + "description": "Time Service Price Connection ASide configuration" + }, "SimplifiedMetadataEntity": { "type": "object", "properties": { @@ -24497,6 +28347,15 @@ } } }, + "TimeServicePriceConnectionAccessPoint": { + "type": "object", + "properties": { + "location": { + "$ref": "#/components/schemas/PriceLocation" + } + }, + "description": "Time Service Price Connection Access Point configuration" + }, "PriceError_additionalInfo": { "type": "object", "properties": { @@ -24538,6 +28397,35 @@ } } }, + "RouteAggregationsData_project": { + "required": [ + "projectId" + ], + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "Subscriber-assigned project ID", + "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" + }, + "href": { + "type": "string", + "description": "Project URI", + "format": "uri" + } + } + }, + "RouteAggregationsSearchBase_filter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationsSearchFilterItem" + } + } + } + }, "ValidateRequest_filter_and": { "properties": { "property": { @@ -27830,6 +31718,105 @@ ] } }, + "CreateConnectionDryRunRequest": { + "value": { + "type": "EVPL_VC", + "name": "My-EVPL-Connection", + "bandwidth": 500, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "2a4fb415-5a7f-436f-bae6-02f5e403deec" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1137 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "location": { + "metroCode": "DC" + } + } + }, + "project": { + "projectId": 41418 + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "CreateConnectionDryRunResponse": { + "value": { + "type": "EVPL_VC", + "name": "My-EVPL-Connection", + "bandwidth": 500, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/2a4fb415-5a7f-436f-bae6-02f5e403deec", + "uuid": "2a4fb415-5a7f-436f-bae6-02f5e403deec" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1137 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/92dc376a-a932-43aa-a6a2-c806dedbd784", + "type": "L2_PROFILE", + "uuid": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "metroCode": "DC" + } + } + }, + "project": { + "projectId": 41418 + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, "ConnectionExample": { "value": { "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", @@ -28161,7 +32148,7 @@ }, "Vd2ServiceToken_Response": { "value": { - "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "href": "https://api.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", "type": "EVPL_VC", "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", "name": "Test ST", @@ -28224,7 +32211,7 @@ "metroCode": "DC" }, "port": { - "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "href": "https://api.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" }, @@ -29126,7 +33113,7 @@ "Metal2Sp-IBM-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a", + "href": "https://api.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a", "uuid": "f0e56501-d92f-4ca3-b047-f95628d4a32a", "name": "Metal2IBM-Connection", "operation": { @@ -29176,7 +33163,7 @@ "metroCode": "SV" }, "profile": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026", + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026", "type": "L2_PROFILE", "name": "IBM Cloud Direct Link 2", "uuid": "317dcd1c-83ba-4d7c-994a-3e7ddb875026" @@ -29190,7 +33177,7 @@ "Metal2Port-Dot1q-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd", + "href": "https://api.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd", "uuid": "02b7b7d4-1726-4451-9598-e28091c096cd", "name": "Metal2Port-dot1q", "operation": { @@ -29240,8 +33227,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "uuid": "6c73d02c-87e1-4642-8e18-01eb4b87e243", "name": "290061-SV1-CX-SEC-01" }, @@ -29256,7 +33243,7 @@ "Metal2Port-Qinq-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d", + "href": "https://api.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d", "uuid": "d87489aa-c32d-4756-a81a-6f557afb871d", "name": "Metal2Port-qinq", "operation": { @@ -29306,8 +33293,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d", "uuid": "4ff4047c-7217-4b79-9943-c2c4a2f7324d", "name": "290061-SV1-CX-PRI-02" }, @@ -29323,7 +33310,7 @@ "Metal2ServiceToken-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", + "href": "https://api.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", "uuid": "f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", "name": "Metal2ServiceToken", "operation": { @@ -29369,7 +33356,7 @@ }, "zSide": { "serviceToken": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90", + "href": "https://api.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90", "uuid": "bc1383be-579a-4d75-ae19-b0d487bbff90", "project": { "projectId": "377533000114703" @@ -29380,8 +33367,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "uuid": "6c73d02c-87e1-4642-8e18-01eb4b87e243", "name": "290061-SV1-CX-SEC-01" }, @@ -29396,7 +33383,7 @@ "Metal2Sp-Generic-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", + "href": "https://api.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", "uuid": "1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", "name": "Metal2Generic", "operation": { @@ -29446,7 +33433,7 @@ "metroCode": "SV" }, "profile": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d", + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d", "type": "L2_PROFILE", "name": "Generic Service Profile", "uuid": "f1a247aa-8f86-4a89-88c2-72497686cd0d" @@ -30078,6 +34065,20 @@ } } }, + "400_dry_run": { + "value": [ + { + "errorCode": "EQ-3142411", + "errorMessage": "Dry run is not supported for this connection type", + "correlationId": "1012536-0000-108258589231-api", + "additionalInfo": [ + { + "reason": "queryParam:dryRun" + } + ] + } + ] + }, "createBulkGeneric": { "value": { "data": [ @@ -35209,6 +39210,178 @@ } } }, + "PrecisionTimeNtpStandardPackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "NTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "NTP_STANDARD" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, + "PrecisionTimeNtpEnterprisePackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "NTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "NTP_ENTERPRISE" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/metroCode", + "operator": "=", + "values": [ + "CH" + ] + } + ] + } + } + }, + "PrecisionTimePtpStandardPackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "PTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "PTP_STANDARD" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, + "PrecisionTimePtpEnterprisePackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "PTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "PTP_ENTERPRISE" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, "VirtualConnection": { "value": { "pagination": { @@ -35379,6 +39552,49 @@ ] } }, + "PrecisionTimeService": { + "value": { + "pagination": { + "offset": 0, + "limit": 1, + "total": 1 + }, + "data": [ + { + "type": "PRECISION_TIME_PRODUCT", + "code": "EDG00009.PROD", + "name": "Equinix Precision Time Product", + "description": "Equinix Precision Time Product", + "account": { + "accountNumber": 270001 + }, + "charges": [ + { + "type": "MONTHLY_RECURRING", + "price": 495 + } + ], + "currency": "USD", + "timeService": { + "type": "NTP", + "package": { + "code": "NTP_STANDARD" + }, + "connection": { + "aSide": { + "accessPoint": { + "location": { + "metroCode": "CH", + "ibx": "CH3" + } + } + } + } + } + } + ] + } + }, "400_prices": { "value": [ { @@ -37444,103 +41660,52 @@ ] } }, - "createServiceTokenWithVxlan": { - "value": { - "type": "VC_TOKEN", - "name": "Az_Aside_VxLAN_Pri_SV", - "description": "Az_Aside_VxLAN_Pri_SV_Description", - "expirationDateTime": "2021-03-18T06:43:49.980Z", - "connection": { - "type": "EVPL_VC", - "allowRemoteConnection": true, - "bandwidthLimit": 50, - "allowCustomBandwidth": false, - "aSide": { - "accessPointSelectors": [ - { - "type": "COLO", - "port": { - "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" - }, - "linkProtocol": { - "type": "VXLAN", - "vlanTag": 510000 - } - } - ] - } - }, - "notifications": [ - { - "type": "NOTIFICATION", - "emails": [ - "abc@company.com", - "provider@company.com" - ] - } - ] - } - }, - "createZsideServiceTokenWithQnQ": { + "createServiceTokenWithVxlan": { "value": { "type": "VC_TOKEN", - "name": "Az_Zside_Dot1Q_Pri_SV", - "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", + "name": "Az_Aside_VxLAN_Pri_SV", + "description": "Az_Aside_VxLAN_Pri_SV_Description", + "expirationDateTime": "2021-03-18T06:43:49.980Z", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, - "supportedBandwidths": [ - 10, - 50, - 200, - 500, - 1000, - 2000, - 5000, - 10000, - 25000, - 50000 - ], - "zSide": { + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { - "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" }, "linkProtocol": { - "type": "QINQ", - "vlanCTag": 1399, - "vlanSTag": 1388 + "type": "VXLAN", + "vlanTag": 510000 } } ] } }, - "expirationDateTime": "2021-03-18T06:43:49.980Z", "notifications": [ { "type": "NOTIFICATION", "emails": [ - "abc@company.com" + "abc@company.com", + "provider@company.com" ] } ] } }, - "createZsideServiceTokenWithQnQ-CRH": { + "createZsideServiceTokenWithQnQ": { "value": { "type": "VC_TOKEN", "name": "Az_Zside_Dot1Q_Pri_SV", "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, + "allowCustomBandwidth": false, "supportedBandwidths": [ 10, 50, @@ -37557,7 +41722,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37576,7 +41740,6 @@ "project": { "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" }, - "expiry": 1, "expirationDateTime": "2021-03-18T06:43:49.980Z", "notifications": [ { @@ -37593,11 +41756,10 @@ "type": "VC_TOKEN", "name": "Az_Zside_Dot1Q_Pri_SV", "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, + "allowCustomBandwidth": false, "supportedBandwidths": [ 10, 50, @@ -37614,7 +41776,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37642,7 +41803,6 @@ "type": "VC_TOKEN", "name": "Az_Zside_VxLAN_Pri_SV", "description": "Az_Zside_VxLAN_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, @@ -37663,7 +41823,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37770,6 +41929,81 @@ ] } }, + "createServiceTokenDryRunRequest": { + "value": { + "type": "VC_TOKEN", + "name": "Aside_Dot1Q_Service_Token", + "description": "Az_Aside_Dot1Q_DryRun_Description", + "expirationDateTime": "2024-12-18T06:43:49.980Z", + "connection": { + "type": "EVPL_VC", + "allowRemoteConnection": false, + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { + "accessPointSelectors": [ + { + "type": "COLO", + "port": { + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1399 + } + } + ] + } + }, + "notifications": [ + { + "type": "NOTIFICATION", + "emails": [ + "abc@company.com", + "provider@company.com" + ] + } + ] + } + }, + "createServiceTokenDryRunResponse": { + "value": { + "type": "VC_TOKEN", + "name": "Aside_Dot1Q_Service_Token", + "description": "Az_Aside_Dot1Q_DryRun_Description", + "expirationDateTime": "2024-12-18T06:43:49.980Z", + "connection": { + "type": "EVPL_VC", + "allowRemoteConnection": false, + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { + "accessPointSelectors": [ + { + "type": "COLO", + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/b840a1db-5758-758f-97e0-328a5c00a874", + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1399 + } + } + ] + } + }, + "notifications": [ + { + "type": "NOTIFICATION", + "emails": [ + "abc@company.com", + "provider@company.com" + ] + } + ] + } + }, "Resend_Service_Token": { "value": { "type": "RESEND_EMAIL_NOTIFICATION" @@ -38067,6 +42301,23 @@ } ] }, + "ibxByMetro": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 1 + }, + "data": [ + { + "href": "https://api.equinix.com/v4/fabric/metros/AM/ibxs/AM1", + "type": "XF_IBX", + "code": "AM1", + "isTimeServiceEnabled": true + } + ] + } + }, "ports": { "value": { "pagination": { @@ -38237,25 +42488,424 @@ } } }, - "physicalPorts": [ + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOSinglePortLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOLagPortNewGroup": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + }, + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOAddSecondaryPort": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 10000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false, + "sharedPortProduct": null + }, + "redundancy": { + "priority": "SECONDARY", + "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.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" + ] + } + ], + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } + ] + } + }, + "REMOTESinglePortNewGroupLagRequest": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "REMOTE", + "physicalPortsCount": 1, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "settings": { + "packageType": "STANDARD", + "sharedPortType": false + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } + } + }, + "BMMRSinglePortLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF", + "physicalPortsCount": 1, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } + } + }, + "BMMRSinglePortNoLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + }, + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" } ] } }, - "COLOSinglePortLag": { + "BMMRAddSecondaryPort": { "value": { "type": "XF_PORT", - "physicalPortsSpeed": 1000, + "physicalPortsSpeed": 10000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF|EQUINIX", "location": { "metroCode": "GV" }, @@ -38263,25 +42913,24 @@ "package": { "code": "STANDARD" }, - "lagEnabled": true, + "settings": { + "sharedPortProduct": "NETWORK_EDGE" + }, + "redundancy": { + "priority": "SECONDARY", + "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + }, + "lagEnabled": false, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "projectId": 567 }, "account": { - "accountNumber": 270848 + "accountNumber": 1000 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], "order": { "purchaseOrder": { "number": 156576, @@ -38299,25 +42948,50 @@ } } }, - "physicalPorts": [ + "notifications": [ { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "PEERING", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "ESCALATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "loas": [ + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + }, + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" } ] } }, - "COLOLagPortNewGroup": { + "BMMRLagPortNewGroup": { "value": { "type": "XF_PORT", "physicalPortsSpeed": 1000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF", + "physicalPortsCount": 1, "location": { "metroCode": "GV" }, @@ -38360,75 +43034,49 @@ "email": "john.doe@company.com" } } - }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } - }, - { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } - } - ] + } } }, - "COLOAddSecondaryPort": { + "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, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "physicalPortsCount": 1, "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortType": false, - "sharedPortProduct": null + "metroCode": "AM" }, + "demarcationPointIbx": "AM1", "redundancy": { - "priority": "SECONDARY", - "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + "group": 1, + "priority": "PRIMARY" }, "lagEnabled": false, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, "project": { - "projectId": 567 + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" }, "account": { "accountNumber": 1000 }, "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, + "orderNumber": "1-207799950758", "signature": { "signatory": "DELEGATE", "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + "email": "testEmail1@equinix.com" } } }, @@ -38446,1766 +43094,2212 @@ ] }, { - "type": "PEERING", - "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" + } + ] + }, + "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" + } + ] + }, + "COLOBulkPort": { + "value": { + "data": [ + { + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-PRIMARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "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": "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "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": [ + { + "href": "https://api.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, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "https://api.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, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } ] } - ], - "physicalPorts": [ + ] + } + }, + "COLOAddToLag": { + "value": { + "data": [ { + "type": "XF_PHYSICAL_PORT", "demarcationPoint": { "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } + ] + }, + { + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } + ] } ] } }, - "REMOTESinglePortNewGroupLagRequest": { + "REMOTEAddToLag": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "REMOTE", - "physicalPortsCount": 1, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "settings": { - "packageType": "STANDARD", - "sharedPortType": false - }, - "lagEnabled": true, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "notifications": [ + "data": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "type": "XF_PHYSICAL_PORT", + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "account": { + "accountReferenceId": "17829Id" + } + }, { - "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountReferenceId": "17829Id" } + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] } - } + ] } }, - "BMMRSinglePortLag": { + "BMMRAddToLag": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF", - "physicalPortsCount": 1, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "lagEnabled": true, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "data": [ { - "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } } - } - } - } - }, - "BMMRSinglePortNoLag": { - "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "notifications": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } }, { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] } ] } }, - "BMMRAddSecondaryPort": { + "COLOAddToLagResponse": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF|EQUINIX", - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortProduct": "NETWORK_EDGE" - }, - "redundancy": { - "priority": "SECONDARY", - "group": "1f6bdb37-f131-5925-c039-fe1785fad165" - }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, - "account": { - "accountNumber": 1000 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, + "data": [ { - "type": "PEERING", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "39", + "patchPanelPortB": "40", + "connectorType": "SC", + "ibx": "GV1" + }, + "order": { + "orderNumber": "1-210210611904" + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "41", + "patchPanelPortB": "42", + "connectorType": "SC", + "ibx": "GV1" + }, + "order": { + "orderNumber": "1-210210611904" + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } ] } - ], - "loas": [ - { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" - }, - { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" - } ] } }, - "BMMRLagPortNewGroup": { + "portByUUID": { "value": { + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", "type": "XF_PORT", - "physicalPortsSpeed": 1000, + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "ACTIVE", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, + "physicalPortsSpeed": 10000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF", - "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "redundancy": { + "group": "1", + "priority": "Secondary" + }, "location": { - "metroCode": "GV" + "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", + "ibx": "AT1", + "metroCode": "AT", + "metroName": "Atlanta", + "region": "AMER" }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" + "device": { + "name": "dev-m7a2.lab", + "redundancy": { + "group": "1", + "priority": "Secondary" + } }, - "lagEnabled": true, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "lagEnabled": true, + "package": { + "code": "STANDARD", + "type": "MSP" }, - "account": { - "accountNumber": 270848 + "settings": { + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true }, - "notifications": [ + "physicalPorts": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" + "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" + } }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + { + "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", + "opStatusChangedAt": "2021-06-14T17:21:25.586Z", + "connectionCount": 0, + "evplVcCount": 0, + "fgVcCount": 0, + "accessVcCount": 0 + }, + "account": { + "accountNumber": 100179, + "accountName": "L2", + "globalCustId": "007700000090982RG8", + "orgId": 100179, + "organizationName": "Cust_Org_100179" + }, + "changeLog": { + "createdDateTime": "2018-06-14T17:21:25.587Z" + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" } } }, - "COLOSinglePortNonLagResponse": { + "portDelete": { "value": { - "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", "type": "XF_PORT", - "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", - "state": "PENDING", - "physicalPortsType": "10GBASE_L", - "physicalPortsSpeed": 10000, - "physicalPortsCount": 1, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "DEPROVISIONING", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, "redundancy": { - "group": 1, + "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", "priority": "PRIMARY" }, - "lagEnabled": false, + "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": "C91484bb-4f65-4ab3-8f77-500dec2f855C", + "priority": "PRIMARY" + } + }, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, - "package": { - "code": "STANDARD" - }, + "lagEnabled": true, "settings": { - "sharedPortType": false - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "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" - } - ] - }, - "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" + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true }, - { - "errorCode": "EQ-3143008", - "errorMessage": "virtual Port not found", - "details": "connectionDetails[%s].patchPanelName is not valid" - } - ] - }, - "COLOBulkPort": { - "value": { - "data": [ + "physicalPorts": [ { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-PRIMARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "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-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "state": "DEPROVISIONING", + "type": "XF_PHYSICAL_PORT", + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, - "redundancy": { - "priority": "PRIMARY" + "demarcationPoint": { + "ibx": "AT1", + "patchPanel": "PP:8118:1586", + "patchPanelName": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" + } + } + ], + "account": { + "accountNumber": 100179, + "accountName": "L2 account", + "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, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "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 + "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" }, - "account": { - "accountNumber": 1000 + "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 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" }, - "redundancy": { - "priority": "SECONDARY" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanSTag": 1001, + "vlanCTag": 1001, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOBulkPortResponse": { + "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": [ { - "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 + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTag": 200, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, "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, - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortType": false - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ] + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "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 + "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": { - "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, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "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 }, - "package": { - "code": "STANDARD" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTag": 240, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "settings": { - "sharedPortType": false + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTag": 240, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOAddToLag": { + "LinkProtocolGetVlanRangeResponseExample": { "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", - "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 + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "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 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] + "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 }, - "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 16, - "patchPanelPortB": 17, - "connectorType": "LC" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } + ] + } + }, + "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": { + "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": [ + { + "property": "/device/name", + "direction": "DESC" } ] } }, - "REMOTEAddToLag": { + "ConnectionRouteAggregationsGetAll": { "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "account": { - "accountReferenceId": "17829Id" - } + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/52f7791a-fe90-49bc-8807-18b3d6eda566", + "type": "BGP_IPv6_PREFIX_AGGREGATION", + "uuid": "52f7791a-fe90-49bc-8807-18b3d6eda566", + "attachmentStatus": "ATTACHED" }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountReferenceId": "17829Id" - } + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "attachmentStatus": "ATTACHED" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/65d74639-8f48-4e10-9684-45d364645e97", + "type": "BGP_IPv6_PREFIX_AGGREGATION", + "uuid": "65d74639-8f48-4e10-9684-45d364645e97", + "attachmentStatus": "ATTACHED" } ] } }, - "BMMRAddToLag": { + "400_invalid_input": { + "value": [ + { + "errorCode": "EQ-3044305", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "type" + } + ] + } + ] + }, + "AttachConnectionRouteAggregationsResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "ATTACHING" + } + }, + "400_transient_state": { + "value": [ + { + "errorCode": "EQ-3044008", + "errorMessage": "Cannot attach or detach route aggregation with connection in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot attach or detach route aggregation with connection in transient state" + } + ] + }, + "DetachConnectionRouteAggregationResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING" + } + }, + "ConnectionRouteFiltersGetAll": { "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - } + "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" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "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" }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - } + "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" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "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" } ] } }, - "COLOAddToLagResponse": { + "AttachConnectionRouteFiltersResponse": { "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" - }, - "order": { - "orderNumber": "1-210210611904" - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] - }, - { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "41", - "patchPanelPortB": "42", - "connectorType": "SC", - "ibx": "GV1" - }, - "order": { - "orderNumber": "1-210210611904" - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] - } - ] + "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" } }, - "portByUUID": { + "AttachConnectionRouteFilterInbound": { "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", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", - "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, - "package": { - "code": "STANDARD", - "type": "MSP" - }, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true - }, - "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" - } - }, - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6968, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" + "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" } - } - ], - "operation": { - "operationalStatus": "UP", - "opStatusChangedAt": "2021-06-14T17:21:25.586Z", - "connectionCount": 0, - "evplVcCount": 0, - "fgVcCount": 0, - "accessVcCount": 0 - }, - "account": { - "accountNumber": 100179, - "accountName": "L2", - "globalCustId": "007700000090982RG8", - "orgId": 100179, - "organizationName": "Cust_Org_100179" - }, - "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + ] + } + ] + }, + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, + "notifications": { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + } + }, + "RouteFilterCreateBgpIpv6Prefix": { + "value": { + "type": "BGP_IPv6_PREFIX_FILTER", + "name": "My-route-filter-v6", + "description": "Test filter", "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "projectId": 567 } } }, - "portDelete": { + "RouteFilterCreateBgpIpv4PrefixResponse": { "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": "DEPROVISIONING", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "redundancy": { - "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", - "priority": "PRIMARY" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", - "ibx": "AT1", - "metroCode": "AT", - "metroName": "Atlanta", - "region": "AMER" + "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" }, - "device": { - "name": "dev-m7a2.lab", - "redundancy": { - "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", - "priority": "PRIMARY" - } + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + "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" }, - "lagEnabled": true, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, - "physicalPorts": [ - { - "state": "DEPROVISIONING", - "type": "XF_PHYSICAL_PORT", - "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" - } - } - ], - "account": { - "accountNumber": 100179, - "accountName": "L2 account", - "globalCustId": "007700000090982RG8", - "orgId": 100179, - "organizationName": "Cust_Org_100179" + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" } } }, - "LinkProtocolGetQinqResponseExample": { + "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": 5 + "total": 4, + "next": null, + "previous": null }, "data": [ { - "type": "QINQ", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "asset": { - "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, - "asset": { - "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" + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + } } }, { - "type": "QINQ", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanSTag": 1001, - "vlanCTag": 1001, - "asset": { - "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" - } + "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" + } + ] } ] } }, - "LinkProtocolGetDot1qResponseExample": { + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + } + } + } + }, + "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": [ - { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTag": 200, - "asset": { - "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 + "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" + } + } + }, + "SearchRouteFiltersRequest": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "BGP_IPv4_PREFIX_FILTER" + ] }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTag": 240, - "asset": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 + { + "property": "/name", + "operator": "like", + "values": [ + "%Route_Filter_Demo%" + ] }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + { + "property": "/project/projectId", + "operator": "=", + "values": [ + "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + ] } - }, + ] + }, + "pagination": { + "offset": 1, + "limit": 2, + "total": 10 + }, + "sort": [ { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTag": 240, - "asset": { - "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" - } + "property": "/changeLog/updatedDateTime", + "direction": "DESC" } ] } }, - "LinkProtocolGetVlanRangeResponseExample": { + "SearchRouteFiltersResponse": { "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" + "offset": 1, + "limit": 2, + "total": 10, + "next": "/routeFilters?offset=3&limit=2", + "previous": "/routeFilters?offset=0&limit=2" }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "asset": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 + "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_Route_Filter_Demo_1", + "description": "Test filter", + "state": "PROVISIONING", + "notMatchedRuleAction": "DENY", + "connectionsCount": 1, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "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 + "href": "https://api.equinix.com/fabric/v4/routeFilters/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My_Route_Filter_Demo_2", + "description": "Test filter", + "state": "PROVISIONING", + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } - }, + } + ] + } + }, + "RouteFilterRulesGetAll": { + "value": { + "pagination": { + "offset": 0, + "limit": 32, + "total": 2, + "next": null, + "previous": null + }, + "data": [ { - "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", + "state": "PROVISIONED", + "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, - "asset": { - "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", + "state": "PROVISIONED", + "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, - "asset": { - "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": { - "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" - } + "RouteFilterRuleCreateBgpIpv4Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" + } + }, + "RouteFilterRuleCreateBgpIpv6Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "orlonger" + } + }, + "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", + "state": "PROVISIONING", + "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", + "updatedBy": "testuser", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" } - ] + } + }, + "RouteFilterRuleCreateBgpIpv6PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "state": "PROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" + }, + "action": "PERMIT", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } }, - "403-port-access": { + "400_bad_request": { "value": [ { - "errorCode": "EQ-3035002", - "errorMessage": "Access Forbidden", - "correlationId": "UnAuthorized User- Cannot perform action" + "errorCode": "EQ-3044013", + "errorMessage": "Invalid argument value passed", + "property": "prefixMatch", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" } ] }, - "PortSearchByProjectId": { + "UpdateRouteFilterRuleIPv4": { "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 - }, - "sort": [ - { - "property": "/device/name", - "direction": "DESC" - } - ] + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" } }, - "ConnectionRouteFiltersGetAll": { + "UpdateRouteFilterRuleIPv6": { "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" - } - ] + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "exact" } }, - "400_invalid_input": { - "value": [ - { - "errorCode": "EQ-3044101", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "type" - } - ] + "RouteFilterRuleReplaceIpv4Response": { + "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-update", + "description": "Test rule", + "prefixMatch": "exact", + "state": "REPROVISIONING", + "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" } - ] + } }, - "AttachConnectionRouteFiltersResponse": { + "RouteFilterRuleReplaceIpv6Response": { "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" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefixMatch": "exact", + "state": "REPROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" + }, + "prefix": "2001:7a9::34f4:0:f3dd:1/128", + "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" + } } }, - "AttachConnectionRouteFilterInbound": { + "RouteFilterRuleDeleteBgpIpv4PrefixResponse": { "value": { - "direction": "INBOUND" + "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", + "state": "DEPROVISIONING", + "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", + "prefixMatch": "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" + } } }, - "AttachConnectionRouteFilterOutbound": { + "RouteFilterRuleDeleteBgpIpv6PrefixResponse": { "value": { - "direction": "OUTBOUND" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "state": "REPROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_DELETION", + "uuid": "e8528788-14d3-4a7b-a740-99b702067485" + }, + "action": "PERMIT", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "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_invalid_direction": { + "400_transient_filter": { "value": [ { - "errorCode": "EQ-3044001", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "direction" - } - ] + "errorCode": "EQ-3044215", + "errorMessage": "Cannot delete route filter rule in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot delete route filter rule in transient state" } ] }, - "400_transient_state": { + "PatchRouteFilterRuleName": { "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" + "op": "replace", + "path": "/name", + "value": "test-route-filter-name-patch" } ] }, - "DetachConnectionRouteFilterInboundResponse": { + "PatchRouteFilterRulePrefix": { + "value": [ + { + "op": "replace", + "path": "/prefix", + "value": "192.168.0.0/30" + } + ] + }, + "PatchRouteFilterRulePrefixMatch": { + "value": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger" + } + ] + }, + "RouteFilterRulesGetAllChangesResponseExample": { "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" + "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", + "prefixMatch": "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" + } + ] + } + ] } }, - "DetachConnectionRouteFilterOutboundResponse": { + "RouteFilterRuleGetChangeResponseExample": { "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" + "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", + "prefixMatch": "exact", + "action": "PERMIT" + } } }, - "RouteFilterCreateBgpIpv4Prefix": { + "RouteFilterRulesBulkResponse": { "value": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", - "project": { - "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + "pagination": { + "offset": 0, + "limit": 32, + "total": 2, + "next": null, + "previous": null }, - "notifications": { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } + "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", + "state": "PROVISIONING", + "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", + "state": "PROVISIONING", + "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" + } + } + ] } }, - "RouteFilterCreateBgpIpv6Prefix": { + "RouteAggregationCreateBgpIpv4Prefix": { "value": { - "type": "BGP_IPv6_PREFIX_FILTER", - "name": "My-route-filter-v6", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test aggregation", "project": { - "projectId": 567 + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } }, - "RouteFilterCreateBgpIpv4PrefixResponse": { + "RouteAggregationCreateBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4", - "description": "Test filter", + "name": "My-prefix-aggregation-v4", + "description": "Test aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "notMatchedRuleAction": "DENY", + "rulesCount": 0, "connectionsCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40216,23 +45310,22 @@ } } }, - "RouteFilterDeleteBgpIpv4PrefixResponse": { + "RouteAggregationDeleteBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4", - "description": "Test filter", + "name": "My-prefix-aggregation-v4", + "description": "Test Aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31", + "type": "BGP_IPv4_PREFIX_AGGREGATION_DELETION", "uuid": "c2ec84c5-6de6-4f5c-b506-3ce218630c31" }, - "notMatchedRuleAction": "DENY", "connectionsCount": 0, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40251,42 +45344,31 @@ } } }, - "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": { + "PatchRouteAggregationName": { "value": [ { "op": "replace", "path": "/name", - "value": "My-route-filter-v4-updated" + "value": "My-route-aggregation-v4-updated" } ] }, - "RouteFilterNamePatchResponse": { + "RouteAggregationNamePatchResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4-updated", - "description": "Test filter", + "name": "My-prefix-aggregation-v4-updated", + "description": "Test aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "notMatchedRuleAction": "DENY", "connectionsCount": 1, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40297,17 +45379,7 @@ } } }, - "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": { + "RouteAggregationGetAllChangesResponseExample": { "value": { "pagination": { "offset": 0, @@ -40318,8 +45390,8 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40331,17 +45403,17 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test Aggregation", "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40356,18 +45428,18 @@ { "op": "replace", "path": "/name", - "value": "My-route-filter-v4-updated", - "previousValue": "My-route-filter-v4" + "value": "My-route-aggregations-v4-updated", + "previousValue": "My-route-aggregations-v4" } ] } ] } }, - "RouteFilterGetChangeResponseExample": { + "RouteAggregationGetChangeResponseExample": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40379,16 +45451,16 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test aggregation", "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } } }, - "RouteFilterGetConnectionsResponse": { + "RouteAggregationGetConnectionsResponse": { "value": { "pagination": { "offset": 0, @@ -40405,7 +45477,7 @@ } } }, - "SearchRouteFiltersRequest": { + "SearchRouteAggregationsRequest": { "value": { "filter": { "and": [ @@ -40413,14 +45485,14 @@ "property": "/type", "operator": "=", "values": [ - "BGP_IPv4_PREFIX_FILTER" + "BGP_IPv4_PREFIX_AGGREGATION" ] }, { "property": "/name", "operator": "like", "values": [ - "%Route_Filter_Demo%" + "%Route_Aggregation_Demo%" ] }, { @@ -40445,27 +45517,26 @@ ] } }, - "SearchRouteFiltersResponse": { + "SearchRouteAggregationsResponse": { "value": { "pagination": { "offset": 1, "limit": 2, "total": 10, - "next": "/routeFilters?offset=3&limit=2", - "previous": "/routeFilters?offset=0&limit=2" + "next": "/routeAggregations?offset=3&limit=2", + "previous": "/routeAggregations?offset=0&limit=2" }, "data": [ { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My_Route_Filter_Demo_1", - "description": "Test filter", + "name": "My_Route_Aggregation_Demo_1", + "description": "Test aggregation", "state": "PROVISIONING", - "notMatchedRuleAction": "DENY", "connectionsCount": 1, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40476,16 +45547,15 @@ } }, { - "href": "https://api.equinix.com/fabric/v4/routeFilters/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My_Route_Filter_Demo_2", - "description": "Test filter", + "name": "My_Route_Aggregation_Demo_2", + "description": "Test aggregation", "state": "PROVISIONING", - "notMatchedRuleAction": "DENY", "connectionsCount": 0, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40498,7 +45568,7 @@ ] } }, - "RouteFilterRulesGetAll": { + "RouteAggregationRulesGetAll": { "value": { "pagination": { "offset": 0, @@ -40509,18 +45579,16 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "exact", - "action": "PERMIT", "prefix": "192.168.10.0/24", "state": "PROVISIONED", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40531,18 +45599,16 @@ } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "orlonger", - "action": "PERMIT", "prefix": "192.168.20.0/24", "state": "PROVISIONED", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40555,38 +45621,27 @@ ] } }, - "RouteFilterRuleCreateBgpIpv4Prefix": { + "RouteAggregationRuleCreateBgpIpv4Prefix": { "value": { - "name": "Private-subnet-filter", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/24", - "prefixMatch": "exact" + "prefix": "192.168.0.0/24" } }, - "RouteFilterRuleCreateBgpIpv6Prefix": { + "RouteAggregationRuleCreateBgpIpv4PrefixResponse": { "value": { - "name": "Private-subnet-filter", - "description": "Test rule", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "orlonger" - } - }, - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", + "name": "Private-subnet-aggregation", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_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", @@ -40599,73 +45654,24 @@ } } }, - "RouteFilterRuleCreateBgpIpv6PrefixResponse": { + "UpdateRouteAggregationRuleIPv4": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", - "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", - "description": "Test rule", - "state": "PROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_CREATION", - "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" - }, - "action": "PERMIT", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "exact", - "changeLog": { - "createdBy": "testuser", - "createdByEmail": "testuser@equinix.com", - "createdByFullName": "testuser testuser", - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedBy": "testuser", - "updatedByEmail": "testuser@equinix.com", - "updatedByFullName": "testuser testuser", - "updatedDateTime": "2020-05-21T10:30:00Z" - } - } - }, - "400_bad_request": { - "value": [ - { - "errorCode": "EQ-3044013", - "errorMessage": "Invalid argument value passed", - "property": "prefixMatch", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" - } - ] - }, - "UpdateRouteFilterRuleIPv4": { - "value": { - "name": "Private-subnet-filter-update", - "description": "Test rule", - "prefix": "192.168.0.0/24", - "prefixMatch": "exact" - } - }, - "UpdateRouteFilterRuleIPv6": { - "value": { - "name": "Private-subnet-filter-update", + "name": "Private-subnet-aggregation-update", "description": "Test rule", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "exact" + "prefix": "192.168.0.0/24" } }, - "RouteFilterRuleReplaceIpv4Response": { + "RouteAggregationRuleReplaceIpv4Response": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter-update", + "name": "Private-subnet-aggregation-update", "description": "Test rule", - "prefixMatch": "exact", "state": "REPROVISIONING", - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE", "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" }, "prefix": "192.168.0.0/24", @@ -40681,50 +45687,20 @@ } } }, - "RouteFilterRuleReplaceIpv6Response": { + "RouteAggregationRuleDeleteBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter-update", - "description": "Test rule", - "prefixMatch": "exact", - "state": "REPROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_UPDATE", - "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" - }, - "prefix": "2001:7a9::34f4:0:f3dd:1/128", - "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", + "name": "Private-subnet-aggregation", "description": "Test rule", "state": "DEPROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION", "uuid": "e8528788-14d3-4a7b-a740-99b702067485" }, - "action": "PERMIT", "prefix": "192.168.0.0/24", - "prefixMatch": "exact", "changeLog": { "createdBy": "testuser", "createdByEmail": "testuser@equinix.com", @@ -40741,58 +45717,26 @@ } } }, - "RouteFilterRuleDeleteBgpIpv6PrefixResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", - "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", - "description": "Test rule", - "state": "REPROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_DELETION", - "uuid": "e8528788-14d3-4a7b-a740-99b702067485" - }, - "action": "PERMIT", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "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": { + "400_transient_aggregation": { "value": [ { - "errorCode": "EQ-3044215", - "errorMessage": "Cannot delete Route Filter Rule, Route Filter transient state", + "errorCode": "EQ-3044415", + "errorMessage": "Cannot delete route aggregation rule, route aggregation in transient state", "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "Cannot delete Route Filter Rule, Route filter is in transient state" + "details": "Cannot delete route aggregation rule, route aggregation is in transient state" } ] }, - "PatchRouteFilterRuleName": { + "PatchRouteAggregationRuleName": { "value": [ { "op": "replace", "path": "/name", - "value": "test-route-filter-name-patch" + "value": "test-route-aggregation-name-patch" } ] }, - "PatchRouteFilterRulePrefix": { + "PatchRouteAggregationRulePrefix": { "value": [ { "op": "replace", @@ -40801,16 +45745,7 @@ } ] }, - "PatchRouteFilterRulePrefixMatch": { - "value": [ - { - "op": "replace", - "path": "/prefixMatch", - "value": "orlonger" - } - ] - }, - "RouteFilterRulesGetAllChangesResponseExample": { + "RouteAggregationRulesGetAllChangesResponseExample": { "value": { "pagination": { "offset": 0, @@ -40821,8 +45756,8 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", "status": "COMPLETED", "createdBy": "testuser", @@ -40834,65 +45769,19 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER_RULE", - "name": "Private-subnet-filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/25", - "prefixMatch": "exact", - "action": "PERMIT" + "prefix": "192.168.0.0/25" } - }, - { - "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": { + "RouteAggregationRuleGetChangeResponseExample": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", "status": "COMPLETED", "createdBy": "testuser", @@ -40904,16 +45793,14 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER_RULE", - "name": "Private-subnet-filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/25", - "prefixMatch": "exact", - "action": "PERMIT" + "prefix": "192.168.0.0/25" } } }, - "RouteFilterRulesBulkResponse": { + "RouteAggregationRulesBulkResponse": { "value": { "pagination": { "offset": 0, @@ -40924,18 +45811,16 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "exact", - "action": "PERMIT", "prefix": "192.168.10.0/24", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40946,18 +45831,16 @@ } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "orlonger", - "action": "PERMIT", "prefix": "192.168.20.0/24", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -41056,10 +45939,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41079,8 +45964,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41098,10 +45981,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "project": { @@ -41115,8 +46000,6 @@ ] } ], - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "marketplaceSubscription": { "href": "https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5", @@ -41131,6 +46014,34 @@ } } }, + "CloudRouterResponseExampleDryRun": { + "value": { + "type": "XF_ROUTER", + "name": "My-Cloud-Router", + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + }, + "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", + "code": "STANDARD" + }, + "project": { + "projectId": "e1c94b73-1be8-44d5-b577-99bbf67249a4" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "abc@abc.com" + ] + } + ], + "account": { + "accountNumber": 123 + } + } + }, "400_invalid_package": { "value": [ { @@ -41141,6 +46052,48 @@ } ] }, + "400_invalid_name": { + "value": [ + { + "errorCode": "EQ-3040022", + "errorMessage": "Name is minimum 3 and up to 24 characters in length", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Name is minimum 3 and up to 24 characters in length", + "additionalInfo": [ + { + "property": "/name", + "reason": "Name is minimum 3 and up to 24 characters in length" + } + ] + } + ] + }, + "400_invalid_account": { + "value": [ + { + "errorCode": "EQ-3040032", + "errorMessage": "Invalid account number", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Invalid account number", + "additionalInfo": [ + { + "property": "/account/accountNumber", + "reason": "Invalid project account number" + } + ] + } + ] + }, + "400_max_lab_fcr_demo": { + "value": [ + { + "errorCode": "EQ-3040060", + "errorMessage": "Create request rejected", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Only 3 Lab Fabric Cloud Routers allowed per Organization" + } + ] + }, "CloudRouterResponseExample": { "value": { "href": "https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d", @@ -41149,17 +46102,19 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" }, "project": { - "projectId": "123456" + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" }, "notifications": [ { @@ -41172,10 +46127,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 4, - "bgpIpv6RoutesCount": 4, - "distinctIpv4PrefixesCount": 2, - "distinctIpv6PrefixesCount": 2, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41201,10 +46152,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "project": { @@ -41218,10 +46171,6 @@ ] } ], - "bgpIpv4RoutesCount": 4, - "bgpIpv6RoutesCount": 4, - "distinctIpv4PrefixesCount": 2, - "distinctIpv6PrefixesCount": 2, "connectionsCount": 0, "marketplaceSubscription": { "href": "https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5", @@ -41293,10 +46242,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41316,8 +46267,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "change": { "uuid": "3c9b8e7a2-f3b1-4576-a4a9-1366a63df170", @@ -41690,10 +46639,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41713,8 +46664,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41749,13 +46698,7 @@ "description": "string", "totalIPv4RoutesMax": 50, "totalIPv6RoutesMax": 50, - "staticIPv4RoutesMax": 3, - "staticIPv6RoutesMax": 3, - "naclsMax": 2, - "naclRulesMax": 5, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 10, "crCountMax": 3, "vcBandwidthMax": 50, @@ -41771,13 +46714,7 @@ "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, @@ -41793,13 +46730,7 @@ "description": "string", "totalIPv4RoutesMax": 4000, "totalIPv6RoutesMax": 250, - "staticIPv4RoutesMax": 150, - "staticIPv6RoutesMax": 150, - "naclsMax": 60, - "naclRulesMax": 1000, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 99999, "crCountMax": 3, "vcBandwidthMax": 50000, @@ -41815,13 +46746,7 @@ "description": "string", "totalIPv4RoutesMax": 10000, "totalIPv6RoutesMax": 500, - "staticIPv4RoutesMax": 150, - "staticIPv6RoutesMax": 150, - "naclsMax": 60, - "naclRulesMax": 1000, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 10, "crCountMax": 3, "vcBandwidthMax": 50000, @@ -42821,6 +47746,24 @@ ] } }, + "CreateNetworkDryRunResponse": { + "value": { + "type": "EVPLAN", + "name": "My-EVPLAN-1", + "scope": "GLOBAL", + "project": { + "projectId": "z1a596ed-s24a-097c-12a8-44e00000ee11" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, "NetworkPostResponseExample": { "value": { "href": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784", @@ -45190,9 +50133,12 @@ "isAutoRenew": false, "offerId": "offer-wqquayy2jy25o", "trial": { - "enabled": true, - "expiryDateTime": "2020-05-21T10:30:00Z" + "enabled": true }, + "metroCodes": [ + "SV", + "DC" + ], "entitlements": [ { "uuid": "a15b6b20-b765-4bf7-a661-a3e9372d5435", @@ -45208,7 +50154,6 @@ }, { "uuid": "2e3a9041-19ce-4c80-add3-3e3a069fc5e9", - "name": "Connection 500 Mbps", "quantityEntitled": 1, "quantityConsumed": 0, "quantityAvailable": 1, @@ -45216,6 +50161,16 @@ "type": "IP_VC", "bandwidth": 500 } + }, + { + "uuid": "9e30f661-d92e-4083-812f-db359807806e", + "quantityEntitled": 1, + "quantityConsumed": 0, + "quantityAvailable": 1, + "asset": { + "type": "IPWAN_VC", + "bandwidth": 200 + } } ], "changeLog": { @@ -45247,7 +50202,7 @@ "state": "PROVISIONED", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45259,10 +50214,10 @@ "type": "TELEMETRY_STREAM", "name": "splunk1", "description": "subscription-1", - "enabled": true, "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" - } + }, + "enabled": true } }, "StreamResponseExample": { @@ -45279,7 +50234,7 @@ "state": "PROVISIONED", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45305,7 +50260,7 @@ "state": "DEPROVISIONING", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45346,6 +50301,7 @@ { "href": "https://api.equinix.com/fabric/v4/ports/e684aa26-8276-48b7-bb42-a6d9def0a419", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_PORT", "metricsEnabled": false, "attachmentStatus": "ATTACHED" } @@ -45354,8 +50310,9 @@ }, "StreamConnectionAssetResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "IP_VC", "metricsEnabled": false, "attachmentStatus": "ATTACHED" } @@ -45367,16 +50324,18 @@ }, "StreamRouterAssetAttachResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_ROUTER", "metricsEnabled": false, "attachmentStatus": "ATTACHING" } }, "StreamRouterAssetDetachResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_ROUTER", "metricsEnabled": false, "attachmentStatus": "DETACHING" } @@ -45439,6 +50398,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45446,7 +50415,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45476,6 +50445,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45503,6 +50482,27 @@ "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, + "filters": { + "and": [ + { + "property": "/type", + "operator": "LIKE", + "values": [ + "%com.equinix.fabric.connection%" + ] + } + ] + }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SLACK" @@ -45532,6 +50532,11 @@ } ] }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "PAGERDUTY", @@ -45568,6 +50573,11 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xx.datadoghq.com", "type": "DATADOG", @@ -45610,6 +50620,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45626,7 +50646,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45650,6 +50670,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45696,6 +50726,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45712,7 +50752,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } diff --git a/spec/oas3.fabric.patched.json b/spec/oas3.fabric.patched.json index 5740547..9f9dec9 100644 --- a/spec/oas3.fabric.patched.json +++ b/spec/oas3.fabric.patched.json @@ -12,7 +12,7 @@ "name": "Equinix Inc", "url": "https://developer.equinix.com/agreement" }, - "version": "4.17" + "version": "4.18" }, "externalDocs": { "description": "Find more information on Equinix Developer Portal", @@ -32,7 +32,7 @@ "tags": [ { "name": "Cloud Routers", - "description": "Cloud Routers Preview" + "description": "Cloud Routers" }, { "name": "Connections", @@ -48,12 +48,20 @@ }, { "name": "Precision Time", - "description": "Precision Time Preview" + "description": "Precision Time Beta" }, { "name": "Prices", "description": "Prices" }, + { + "name": "Route Filter Rules", + "description": "Route Filter Rules" + }, + { + "name": "Route Filters", + "description": "Route Filters" + }, { "name": "Routing Protocols", "description": "Routing Protocols" @@ -88,7 +96,18 @@ "summary": "Create Connection", "description": "This API provides capability to create user's virtual connection", "operationId": "createConnection", - "parameters": [], + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], "requestBody": { "content": { "application/json": { @@ -293,6 +312,9 @@ }, "Fcr2Metal-Network": { "$ref": "#/components/examples/Fcr2Metal-Network" + }, + "Connection-Colo2Sp-GenericDryRunCreate": { + "$ref": "#/components/examples/CreateConnectionDryRunRequest" } } } @@ -300,6 +322,21 @@ "required": true }, "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Connection" + }, + "examples": { + "ConnectionDryRun-Colo2Sp-Generic": { + "$ref": "#/components/examples/CreateConnectionDryRunResponse" + } + } + } + } + }, "201": { "description": "Accept Connection Request", "content": { @@ -436,6 +473,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -899,6 +939,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -952,7 +995,7 @@ "tags": [ "Cloud Routers" ], - "summary": "search advertised", + "summary": "Search Advertised Routes", "description": "The API provides capability to get list of user's advertised routes using search criteria, including optional filtering, pagination and sorting", "operationId": "searchConnectionAdvertisedRoutes", "parameters": [ @@ -1008,6 +1051,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1061,7 +1107,7 @@ "tags": [ "Cloud Routers" ], - "summary": "Search received", + "summary": "Search Received Routes", "description": "The API provides capability to get list of received routes using search criteria, including optional filtering, pagination and sorting", "operationId": "searchConnectionReceivedRoutes", "parameters": [ @@ -1117,6 +1163,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1230,6 +1279,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1368,6 +1420,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1657,6 +1712,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1813,6 +1871,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -1951,6 +2012,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2113,6 +2177,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2270,6 +2337,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -2450,6 +2520,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -3158,6 +3231,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRun": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -3260,6 +3336,18 @@ }, "virtualPortProduct": { "$ref": "#/components/examples/VirtualPortProduct" + }, + "precisionTimeProductNtpStandardPackageCode": { + "$ref": "#/components/examples/PrecisionTimeNtpStandardPackage" + }, + "precisionTimeProductNtpEnterprisePackageCode": { + "$ref": "#/components/examples/PrecisionTimeNtpEnterprisePackage" + }, + "precisionTimeProductPtpStandardPackageCode": { + "$ref": "#/components/examples/PrecisionTimePtpStandardPackage" + }, + "precisionTimeProductPtpEnterprisePackageCode": { + "$ref": "#/components/examples/PrecisionTimePtpEnterprisePackage" } } } @@ -3286,6 +3374,9 @@ }, "virtualPort": { "$ref": "#/components/examples/VirtualPort" + }, + "precisionTimeService": { + "$ref": "#/components/examples/PrecisionTimeService" } } } @@ -5008,7 +5099,18 @@ "summary": "Create Service Token", "description": "Create Service Tokens generates Equinix Fabric? service tokens. These tokens authorize users to access protected resources and services.", "operationId": "createServiceToken", - "parameters": [], + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], "requestBody": { "content": { "application/json": { @@ -5016,32 +5118,32 @@ "$ref": "#/components/schemas/ServiceToken" }, "examples": { - "AsideTokenWithQnQExample": { + "AsideTokenWithQnQ": { "$ref": "#/components/examples/createServiceTokenWithQnQ" }, - "AsideTokenWithDot1QExample": { + "AsideTokenWithDot1Q": { "$ref": "#/components/examples/createServiceTokenWithDot1Q" }, - "AsideTokenWithVxlanExample": { + "AsideTokenWithVxlan": { "$ref": "#/components/examples/createServiceTokenWithVxlan" }, - "ZsideTokenWithQnQExample": { + "ZsideTokenWithQnQ": { "$ref": "#/components/examples/createZsideServiceTokenWithQnQ" }, - "ZsideTokenWithQnQ-CrhExample": { - "$ref": "#/components/examples/createZsideServiceTokenWithQnQ-CRH" - }, - "ZsideTokenWithDot1QExample": { + "ZsideTokenWithDot1Q": { "$ref": "#/components/examples/createZsideServiceTokenWithDot1Q" }, - "ZsideTokenWithVxlanExample": { + "ZsideTokenWithVxlan": { "$ref": "#/components/examples/createZsideServiceTokenWithVxlan" }, - "ZsideTokenWithVDExample": { + "ZsideTokenWithVD": { "$ref": "#/components/examples/createZsideServiceTokenWithVD" }, - "ZsideTokenWithNetworkExample": { + "ZsideTokenWithNetwork": { "$ref": "#/components/examples/createZsideServiceTokenWithNetwork" + }, + "AsideTokenWithDot1QDryRunCreate": { + "$ref": "#/components/examples/createServiceTokenDryRunRequest" } } } @@ -5049,6 +5151,21 @@ "required": true }, "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceToken" + }, + "examples": { + "ServiceTokenDryRun": { + "$ref": "#/components/examples/createServiceTokenDryRunResponse" + } + } + } + } + }, "201": { "description": "Successful operation", "content": { @@ -5074,6 +5191,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5172,6 +5292,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5287,6 +5410,9 @@ "examples": { "example": { "$ref": "#/components/examples/400" + }, + "dryRunExample": { + "$ref": "#/components/examples/400_dry_run" } } } @@ -5449,7 +5575,7 @@ "Metros" ], "summary": "Get Metro by Code", - "description": "GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location. .", + "description": "GET Metros retrieves all Equinix Fabric metros, as well as latency data between each metro location.", "operationId": "getMetroByCode", "parameters": [ { @@ -6116,14 +6242,14 @@ } } }, - "/fabric/v4/connections/{connectionId}/routeFilters": { + "/fabric/v4/connections/{connectionId}/routeAggregations": { "get": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Get All RouteFilters", - "description": "This API provides capability to view all Route Filters attached to a Connection", - "operationId": "getConnectionRouteFilters", + "summary": "Get All Aggregations", + "description": "This API provides capability to view all Route Aggregations attached to a Connection", + "operationId": "getConnectionRouteAggregations", "parameters": [ { "name": "connectionId", @@ -6141,11 +6267,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" + "$ref": "#/components/schemas/GetAllConnectionRouteAggregationsResponse" }, "examples": { - "ConnectionRouteFiltersResponse": { - "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" + "ConnectionRouteAggregationsResponse": { + "$ref": "#/components/examples/ConnectionRouteAggregationsGetAll" } } } @@ -6200,7 +6326,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6247,22 +6373,22 @@ } } }, - "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { + "/fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId}": { "get": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Get Route Filter", - "description": "This API provides capability to view a specific Route Filter attached to a Connection", - "operationId": "getConnectionRouteFilterByUuid", + "summary": "Get Aggregation", + "description": "This API provides capability to view a specific Route Aggregation attached to a Connection", + "operationId": "getConnectionRouteAggregationByUuid", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6281,11 +6407,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterAttachResponse": { - "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" + "ConnectionRouteAggregationAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteAggregationsResponse" } } } @@ -6340,7 +6466,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6388,19 +6514,19 @@ }, "put": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Attach Route Filter", - "description": "This API provides capability to attach a Route Filter to a Connection", - "operationId": "attachConnectionRouteFilter", + "summary": "Attach Aggregation", + "description": "This API provides capability to attach a Route Aggregation to a Connection", + "operationId": "attachConnectionRouteAggregation", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6413,35 +6539,17 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConnectionRouteFiltersBase" - }, - "examples": { - "ConnectionRouteFilterAttachInboundExample": { - "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" - }, - "ConnectionRouteFilterAttachOutboundExample": { - "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" - } - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterAttachResponse": { - "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" + "ConnectionRouteAggregationAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteAggregationsResponse" } } } @@ -6455,9 +6563,6 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidDirection": { - "$ref": "#/components/examples/400_invalid_direction" - }, "TransientState": { "$ref": "#/components/examples/400_transient_state" } @@ -6496,7 +6601,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6544,19 +6649,19 @@ }, "delete": { "tags": [ - "Route Filters" + "Route Aggregations" ], - "summary": "Detach Route Filter", - "description": "This API provides capability to detach a Route Filter from a Connection", - "operationId": "detachConnectionRouteFilter", + "summary": "Detach Aggregation", + "description": "This API provides capability to detach a Route Aggregation from a Connection", + "operationId": "detachConnectionRouteAggregation", "parameters": [ { - "name": "routeFilterId", + "name": "routeAggregationId", "in": "path", - "description": "Route Filters Id", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "$ref": "#/components/schemas/RouteAggregationId" } }, { @@ -6575,14 +6680,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionRouteFilterData" + "$ref": "#/components/schemas/ConnectionRouteAggregationData" }, "examples": { - "ConnectionRouteFilterDetachInboundResponse": { - "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" - }, - "ConnectionRouteFilterDetachOutboundResponse": { - "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" + "ConnectionRouteAggregationDetachResponse": { + "$ref": "#/components/examples/DetachConnectionRouteAggregationResponse" } } } @@ -6634,7 +6736,7 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -6681,44 +6783,36 @@ } } }, - "/fabric/v4/routeFilters": { - "post": { + "/fabric/v4/connections/{connectionId}/routeFilters": { + "get": { "tags": [ "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/RouteFiltersBase" - }, - "examples": { - "RouteFilterBgpIpv4Prefix": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" - }, - "RouteFilterBgpIpv6Prefix": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv6Prefix" - } - } + "summary": "Get All Route Filters", + "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": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/GetAllConnectionRouteFiltersResponse" }, "examples": { - "GetSpecificRouteFilterResponse": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + "ConnectionRouteFiltersResponse": { + "$ref": "#/components/examples/ConnectionRouteFiltersGetAll" } } } @@ -6732,8 +6826,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "TransientState": { - "$ref": "#/components/examples/400_transient_state" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -6817,14 +6914,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}": { + "/fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId}": { "get": { "tags": [ "Route Filters" ], - "summary": "Get Filter By UUID", - "description": "This API provides capability to view a Route Filter by UUID", - "operationId": "getRouteFilterByUuid", + "summary": "Get Route Filter", + "description": "This API provides capability to view a specific Route Filter attached to a Connection", + "operationId": "getConnectionRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -6834,6 +6931,15 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], "responses": { @@ -6842,11 +6948,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "GetSpecificRouteFilterResponse": { - "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" + "ConnectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -6947,13 +7053,13 @@ } } }, - "delete": { + "put": { "tags": [ "Route Filters" ], - "summary": "Delete Route Filter", - "description": "This API provides capability to delete a Route Filter", - "operationId": "deleteRouteFilterByUuid", + "summary": "Attach Route Filter", + "description": "This API provides capability to attach a Route Filter to a Connection", + "operationId": "attachConnectionRouteFilter", "parameters": [ { "name": "routeFilterId", @@ -6963,19 +7069,46 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConnectionRouteFiltersBase" + }, + "examples": { + "ConnectionRouteFilterAttachInboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterInbound" + }, + "ConnectionRouteFilterAttachOutboundExample": { + "$ref": "#/components/examples/AttachConnectionRouteFilterOutbound" + } + } + } + }, + "required": true + }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "RouteFilterDeleteBgpIpv4PrefixResponse": { - "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" + "ConnectionRouteFilterAttachResponse": { + "$ref": "#/components/examples/AttachConnectionRouteFiltersResponse" } } } @@ -6989,8 +7122,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_attached_connection" + "InvalidDirection": { + "$ref": "#/components/examples/400_invalid_direction" + }, + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -7073,13 +7209,13 @@ } } }, - "patch": { + "delete": { "tags": [ "Route Filters" ], - "summary": "Patch Route Filter", - "description": "This API provides capability to partially update a Route Filter", - "operationId": "patchRouteFilterByUuid", + "summary": "Detach Route Filter", + "description": "This API provides capability to detach a Route Filter from a Connection", + "operationId": "detachConnectionRouteFilter", "parameters": [ { "name": "routeFilterId", @@ -7089,34 +7225,31 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "connectionId", + "in": "path", + "description": "Connection Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionId" + } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteFiltersPatchRequest" - }, - "examples": { - "RouteFilterNamePatchExample": { - "$ref": "#/components/examples/PatchRouteFilterName" - } - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersData" + "$ref": "#/components/schemas/ConnectionRouteFilterData" }, "examples": { - "RouteFilterNamePatchResponse": { - "$ref": "#/components/examples/RouteFilterNamePatchResponse" + "ConnectionRouteFilterDetachInboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterInboundResponse" + }, + "ConnectionRouteFilterDetachOutboundResponse": { + "$ref": "#/components/examples/DetachConnectionRouteFilterOutboundResponse" } } } @@ -7131,7 +7264,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/400_transient_state" } } } @@ -7215,56 +7348,44 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/changes": { - "get": { + "/fabric/v4/routeFilters": { + "post": { "tags": [ "Route Filters" ], - "summary": "Get All Changes", - "description": "This API provides capability to retrieve all of a Route Filter's Changes", - "operationId": "getRouteFilterChanges", - "parameters": [ - { - "name": "routeFilterId", - "in": "path", - "description": "Route Filters Id", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouteFilterId" + "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/RouteFiltersBase" + }, + "examples": { + "RouteFilterBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4Prefix" + }, + "RouteFilterBgpIpv6Prefix": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv6Prefix" + } + } } }, - { - "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 - } - ], + "required": true + }, "responses": { - "200": { - "description": "Fabric Route Filter Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterChangeDataResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterChangesResponse": { - "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" + "GetSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -7278,11 +7399,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -7333,6 +7451,21 @@ } } }, + "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": { @@ -7351,14 +7484,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { + "/fabric/v4/routeFilters/{routeFilterId}": { "get": { "tags": [ "Route Filters" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve a specific Route Filter's Changes", - "operationId": "getRouteFilterChangeByUuid", + "summary": "Get Route Filter By UUID", + "description": "This API provides capability to view a Route Filter by UUID", + "operationId": "getRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -7368,28 +7501,19 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } - }, - { - "name": "changeId", - "in": "path", - "description": "Routing Protocol Change UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/ChangeId_1" - } } ], "responses": { "200": { - "description": "Fabric Route Filter Change object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterChangeData" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterChangeResponse": { - "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" + "GetSpecificRouteFilterResponse": { + "$ref": "#/components/examples/RouteFilterCreateBgpIpv4PrefixResponse" } } } @@ -7458,6 +7582,21 @@ } } }, + "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": { @@ -7474,16 +7613,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/connections": { - "get": { + }, + "delete": { "tags": [ "Route Filters" ], - "summary": "Get Connections", - "description": "This API provides capability to view all Connections using the Route Filter", - "operationId": "getRouteFilterConnections", + "summary": "Delete Route Filter", + "description": "This API provides capability to delete a Route Filter", + "operationId": "deleteRouteFilterByUuid", "parameters": [ { "name": "routeFilterId", @@ -7496,16 +7633,16 @@ } ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "RouteFilterGetConnectionsResponse": { - "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterDeleteBgpIpv4PrefixResponse" } } } @@ -7519,11 +7656,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "example": { + "$ref": "#/components/examples/400_attached_connection" } } } @@ -7605,26 +7739,34 @@ } } } - } - }, - "/fabric/v4/routeFilters/search": { - "post": { + }, + "patch": { "tags": [ "Route Filters" ], - "summary": "Search Route Filters", - "description": "This API provides capability to search Route Filters", - "operationId": "searchRouteFilters", - "parameters": [], + "summary": "Patch Route Filter", + "description": "This API provides capability to partially update a Route Filter", + "operationId": "patchRouteFilterByUuid", + "parameters": [ + { + "name": "routeFilterId", + "in": "path", + "description": "Route Filters Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteFilterId" + } + } + ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersSearchBase" + "$ref": "#/components/schemas/RouteFiltersPatchRequest" }, "examples": { - "searchRouteFiltersRequest": { - "$ref": "#/components/examples/SearchRouteFiltersRequest" + "RouteFilterNamePatchExample": { + "$ref": "#/components/examples/PatchRouteFilterName" } } } @@ -7632,16 +7774,16 @@ "required": true }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFiltersSearchResponse" + "$ref": "#/components/schemas/RouteFiltersData" }, "examples": { - "SearchRouteFiltersResponse": { - "$ref": "#/components/examples/SearchRouteFiltersResponse" + "RouteFilterNamePatchResponse": { + "$ref": "#/components/examples/RouteFilterNamePatchResponse" } } } @@ -7655,11 +7797,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" - }, - "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -7743,14 +7882,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { + "/fabric/v4/routeFilters/{routeFilterId}/changes": { "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "GetRFRules", - "description": "This API provides capability to get all Route Filters Rules for Fabric", - "operationId": "getRouteFilterRules", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter's Changes", + "operationId": "getRouteFilterChanges", "parameters": [ { "name": "routeFilterId", @@ -7784,30 +7923,33 @@ ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterRulesResponse" + "$ref": "#/components/schemas/RouteFilterChangeDataResponse" }, "examples": { - "getAllRouteFilterRules": { - "$ref": "#/components/examples/RouteFilterRulesGetAll" + "RouteFilterChangesResponse": { + "$ref": "#/components/examples/RouteFilterGetAllChangesResponseExample" } } } } }, "400": { - "description": "Resource not found", + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/404_invalid_id" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7844,11 +7986,16 @@ } }, "404": { - "description": "Route Filter Rule ID Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" + } } } } @@ -7869,14 +8016,16 @@ } } } - }, - "post": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/changes/{changeId}": { + "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "Create RFRule", - "description": "This API provides capability to create a Route Filter Rule", - "operationId": "createRouteFilterRule", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter's Changes", + "operationId": "getRouteFilterChangeByUuid", "parameters": [ { "name": "routeFilterId", @@ -7886,40 +8035,28 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_1" + } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RouteFilterRulesBase" - }, - "examples": { - "RouteFilterRuleBgpIpv4Prefix": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" - }, - "RouteFilterRuleBgpIpv6Prefix": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6Prefix" - } - } - } - }, - "required": true - }, "responses": { - "202": { - "description": "Successful operation", + "200": { + "description": "Fabric Route Filter Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/RouteFilterChangeData" }, "examples": { - "GetSpecificRouteFilterRuleIpv4Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" - }, - "GetSpecificRouteFilterRuleIpv6Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterGetChangeResponseExample" } } } @@ -7933,11 +8070,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -7974,17 +8111,7 @@ } }, "404": { - "description": "Route Filter Rule ID Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, - "415": { - "description": "Unsupported Media Type", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -7992,7 +8119,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8016,14 +8143,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { + "/fabric/v4/routeFilters/{routeFilterId}/connections": { "get": { "tags": [ - "Route Filter Rules" + "Route Filters" ], - "summary": "GetRFRule By UUID", - "description": "This API provides capability to view a Route Filter Rule by UUID", - "operationId": "getRouteFilterRuleByUuid", + "summary": "Get All Connections on Route Filter", + "description": "This API provides capability to view all Connections using the Route Filter", + "operationId": "getRouteFilterConnections", "parameters": [ { "name": "routeFilterId", @@ -8033,31 +8160,19 @@ "schema": { "$ref": "#/components/schemas/RouteFilterId" } - }, - { - "name": "routeFilterRuleId", - "in": "path", - "description": "Route Filter Rules Id", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouteFilterRuleId" - } } ], "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/GetRouteFilterGetConnectionsResponse" }, "examples": { - "GetSpecificRouteFilterRuleIpv4Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" - }, - "GetSpecificRouteFilterRuleIpv6Response": { - "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" + "RouteFilterGetConnectionsResponse": { + "$ref": "#/components/examples/RouteFilterGetConnectionsResponse" } } } @@ -8071,11 +8186,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -8157,46 +8272,26 @@ } } } - }, - "put": { + } + }, + "/fabric/v4/routeFilters/search": { + "post": { "tags": [ - "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" - } - } + "Route Filters" ], + "summary": "Search Route Filters", + "description": "This API provides capability to search Route Filters", + "operationId": "searchRouteFilters", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesBase" + "$ref": "#/components/schemas/RouteFiltersSearchBase" }, "examples": { - "RouteFilterIpv4ReplaceExample": { - "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" - }, - "RouteFilterIpv6ReplaceExample": { - "$ref": "#/components/examples/UpdateRouteFilterRuleIPv6" + "searchRouteFiltersRequest": { + "$ref": "#/components/examples/SearchRouteFiltersRequest" } } } @@ -8204,19 +8299,16 @@ "required": true }, "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/RouteFiltersSearchResponse" }, "examples": { - "RouteFilterRuleIpv4ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" - }, - "routeFilterRuleIpv6ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" + "SearchRouteFiltersResponse": { + "$ref": "#/components/examples/SearchRouteFiltersResponse" } } } @@ -8230,11 +8322,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidType": { - "$ref": "#/components/examples/400_bad_request" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, "InvalidId": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -8316,14 +8408,16 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules": { + "get": { "tags": [ "Route Filter Rules" ], - "summary": "DeleteRFRule", - "description": "This API provides capability to delete a Route Filter Rule", - "operationId": "deleteRouteFilterRuleByUuid", + "summary": "Get Route Filter Rules", + "description": "This API provides capability to get all Route Filters Rules for Fabric", + "operationId": "getRouteFilterRules", "parameters": [ { "name": "routeFilterId", @@ -8335,36 +8429,44 @@ } }, { - "name": "routeFilterRuleId", - "in": "path", - "description": "Route Filter Rules Id", - "required": true, + "name": "offset", + "in": "query", + "description": "offset", + "required": false, "schema": { - "$ref": "#/components/schemas/RouteFilterRuleId" - } + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesData" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "RouteFilterDeleteBgpIpv4PrefixResponse": { - "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" - }, - "routeFilterDeleteBgpIpv6PrefixResponse": { - "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv6PrefixResponse" + "getAllRouteFilterRules": { + "$ref": "#/components/examples/RouteFilterRulesGetAll" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -8372,7 +8474,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_transient_filter" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8409,31 +8511,11 @@ } }, "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", + "description": "Route Filter Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } @@ -8455,13 +8537,13 @@ } } }, - "patch": { + "post": { "tags": [ "Route Filter Rules" ], - "summary": "PatchRFilterRule", - "description": "This API provides capability to partially update a Route Filter Rule", - "operationId": "patchRouteFilterRuleByUuid", + "summary": "Create Route Filter Rule", + "description": "This API provides capability to create a Route Filter Rule", + "operationId": "createRouteFilterRule", "parameters": [ { "name": "routeFilterId", @@ -8471,32 +8553,20 @@ "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" + "$ref": "#/components/schemas/RouteFilterRulesBase" }, "examples": { - "RouteFilterRuleName": { - "$ref": "#/components/examples/PatchRouteFilterRuleName" - }, - "RouteFilterRulePrefix": { - "$ref": "#/components/examples/PatchRouteFilterRulePrefix" + "RouteFilterRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4Prefix" }, - "RouteFilterRulePrefixMatch": { - "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" + "RouteFilterRuleBgpIpv6Prefix": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6Prefix" } } } @@ -8512,11 +8582,11 @@ "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterRuleIpv4ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" + "GetSpecificRouteFilterRuleIpv4Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" }, - "routeFilterRuleIpv6ReplaceResponse": { - "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" + "GetSpecificRouteFilterRuleIpv6Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" } } } @@ -8571,16 +8641,11 @@ } }, "404": { - "description": "Route Filter ID Not Found", + "description": "Route Filter Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404_invalid_id" - } } } } @@ -8618,14 +8683,14 @@ } } }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}": { "get": { "tags": [ "Route Filter Rules" ], - "summary": "Get All Changes", - "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", - "operationId": "getRouteFilterRuleChanges", + "summary": "Get Route Filter Rule By UUID", + "description": "This API provides capability to view a Route Filter Rule by UUID", + "operationId": "getRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8644,39 +8709,22 @@ "schema": { "$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 Route Filter Rule Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterRuleChangesResponse": { - "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" + "GetSpecificRouteFilterRuleIpv4Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv4PrefixResponse" + }, + "GetSpecificRouteFilterRuleIpv6Response": { + "$ref": "#/components/examples/RouteFilterRuleCreateBgpIpv6PrefixResponse" } } } @@ -8690,11 +8738,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" }, "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8745,6 +8793,21 @@ } } }, + "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": { @@ -8761,16 +8824,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { - "get": { + }, + "put": { "tags": [ "Route Filter Rules" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", - "operationId": "getRouteFilterRuleChangeByUuid", + "summary": "Replace Route Filter Rule", + "description": "This API provides capability to replace a Route Filter Rule completely", + "operationId": "replaceRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8789,28 +8850,40 @@ "schema": { "$ref": "#/components/schemas/RouteFilterRuleId" } - }, - { - "name": "changeId", - "in": "path", - "description": "Route Filter Rule Change UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/ChangeId_2" - } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesBase" + }, + "examples": { + "RouteFilterIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv4" + }, + "RouteFilterIpv6ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteFilterRuleIPv6" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Route Filter Change object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteFilterRulesChangeData" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "RouteFilterChangeResponse": { - "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" + "RouteFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" + }, + "routeFilterRuleIpv6ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" } } } @@ -8824,11 +8897,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidInput": { - "$ref": "#/components/examples/400_invalid_input" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" }, "InvalidId": { - "$ref": "#/components/examples/400_Invalid_id" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -8879,6 +8952,21 @@ } } }, + "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": { @@ -8895,16 +8983,14 @@ } } } - } - }, - "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { - "post": { + }, + "delete": { "tags": [ "Route Filter Rules" ], - "summary": "Bulk RFRules", - "description": "This API provides capability to create bulk route filter rules", - "operationId": "createRouteFilterRulesInBulk", + "summary": "Delete Route Filter Rule", + "description": "This API provides capability to delete a Route Filter Rule", + "operationId": "deleteRouteFilterRuleByUuid", "parameters": [ { "name": "routeFilterId", @@ -8914,36 +9000,38 @@ "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/RouteFilterRulesPostRequest" - } - } - }, - "required": true - }, "responses": { "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetRouteFilterRulesResponse" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "getAllRouteFilterRules": { - "$ref": "#/components/examples/RouteFilterRulesBulkResponse" + "RouteFilterDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv4PrefixResponse" + }, + "routeFilterDeleteBgpIpv6PrefixResponse": { + "$ref": "#/components/examples/RouteFilterRuleDeleteBgpIpv6PrefixResponse" } } } } }, "400": { - "description": "Resource not found", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -8951,7 +9039,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404_invalid_id" + "$ref": "#/components/examples/400_transient_filter" } } } @@ -8988,7 +9076,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -8996,7 +9084,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9033,32 +9121,49 @@ } } } - } - }, - "/fabric/v4/routers": { - "post": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Filter Rules" + ], + "summary": "Patch Route Filter Rule", + "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" + } + } ], - "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" + "$ref": "#/components/schemas/RouteFilterRulesPatchRequest" }, "examples": { - "CreateLabPackage": { - "$ref": "#/components/examples/CreateLabPackage" + "RouteFilterRuleName": { + "$ref": "#/components/examples/PatchRouteFilterRuleName" }, - "CreateProPackage": { - "$ref": "#/components/examples/CreateStandardPackage" + "RouteFilterRulePrefix": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefix" }, - "CreateWithMarketplaceSubscription": { - "$ref": "#/components/examples/CreateWithMarketplaceSubscription" + "RouteFilterRulePrefixMatch": { + "$ref": "#/components/examples/PatchRouteFilterRulePrefixMatch" } } } @@ -9066,19 +9171,19 @@ "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/RouteFilterRulesData" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPostResponseExample" + "RouteFilterRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv4Response" }, - "cloudRouterResponseForMarketplaceSubscription": { - "$ref": "#/components/examples/CloudRouterPostResponseMarketplaceExample" + "routeFilterRuleIpv6ReplaceResponse": { + "$ref": "#/components/examples/RouteFilterRuleReplaceIpv6Response" } } } @@ -9092,8 +9197,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_package" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9129,6 +9237,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": { @@ -9153,7 +9276,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -9162,39 +9285,83 @@ } } }, - "/fabric/v4/routers/{routerId}": { + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes": { "get": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Get Routers", - "description": "This API provides capability to retrieve user's Cloud Routers", - "operationId": "getCloudRouterByUuid", + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChanges", "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": "routeFilterRuleId", + "in": "path", + "description": "Route Filter Rules Id", + "required": true, + "schema": { + "$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 Cloud Router object", + "description": "Fabric Route Filter Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/RouteFilterRulesChangeDataResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterResponseExample" + "RouteFilterRuleChangesResponse": { + "$ref": "#/components/examples/RouteFilterRulesGetAllChangesResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, - "cloudRouterResponseMarketplace": { - "$ref": "#/components/examples/CloudRouterResponseExampleMarketplace" + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9231,7 +9398,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -9239,7 +9406,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9254,35 +9421,67 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "delete": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId}/changes/{changeId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Delete Routers", - "description": "This API provides capability to delete user's Cloud Routers", - "operationId": "deleteCloudRouterByUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Filter Rule's Changes", + "operationId": "getRouteFilterRuleChangeByUuid", "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": "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": { - "204": { - "description": "Deleted Cloud Router Successfully" + "200": { + "description": "Fabric Route Filter Change object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteFilterRulesChangeData" + }, + "examples": { + "RouteFilterChangeResponse": { + "$ref": "#/components/examples/RouteFilterRuleGetChangeResponseExample" + } + } + } + } }, "400": { "description": "Bad request", @@ -9292,8 +9491,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_state" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9330,7 +9532,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Filter ID Not Found", "content": { "application/json": { "schema": { @@ -9338,7 +9540,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9353,71 +9555,62 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "patch": { + } + }, + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk": { + "post": { "tags": [ - "Cloud Routers" + "Route Filter Rules" ], - "summary": "Update Routers", - "description": "This API provides capability to update user's Cloud Routers", - "operationId": "updateCloudRouterByUuid", + "summary": "Bulk Create Route Filter Rules", + "description": "This API provides capability to create bulk route filter rules", + "operationId": "createRouteFilterRulesInBulk", "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" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterUpdateRequest" - }, - "examples": { - "UpdatePackage": { - "$ref": "#/components/examples/UpdatePackage" - }, - "UpdateName": { - "$ref": "#/components/examples/UpdateName" - }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNotifications" - } + "$ref": "#/components/schemas/RouteFilterRulesPostRequest" } } }, "required": true }, "responses": { - "200": { - "description": "Fabric Cloud Router object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouter" + "$ref": "#/components/schemas/GetRouteFilterRulesResponse" }, "examples": { - "cloudRouterResponse": { - "$ref": "#/components/examples/CloudRouterPatchResponseExample" + "getAllRouteFilterRules": { + "$ref": "#/components/examples/RouteFilterRulesBulkResponse" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -9425,7 +9618,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_operation" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -9470,7 +9663,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/400" } } } @@ -9500,7 +9693,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -9509,44 +9702,41 @@ } } }, - "/fabric/v4/routers/{routerId}/actions": { - "get": { + "/fabric/v4/routeAggregations": { + "post": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActions", - "parameters": [ - { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" + "summary": "Create Aggregations", + "description": "This API provides capability to create a Route Aggregation", + "operationId": "createRouteAggregation", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationsBase" + }, + "examples": { + "RouteAggregationBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" + } + } } }, - { - "name": "state", - "in": "query", - "description": "Action state", - "schema": { - "$ref": "#/components/schemas/ActionState" - } - } - ], + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "GetSpecificRouteAggregationResponse": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" } } } @@ -9560,8 +9750,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "TransientState": { + "$ref": "#/components/examples/400_transient_state" } } } @@ -9598,7 +9788,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9606,14 +9796,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": { @@ -9636,70 +9826,45 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - }, - "post": { + } + }, + "/fabric/v4/routeAggregations/{routeAggregationId}": { + "get": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Route table actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "createCloudRouterAction", + "summary": "Get Aggregation", + "description": "This API provides capability to view a Route Aggregation by UUID", + "operationId": "getRouteAggregationByUuid", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterActionRequest" - }, - "examples": { - "RouteEntriesStatusUpdate": { - "$ref": "#/components/examples/RouteEntriesStatusUpdate" - }, - "ReceivedRouteEntriesStatusUpdate": { - "$ref": "#/components/examples/ReceivedRouteEntriesStatusUpdate" - }, - "AdvertisedRouteEntriesStatusUpdate": { - "$ref": "#/components/examples/AdvertisedRouteEntriesStatusUpdate" - } - } - } - }, - "required": true - }, "responses": { - "202": { + "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "cloudRouterActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" - }, - "receivedRouteEntriesExample": { - "$ref": "#/components/examples/CloudRouterReceivedRoutesActionResponse" - }, - "advertisedRouteEntriesExample": { - "$ref": "#/components/examples/CloudRouterAdvertisedRoutesActionResponse" + "GetSpecificRouteAggregationResponse": { + "$ref": "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" } } } @@ -9713,8 +9878,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_operation" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -9751,7 +9919,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9759,14 +9927,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": { @@ -9789,56 +9957,44 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions/search": { - "post": { + }, + "delete": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Search actions", - "description": "This API provides capability to refresh route table and bgp session summary information", - "operationId": "searchRouterActions", + "summary": "Delete Aggregation", + "description": "This API provides capability to delete a Route Aggregation", + "operationId": "deleteRouteAggregationByUuid", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudRouterActionsSearchRequest" - }, - "examples": { - "CloudRouterActionsSearchByType": { - "$ref": "#/components/examples/CloudRouterActionsSearchByType" - } - } - } - }, - "required": true - }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionsSearchResponse" + "$ref": "#/components/schemas/RouteAggregationsData" + }, + "examples": { + "RouteAggregationDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" + } } } } @@ -9852,7 +10008,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "$ref": "#/components/examples/400_attached_connection" } } } @@ -9889,7 +10045,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -9897,14 +10053,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": { @@ -9927,62 +10083,58 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routers/{routerId}/actions/{actionId}": { - "get": { + }, + "patch": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "summary": "Get actions", - "description": "This API provides capability to fetch action status", - "operationId": "getCloudRouterActionsByUuid", + "summary": "Patch Aggregation", + "description": "This API provides capability to partially update a Route Aggregation", + "operationId": "patchRouteAggregationByUuid", "parameters": [ { - "name": "routerId", - "in": "path", - "description": "Router UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/RouterId_1" - } - }, - { - "name": "actionId", + "name": "routeAggregationId", "in": "path", - "description": "Action UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/ActionId_1" - } - }, - { - "name": "state", - "in": "query", - "description": "Action state", - "schema": { - "$ref": "#/components/schemas/ActionState" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationsPatchRequest" + }, + "examples": { + "RouteAggregationNamePatchExample": { + "$ref": "#/components/examples/PatchRouteAggregationName" + } + } + } + }, + "required": true + }, "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterActionResponse" + "$ref": "#/components/schemas/RouteAggregationsData" }, "examples": { - "routerActionExample": { - "$ref": "#/components/examples/CloudRouterActionResponse" + "RouteAggregationNamePatchResponse": { + "$ref": "#/components/examples/RouteAggregationNamePatchResponse" } } } @@ -10034,7 +10186,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10042,14 +10194,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": { @@ -10072,7 +10224,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10081,59 +10233,57 @@ } } }, - "/fabric/v4/routers/{routerId}/routes/search": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/changes": { + "get": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "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 All Changes", + "description": "This API provides capability to retrieve all of a Route Aggregation's Changes", + "operationId": "getRouteAggregationChanges", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId_1" + "$ref": "#/components/schemas/RouteAggregationId" } + }, + { + "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 } ], - "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", + "description": "Fabric Route Aggregation Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RouteTableEntrySearchResponse" + "$ref": "#/components/schemas/RouteAggregationChangeDataResponse" + }, + "examples": { + "RouteAggregationChangesResponse": { + "$ref": "#/components/examples/RouteAggregationGetAllChangesResponseExample" + } } } } @@ -10146,8 +10296,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -10184,7 +10337,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10192,13 +10345,13 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "415": { + "500": { "description": "Internal server error", "content": { "application/json": { @@ -10207,7 +10360,117 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/500_internal_error" + } + } + } + } + } + } + } + }, + "/fabric/v4/routeAggregations/{routeAggregationId}/changes/{changeId}": { + "get": { + "tags": [ + "Route Aggregations" + ], + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Aggregation's Changes", + "operationId": "getRouteAggregationChangeByUuid", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Routing Protocol Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_3" + } + } + ], + "responses": { + "200": { + "description": "Fabric Route Aggregation Change object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationChangeData" + }, + "examples": { + "RouteAggregationChangeResponse": { + "$ref": "#/components/examples/RouteAggregationGetChangeResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "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": "Route Aggregation ID Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10222,7 +10485,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10231,54 +10494,36 @@ } } }, - "/fabric/v4/routers/{routerId}/validate": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/connections": { + "get": { "tags": [ - "Routing Protocols" + "Route Aggregations" ], - "summary": "Validate Subnet", - "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", - "operationId": "validateRoutingProtocol", + "summary": "Get All Connections on Route Aggregation", + "description": "This API provides capability to view all Connections using the Route Aggregation", + "operationId": "getRouteAggregationConnections", "parameters": [ { - "name": "routerId", + "name": "routeAggregationId", "in": "path", - "description": "Cloud Router UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterId" + "$ref": "#/components/schemas/RouteAggregationId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ValidateRequest" - }, - "examples": { - "ValidateDirectIpv4": { - "$ref": "#/components/examples/Request-direct-ipv4" - }, - "ValidateDirectIpv6": { - "$ref": "#/components/examples/Request-direct-ipv6" - } - } - } - }, - "required": true - }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ValidateSubnetResponse" + "$ref": "#/components/schemas/GetRouteAggregationGetConnectionsResponse" }, "examples": { - "ValidateSubnet": { - "$ref": "#/components/examples/Response-200" + "RouteAggregationGetConnectionsResponse": { + "$ref": "#/components/examples/RouteAggregationGetConnectionsResponse" } } } @@ -10292,11 +10537,86 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" }, - "Subnet Overlapping": { - "$ref": "#/components/examples/error-400-overlappingSubnet" + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" + } + } + } + } + }, + "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": "Route Aggregation 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" } } } @@ -10305,30 +10625,24 @@ } } }, - "/fabric/v4/routers/search": { + "/fabric/v4/routeAggregations/search": { "post": { "tags": [ - "Cloud Routers" + "Route Aggregations" ], - "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", + "summary": "Search Aggregations", + "description": "This API provides capability to search Route Aggregations", + "operationId": "searchRouteAggregations", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterSearchRequest" + "$ref": "#/components/schemas/RouteAggregationsSearchBase" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchFilterByStatus" - }, - "SearchFilterByNameAndMetroName": { - "$ref": "#/components/examples/SearchFilterByNameAndMetroName" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchFilterOrAnd" + "searchRouteAggregationsRequest": { + "$ref": "#/components/examples/SearchRouteAggregationsRequest" } } } @@ -10341,11 +10655,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchResponse" + "$ref": "#/components/schemas/RouteAggregationsSearchResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/search-example" + "SearchRouteAggregationsResponse": { + "$ref": "#/components/examples/SearchRouteAggregationsResponse" } } } @@ -10359,8 +10673,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -10396,6 +10713,21 @@ } } }, + "404": { + "description": "Route Aggregation 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": { @@ -10420,7 +10752,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } @@ -10429,15 +10761,24 @@ } } }, - "/fabric/v4/routerPackages": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules": { "get": { "tags": [ - "Cloud Routers" + "Route Aggregation Rules" ], - "summary": "List Packages", - "description": "This API provides capability to retrieve user's Cloud Routers Packages", - "operationId": "getCloudRouterPackages", + "summary": "GetRARules", + "description": "This API provides capability to get all Route Aggregations Rules for Fabric", + "operationId": "getRouteAggregationRules", "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" + } + }, { "name": "offset", "in": "query", @@ -10461,15 +10802,30 @@ ], "responses": { "200": { - "description": "Fabric Cloud Router Packages", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageResponse" + "$ref": "#/components/schemas/GetRouteAggregationRulesResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/ListFCRPackagesResponse" + "getAllRouteAggregationRules": { + "$ref": "#/components/examples/RouteAggregationRulesGetAll" + } + } + } + } + }, + "400": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10505,17 +10861,12 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } @@ -10529,41 +10880,59 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/routerPackages/{routerPackageCode}": { - "get": { + }, + "post": { "tags": [ - "Cloud Routers" + "Route Aggregation Rules" ], - "summary": "Get Package Details", - "description": "This API provides capability to retrieve user's Cloud Routers Package Details", - "operationId": "getCloudRouterPackageByCode", + "summary": "Create RARule", + "description": "This API provides capability to create a Route Aggregation Rule", + "operationId": "createRouteAggregationRule", "parameters": [ { - "name": "routerPackageCode", + "name": "routeAggregationId", "in": "path", - "description": "Equinix-assigned Cloud Router package identifier", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/RouterPackageCode" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + }, + "examples": { + "RouteAggregationRuleBgpIpv4Prefix": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4Prefix" + } + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Cloud Router Package details", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudRouterPackage" + "$ref": "#/components/schemas/RouteAggregationRulesData" + }, + "examples": { + "GetSpecificRouteAggregationRuleIpv4Response": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse" + } } } } @@ -10576,8 +10945,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_package" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10613,23 +10985,18 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation Rule ID Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -10637,35 +11004,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } } - } - } - } - }, - "/fabric/v4/health": { - "get": { - "tags": [ - "Health" - ], - "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", + }, + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/HealthResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "metroExample": { - "$ref": "#/components/examples/healthResponse" + "example": { + "$ref": "#/components/examples/500_internal_error" } } } @@ -10674,98 +11028,45 @@ } } }, - "/fabric/v4/connections/validate": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}": { + "get": { "tags": [ - "Connections" + "Route Aggregation Rules" ], - "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" - } - } + "summary": "GetRARule By UUID", + "description": "This API provides capability to view a Route Aggregation Rule by UUID", + "operationId": "getRouteAggregationRuleByUuid", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" } }, - "required": true - }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + } + ], "responses": { - "200": { + "202": { "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ConnectionResponse" + "$ref": "#/components/schemas/RouteAggregationRulesData" }, "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" + "GetSpecificRouteAggregationRuleIpv4Response": { + "$ref": "#/components/examples/RouteAggregationRuleCreateBgpIpv4PrefixResponse" } } } @@ -10779,64 +11080,18 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "Bad Request": { - "$ref": "#/components/examples/error-400" - } - } - } - } - } - } - } - }, - "/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" - }, - "CreateLocalNetwork": { - "$ref": "#/components/examples/CreateLocalNetwork" - } - } - } - }, - "required": true - }, - "responses": { - "202": { - "description": "Fabric Network Access point object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Network" - }, - "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPostResponseExample" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } } }, - "400": { - "description": "Bad request", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -10844,14 +11099,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400" + "$ref": "#/components/examples/401" } } } } }, - "401": { - "description": "Unauthorized", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -10859,14 +11114,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/403" } } } } }, - "403": { - "description": "Forbidden", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10874,7 +11129,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10904,45 +11159,85 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/500_internal_error" } } } } } } - } - }, - "/fabric/v4/networks/{networkId}": { - "get": { + }, + "put": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Network By ID", - "description": "This API provides capability to retrieve user's Fabric Network", - "operationId": "getNetworkByUuid", + "summary": "ReplaceRARule", + "description": "This API provides capability to replace a Route Aggregation Rule completely", + "operationId": "replaceRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + }, + "examples": { + "RouteaggregationIpv4ReplaceExample": { + "$ref": "#/components/examples/UpdateRouteAggregationRuleIPv4" + } + } + } + }, + "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/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetResponseExample" + "RouteAggregationRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteAggregationRuleReplaceIpv4Response" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -10979,7 +11274,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -10987,7 +11282,37 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$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" } } } @@ -10997,33 +11322,42 @@ }, "delete": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Delete Network By ID", - "description": "This API provides capability to delete user's Fabric Network", - "operationId": "deleteNetworkByUuid", + "summary": "DeleteRARule", + "description": "This API provides capability to delete a Route aggregation Rule", + "operationId": "deleteRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], "responses": { "202": { - "description": "Fabric Network Access point object", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkDeleteResponseExample" + "RouteAggregationDeleteBgpIpv4PrefixResponse": { + "$ref": "#/components/examples/RouteAggregationRuleDeleteBgpIpv4PrefixResponse" } } } @@ -11038,7 +11372,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_state" + "$ref": "#/components/examples/400_transient_aggregation" } } } @@ -11075,7 +11409,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11083,7 +11417,37 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$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" } } } @@ -11093,34 +11457,43 @@ }, "patch": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Update Network By ID", - "description": "This API provides capability to update user's Fabric Network", - "operationId": "updateNetworkByUuid", + "summary": "PatchRARule", + "description": "This API provides capability to partially update a Route Aggregation Rule", + "operationId": "patchRouteAggregationRuleByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkUpdateRequest" + "$ref": "#/components/schemas/RouteAggregationRulesPatchRequest" }, "examples": { - "UpdateName": { - "$ref": "#/components/examples/UpdateNetworkName" + "RouteaggregationRuleName": { + "$ref": "#/components/examples/PatchRouteAggregationRuleName" }, - "UpdateNotificationEmail": { - "$ref": "#/components/examples/UpdateNetworkNotifications" + "RouteaggregationRulePrefix": { + "$ref": "#/components/examples/PatchRouteAggregationRulePrefix" } } } @@ -11128,16 +11501,16 @@ "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/RouteAggregationRulesData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkPatchResponseExample" + "RouteAggregationRuleIpv4ReplaceResponse": { + "$ref": "#/components/examples/RouteAggregationRuleReplaceIpv4Response" } } } @@ -11151,8 +11524,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_state" + "InvalidType": { + "$ref": "#/components/examples/400_bad_request" + }, + "InvalidId": { + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11189,7 +11565,7 @@ } }, "404": { - "description": "Not Found", + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11197,7 +11573,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11217,48 +11593,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/search": { - "post": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes": { + "get": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "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" - } - } + "summary": "Get All Changes", + "description": "This API provides capability to retrieve all of a Route Aggregation Rule's Changes", + "operationId": "getRouteAggregationRuleChanges", + "parameters": [ + { + "name": "routeAggregationId", + "in": "path", + "description": "Route Aggregations Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationId" } }, - "required": true - }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + }, + { + "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 Aggregation Rule Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkSearchResponse" + "$ref": "#/components/schemas/RouteAggregationRulesChangeDataResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkSearchResponseExample" + "RouteAggregationRuleChangesResponse": { + "$ref": "#/components/examples/RouteAggregationRulesGetAllChangesResponseExample" } } } @@ -11272,8 +11684,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_sorting" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -11309,8 +11724,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11318,7 +11733,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$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" } } } @@ -11327,36 +11757,54 @@ } } }, - "/fabric/v4/networks/{networkId}/connections": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId}/changes/{changeId}": { "get": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Connections", - "description": "The API provides capability to get list of user's Fabric Network connections", - "operationId": "getConnectionsByNetworkUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve a specific Route Aggregation Rule's Changes", + "operationId": "getRouteAggregationRuleChangeByUuid", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" + } + }, + { + "name": "routeAggregationRuleId", + "in": "path", + "description": "Route Aggregation Rules Id", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouteAggregationRuleId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Route Aggregation Rule Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_4" } } ], "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Route Aggregation Change object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkConnections" + "$ref": "#/components/schemas/RouteAggregationRulesChangeData" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/GetNetworkConnectionExample" + "RouteAggregationChangeResponse": { + "$ref": "#/components/examples/RouteAggregationRuleGetChangeResponseExample" } } } @@ -11370,8 +11818,11 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "InvalidInput": { + "$ref": "#/components/examples/400_invalid_input" + }, + "InvalidId": { + "$ref": "#/components/examples/400_Invalid_id" } } } @@ -11407,8 +11858,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Route Aggregation ID Not Found", "content": { "application/json": { "schema": { @@ -11416,7 +11867,22 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$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" } } } @@ -11425,43 +11891,53 @@ } } }, - "/fabric/v4/networks/{networkId}/changes": { - "get": { + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/bulk": { + "post": { "tags": [ - "Networks" + "Route Aggregation Rules" ], - "summary": "Get Network Changes", - "description": "The API provides capability to get list of user's Fabric Network changes", - "operationId": "getNetworkChanges", + "summary": "Bulk RARules", + "description": "This API provides capability to create bulk route aggregation rules", + "operationId": "createRouteAggregationRulesInBulk", "parameters": [ { - "name": "networkId", + "name": "routeAggregationId", "in": "path", - "description": "Network UUID", + "description": "Route Aggregations Id", "required": true, "schema": { - "$ref": "#/components/schemas/NetworkId" + "$ref": "#/components/schemas/RouteAggregationId" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteAggregationRulesPostRequest" + } + } + }, + "required": true + }, "responses": { - "200": { - "description": "Fabric Network Access point object", + "202": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChangeResponse" + "$ref": "#/components/schemas/GetRouteAggregationRulesResponse" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkChangeResponseExample" + "getAllRouteAggregationRules": { + "$ref": "#/components/examples/RouteAggregationRulesBulkResponse" } } } } }, "400": { - "description": "Bad request", + "description": "Resource not found", "content": { "application/json": { "schema": { @@ -11469,7 +11945,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "$ref": "#/components/examples/404_invalid_id" } } } @@ -11505,6 +11981,21 @@ } } }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" + } + } + } + } + }, "415": { "description": "Unsupported Media Type", "content": { @@ -11519,49 +12010,83 @@ } } } + }, + "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}": { - "get": { + "/fabric/v4/routers": { + "post": { "tags": [ - "Networks" + "Cloud Routers" ], - "summary": "Get Change By ID", - "description": "This API provides capability to retrieve user's Fabric Network Change", - "operationId": "getNetworkChangeByUuid", + "summary": "Create Routers", + "description": "This API provides capability to create user's Cloud Routers", + "operationId": "createCloudRouter", "parameters": [ { - "name": "networkId", - "in": "path", - "description": "Network UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/NetworkId" - } - }, - { - "name": "changeId", - "in": "path", - "description": "Network Change UUID", - "required": true, + "name": "dryRun", + "in": "query", + "description": "option to verify that API calls will succeed", + "required": false, "schema": { - "$ref": "#/components/schemas/ChangeId_3" + "type": "boolean", + "default": false } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudRouterPostRequest" + }, + "examples": { + "CreateLabPackage": { + "$ref": "#/components/examples/CreateLabPackage" + }, + "CreateProPackage": { + "$ref": "#/components/examples/CreateStandardPackage" + }, + "CreateWithMarketplaceSubscription": { + "$ref": "#/components/examples/CreateWithMarketplaceSubscription" + } + } + } + }, + "required": true + }, "responses": { "200": { - "description": "Fabric Network Access point object", + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NetworkChange" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "networkResponse": { - "$ref": "#/components/examples/NetworkGetChangeResponseExample" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPostResponseExample" + }, + "cloudRouterResponseForMarketplaceSubscription": { + "$ref": "#/components/examples/CloudRouterPostResponseMarketplaceExample" + }, + "cloudRouterResponseDryRun": { + "$ref": "#/components/examples/CloudRouterResponseExampleDryRun" } } } @@ -11575,8 +12100,17 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/400_invalid_uuid" + "invalidPackage": { + "$ref": "#/components/examples/400_invalid_package" + }, + "invalidName": { + "$ref": "#/components/examples/400_invalid_name" + }, + "invalidAccount": { + "$ref": "#/components/examples/400_invalid_account" + }, + "maxLabFcrReached": { + "$ref": "#/components/examples/400_max_lab_fcr_demo" } } } @@ -11612,8 +12146,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -11621,218 +12155,63 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } } - } - } - } - }, - "/fabric/v4/timeServices": { - "post": { - "tags": [ - "Precision Time" - ], - "summary": "Create Time Service", - "description": "The API provides capability to create Precision Time service", - "operationId": "createTimeServices", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" - }, - "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardService" - }, - "ptpStandard": { - "$ref": "#/components/examples/ptpStandardService" - }, - "ntpEnterprise": { - "$ref": "#/components/examples/ntpEnterpriseService" - }, - "ptpEnterprise": { - "$ref": "#/components/examples/ptpEnterpriseService" - }, - "ptpStandardWithAdvancedConfiguration": { - "$ref": "#/components/examples/ptpStandardWithAdvancedConfiguration" - }, - "ptpEnterpriseWithAdvancedConfiguration": { - "$ref": "#/components/examples/ptpEnterpriseWithAdvancedConfiguration" - }, - "ntpEnterpriseWithAdvancedConfiguration": { - "$ref": "#/components/examples/ntpEnterpriseWithAdvancedConfiguration" - } - } - } }, - "required": true - }, - "responses": { - "202": { - "description": "Successful Accepted operation", + "500": { + "description": "Internal server error", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardCreateResponse" - }, - "ntpEnterprise": { - "$ref": "#/components/examples/ntpEnterpriseCreateResponse" - }, - "ptpStandard": { - "$ref": "#/components/examples/ptpStandardCreateResponse" - }, - "ptpEnterprise": { - "$ref": "#/components/examples/ptpEnterpriseCreateResponse" + "example": { + "$ref": "#/components/examples/500" } } } } - }, - "400": { - "description": "Bad request", + } + } + } + }, + "/fabric/v4/routers/{routerId}": { + "get": { + "tags": [ + "Cloud Routers" + ], + "summary": "Get Routers", + "description": "This API provides capability to retrieve user's Cloud Routers", + "operationId": "getCloudRouterByUuid", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId" + } + } + ], + "responses": { + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterResponseExample" }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "cloudRouterResponseMarketplace": { + "$ref": "#/components/examples/CloudRouterResponseExampleMarketplace" } } } @@ -11868,8 +12247,8 @@ } } }, - "415": { - "description": "Unsupported Media Type", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -11877,7 +12256,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/415" + "$ref": "#/components/examples/404" } } } @@ -11899,66 +12278,28 @@ } } } - } - }, - "/fabric/v4/timeServices/{serviceId}": { - "get": { + }, + "delete": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Service By ID.", - "description": "The API provides capability to get Precision Time Service details", - "operationId": "getTimeServicesById", + "summary": "Delete Routers", + "description": "This API provides capability to delete user's Cloud Routers", + "operationId": "deleteCloudRouterByUuid", "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" } } ], "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" - }, - "examples": { - "ntpStandardOriginPort": { - "$ref": "#/components/examples/ntpStandardResponseASidePort" - }, - "ntpStandardOriginVirtualDevice": { - "$ref": "#/components/examples/ntpStandardResponseASideVirtualDevice" - }, - "ntpStandardOriginCloudRouter": { - "$ref": "#/components/examples/ntpStandardResponseASideCloudRouter" - }, - "ntpEnterpriseOriginPort": { - "$ref": "#/components/examples/ntpEnterpriseWOMD5ResponseASidePort" - }, - "ntpEnterpriseWithAdvConfigOriginPort": { - "$ref": "#/components/examples/ntpEnterpriseResponseASidePort" - }, - "ntpEnterpriseWithAdvConfigOriginVirtualDevice": { - "$ref": "#/components/examples/ntpEnterpriseResponseASideVirtualDevice" - }, - "ntpEnterpriseWithAdvConfigOriginCloudRouter": { - "$ref": "#/components/examples/ntpEnterpriseResponseASideCloudRouter" - }, - "ptpStandardOriginPort": { - "$ref": "#/components/examples/ptpStandardResponse" - }, - "ptpEnterpriseOriginPort": { - "$ref": "#/components/examples/ptpEnterpriseResponse" - } - } - } - } + "204": { + "description": "Deleted Cloud Router Successfully" }, "400": { "description": "Bad request", @@ -11966,6 +12307,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -12015,21 +12361,6 @@ } } }, - "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": { @@ -12047,42 +12378,39 @@ } } }, - "put": { + "patch": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Configure Service.", - "description": "The API provides capability to Configure/Fulfill the Precision Time Service.", - "operationId": "fulfillTimeServices", + "summary": "Update Routers", + "description": "This API provides capability to update user's Cloud Routers", + "operationId": "updateCloudRouterByUuid", "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": { + "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceRequest" + "$ref": "#/components/schemas/CloudRouterUpdateRequest" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/configureStandardService" - }, - "ptpStandard": { - "$ref": "#/components/examples/configureStandardService" + "UpdatePackage": { + "$ref": "#/components/examples/UpdatePackage" }, - "ntpEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/configureNtpEnterpriseAdvancedConfig" + "UpdateName": { + "$ref": "#/components/examples/UpdateName" }, - "ptpEnterpriseWithAdvanceConfiguration": { - "$ref": "#/components/examples/configurePtpWithAdvancedConfig" + "UpdateNotificationEmail": { + "$ref": "#/components/examples/UpdateNotifications" } } } @@ -12090,16 +12418,16 @@ "required": true }, "responses": { - "202": { - "description": "Successful Accepted operation", + "200": { + "description": "Fabric Cloud Router object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouter" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardConfigureResponse" + "cloudRouterResponse": { + "$ref": "#/components/examples/CloudRouterPatchResponseExample" } } } @@ -12113,134 +12441,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12322,36 +12524,61 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/routers/{routerId}/actions": { + "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Delete by ID.", - "description": "The API provides capability to delete Precision Time Service by service id.", - "operationId": "deleteTimeServiceById", + "summary": "Get Route Table 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": { - "202": { - "description": "Successful Delete", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardDeletingResponse" + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12403,7 +12630,7 @@ } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -12434,50 +12661,39 @@ } } }, - "patch": { + "post": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Update By ID.", - "description": "The API provides capability to update Precision Time Service by service id.", - "operationId": "updateTimeServicesById", + "summary": "Create Route Table Action", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "createCloudRouterAction", "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" } } ], "requestBody": { "content": { - "application/json-patch+json": { + "application/json": { "schema": { - "maxItems": 1, - "minItems": 1, - "type": "array", - "items": { - "$ref": "#/components/schemas/precisionTimeChangeOperation" - } + "$ref": "#/components/schemas/CloudRouterActionRequest" }, "examples": { - "updateName": { - "$ref": "#/components/examples/updateName" - }, - "updatePackageCode": { - "$ref": "#/components/examples/updatePackageCode" - }, - "updateNetworkInformation": { - "$ref": "#/components/examples/updateNetworkInformation" + "RouteEntriesStatusUpdate": { + "$ref": "#/components/examples/RouteEntriesStatusUpdate" }, - "updatePtpAdvancedConfiguration": { - "$ref": "#/components/examples/updatePtpAdvancedConfiguration" + "ReceivedRouteEntriesStatusUpdate": { + "$ref": "#/components/examples/ReceivedRouteEntriesStatusUpdate" }, - "updateNtpAdvancedConfiguration": { - "$ref": "#/components/examples/updateNtpAdvancedConfiguration" + "AdvertisedRouteEntriesStatusUpdate": { + "$ref": "#/components/examples/AdvertisedRouteEntriesStatusUpdate" } } } @@ -12486,15 +12702,21 @@ }, "responses": { "202": { - "description": "Successful Accepted operation", + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/precisionTimeServiceResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" }, "examples": { - "ntpStandard": { - "$ref": "#/components/examples/ntpStandardReprovisionResponse" + "cloudRouterActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + }, + "receivedRouteEntriesExample": { + "$ref": "#/components/examples/CloudRouterReceivedRoutesActionResponse" + }, + "advertisedRouteEntriesExample": { + "$ref": "#/components/examples/CloudRouterAdvertisedRoutesActionResponse" } } } @@ -12508,134 +12730,8 @@ "$ref": "#/components/schemas/ErrorList" }, "examples": { - "InvalidName": { - "$ref": "#/components/examples/400-Invalid-Name" - }, - "ValidateName": { - "$ref": "#/components/examples/400-Validate-Name" - }, - "DuplicateName": { - "$ref": "#/components/examples/400-Duplicate-Name" - }, - "MandatoryConnectionUuid": { - "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" - }, - "InvalidConnectionUuidFormat": { - "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" - }, - "InvalidConnectionStatus": { - "$ref": "#/components/examples/400-Invalid-Connection-Status" - }, - "ValidateConnectionUuid": { - "$ref": "#/components/examples/400-Validate-ConnectionUuid" - }, - "InvalidConnectionLocation": { - "$ref": "#/components/examples/400-Invalid-Connection-Location" - }, - "MandatoryPackageType": { - "$ref": "#/components/examples/400-Mandatory-PackageType" - }, - "InvalidPackageType": { - "$ref": "#/components/examples/400-Invalid-PackageType" - }, - "InvalidConnectionPackageType": { - "$ref": "#/components/examples/400-Invalid-Connection-PackageType" - }, - "MandatoryPackage": { - "$ref": "#/components/examples/400-Mandatory-Package" - }, - "InvalidPackage": { - "$ref": "#/components/examples/400-Invalid-Package" - }, - "InvalidConnectionPackage": { - "$ref": "#/components/examples/400-Invalid-Connection-Package" - }, - "MandatoryPrimaryIP": { - "$ref": "#/components/examples/400-Mandatory-PrimaryIP" - }, - "InvalidPrimaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" - }, - "ValidatePrimaryIP": { - "$ref": "#/components/examples/400-Validate-PrimaryIP" - }, - "MandatorySecondaryIP": { - "$ref": "#/components/examples/400-Mandatory-SecondaryIP" - }, - "InvalidSecondaryIPFormat": { - "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" - }, - "ValidateSecondaryIP": { - "$ref": "#/components/examples/400-Validate-SecondaryIP" - }, - "ValidateSameSubnet": { - "$ref": "#/components/examples/400-Validate-SameSubnet" - }, - "MandatoryNetworkMask": { - "$ref": "#/components/examples/400-Mandatory-NetworkMask" - }, - "InvalidNetworkMaskFormat": { - "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" - }, - "ValidateNetworkMask": { - "$ref": "#/components/examples/400-Validate-NetworkMask" - }, - "InvalidDefaultGatewayFormat": { - "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" - }, - "ValidateDefaultGateway": { - "$ref": "#/components/examples/400-Validate-DefaultGateway" - }, - "InvalidTimeScale": { - "$ref": "#/components/examples/400-Invalid-TimeScale" - }, - "InvalidDomain": { - "$ref": "#/components/examples/400-Invalid-Domain" - }, - "InvalidPriority1": { - "$ref": "#/components/examples/400-Invalid-Priority1" - }, - "InvalidPriority2": { - "$ref": "#/components/examples/400-Invalid-Priority2" - }, - "InvalidLogAnnounceInterval": { - "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" - }, - "ValidateLogAnnounceIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" - }, - "InvalidLogSyncInterval": { - "$ref": "#/components/examples/400-Invalid-LogSyncInterval" - }, - "ValidateLogSyncIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" - }, - "InvalidLogDelayReqInterval": { - "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" - }, - "ValidateLogDelayReqIntervalRange": { - "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" - }, - "InvalidTransportMode": { - "$ref": "#/components/examples/400-Invalid-TransportMode" - }, - "InvalidGrantTime": { - "$ref": "#/components/examples/400-Invalid-GrantTime" - }, - "ValidateGrantTimeRange": { - "$ref": "#/components/examples/400-Validate-GrantTime-Range" - }, - "InvalidType": { - "$ref": "#/components/examples/400-Invalid-Type" - }, - "InvalidId": { - "$ref": "#/components/examples/400-Invalid-Id" - }, - "InvalidPassword": { - "$ref": "#/components/examples/400-Invalid-Password" - }, - "ValidatePassword": { - "$ref": "#/components/examples/400-Validate-Password" + "example": { + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12687,7 +12783,7 @@ } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -12719,30 +12815,34 @@ } } }, - "/fabric/v4/timeServices/search": { + "/fabric/v4/routers/{routerId}/actions/search": { "post": { "tags": [ - "Precision Time" + "Cloud Routers" + ], + "summary": "Search Route Table Actions", + "description": "This API provides capability to refresh route table and bgp session summary information", + "operationId": "searchRouterActions", + "parameters": [ + { + "name": "routerId", + "in": "path", + "description": "Router UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/RouterId_1" + } + } ], - "summary": "Search Time Services", - "description": "The API provides capability to get list of user's Time Services using search criteria, including optional filtering, pagination and sorting", - "operationId": "searchTimeServices", - "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TimeServicesSearchRequest" + "$ref": "#/components/schemas/CloudRouterActionsSearchRequest" }, "examples": { - "SearchFilterByStatus": { - "$ref": "#/components/examples/SearchTimeServicesFilterByStatus" - }, - "SearchFilterByNameAndProtocol": { - "$ref": "#/components/examples/SearchTimeServicesByNameAndProtocol" - }, - "SearchFilterOrAnd": { - "$ref": "#/components/examples/SearchTimeServicesFilterOrAnd" + "CloudRouterActionsSearchByType": { + "$ref": "#/components/examples/CloudRouterActionsSearchByType" } } } @@ -12755,12 +12855,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ServiceSearchResponse" - }, - "examples": { - "Example": { - "$ref": "#/components/examples/serviceSearchResponse" - } + "$ref": "#/components/schemas/CloudRouterActionsSearchResponse" } } } @@ -12774,7 +12869,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/service_400_invalid_sorting" + "$ref": "#/components/examples/400_invalid_sorting" } } } @@ -12810,8 +12905,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": { @@ -12843,36 +12953,68 @@ } } }, - "/fabric/v4/timeServices/{serviceId}/connections": { + "/fabric/v4/routers/{routerId}/actions/{actionId}": { "get": { "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Connection Links", - "description": "The API provides capability to get prevision timing service's details", - "operationId": "getTimeServicesConnectionsByServiceId", + "summary": "Get Route Table Action by ID", + "description": "This API provides capability to fetch action status", + "operationId": "getCloudRouterActionsByUuid", "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": "actionId", + "in": "path", + "description": "Action UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ActionId_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/precisionTimeServiceConnectionsResponse" + "$ref": "#/components/schemas/CloudRouterActionResponse" + }, + "examples": { + "routerActionExample": { + "$ref": "#/components/examples/CloudRouterActionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/serviceConnectionsResponse" + "$ref": "#/components/examples/400_invalid_operation" } } } @@ -12908,8 +13050,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": { @@ -12941,122 +13098,65 @@ } } }, - "/fabric/v4/timeServicePackages": { - "get": { + "/fabric/v4/routers/{routerId}/routes/search": { + "post": { "tags": [ - "Precision Time" - ], - "summary": "Get Packages", - "description": "The API provides capability to get timing service's packages", - "operationId": "getTimeServicesPackages", - "parameters": [], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" - }, - "examples": { - "example": { - "$ref": "#/components/examples/servicePackagesResponse" - } - } - } - } - }, - "415": { - "description": "Unsupported Media Type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } - } - } - } - }, - "/fabric/v4/timeServicePackages/{packageCode}": { - "get": { - "tags": [ - "Precision Time" + "Cloud Routers" ], - "summary": "Get Package By Code", - "description": "The API provides capability to get timing service's package by code", - "operationId": "getTimeServicesPackageByCode", + "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": "packageCode", + "name": "routerId", "in": "path", - "description": "Package Code", + "description": "Router UUID", "required": true, "schema": { - "type": "string", - "enum": [ - "NTP_STANDARD", - "NTP_ENTERPRISE", - "PTP_STANDARD", - "PTP_ENTERPRISE" - ] + "$ref": "#/components/schemas/RouterId_1" } } ], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/precisionTimePackageResponse" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RouteTableEntrySearchRequest" + }, + "examples": { + "SearchFilterByNextHop": { + "$ref": "#/components/examples/SearchFilterByNextHop" }, - "examples": { - "example": { - "$ref": "#/components/examples/servicePackageResponse" - } + "SearchFilterByPrefix": { + "$ref": "#/components/examples/SearchFilterByPrefix" + }, + "SearchFilterByType": { + "$ref": "#/components/examples/SearchFilterByType" + }, + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" } } } }, - "415": { - "description": "Unsupported Media Type", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } + "$ref": "#/components/schemas/RouteTableEntrySearchResponse" } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -13064,52 +13164,29 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/400_invalid_sorting" } } } } - } - } - } - }, - "/fabric/v4/marketplaceSubscriptions/{subscriptionId}": { - "get": { - "tags": [ - "Marketplace Subscriptions" - ], - "summary": "Get Subscription", - "description": "The API provides capability to get subscription", - "operationId": "getSubscriptionById", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/SubscriptionId" - } - } - ], - "responses": { - "200": { - "description": "Successful operation", + }, + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionResponse" + "$ref": "#/components/schemas/ErrorList" }, "examples": { "example": { - "$ref": "#/components/examples/subscription-response" + "$ref": "#/components/examples/401" } } } } }, - "401": { - "description": "Unauthorized", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -13117,14 +13194,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/403" } } } } }, - "403": { - "description": "Forbidden", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -13132,14 +13209,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/404" } } } } }, "415": { - "description": "Unsupported Media Type", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -13168,135 +13245,107 @@ } } } - }, - "x-preview": false + } } }, - "/fabric/v4/streams": { - "get": { + "/fabric/v4/routers/{routerId}/validate": { + "post": { "tags": [ - "Streams" + "Routing Protocols" ], - "summary": "Get Streams", - "description": "This API provides capability to retrieve streams", - "operationId": "getStreams", + "summary": "Validate Subnet", + "description": "This API provides capability to validate all subnets associated with any connection in the given FCR", + "operationId": "validateRoutingProtocol", "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": "routerId", + "in": "path", + "description": "Cloud Router UUID", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/RouterId" + } } ], - "responses": { - "200": { - "description": "Successful operation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetAllStreamResponse" - }, - "examples": { - "Example": { - "$ref": "#/components/examples/stream-get-all-example" - } - } - } - } - }, - "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" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateRequest" + }, + "examples": { + "ValidateDirectIpv4": { + "$ref": "#/components/examples/Request-direct-ipv4" }, - "examples": { - "example": { - "$ref": "#/components/examples/403" - } + "ValidateDirectIpv6": { + "$ref": "#/components/examples/Request-direct-ipv6" } } } }, - "404": { - "description": "Not Found", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/ValidateSubnetResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/404" + "ValidateSubnet": { + "$ref": "#/components/examples/Response-200" } } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/500" + "Bad Request": { + "$ref": "#/components/examples/error-400" + }, + "Subnet Overlapping": { + "$ref": "#/components/examples/error-400-overlappingSubnet" } } } } } } - }, + } + }, + "/fabric/v4/routers/search": { "post": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Create Stream", - "description": "This API provides capability to create user's stream", - "operationId": "createStreams", + "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/StreamPostRequest" + "$ref": "#/components/schemas/CloudRouterSearchRequest" }, "examples": { - "CreateStream": { - "$ref": "#/components/examples/StreamPostRequestExample" + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchFilterByStatus" + }, + "SearchFilterByNameAndMetroName": { + "$ref": "#/components/examples/SearchFilterByNameAndMetroName" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchFilterOrAnd" } } } @@ -13304,16 +13353,16 @@ "required": true }, "responses": { - "202": { - "description": "Stream object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/SearchResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamResponseExample" + "Example": { + "$ref": "#/components/examples/search-example" } } } @@ -13325,6 +13374,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_sorting" + } } } } @@ -13392,51 +13446,52 @@ } } }, - "/fabric/v4/streams/{streamId}": { + "/fabric/v4/routerPackages": { "get": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Get Stream", - "description": "This API provides capability to get user's stream", - "operationId": "getStreamByUuid", + "summary": "List Packages", + "description": "This API provides capability to retrieve user's Cloud Routers Packages", + "operationId": "getCloudRouterPackages", "parameters": [ { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, + "name": "offset", + "in": "query", + "description": "offset", + "required": false, "schema": { - "$ref": "#/components/schemas/StreamId" - } + "type": "integer" + }, + "example": 1 + }, + { + "name": "limit", + "in": "query", + "description": "number of records to fetch", + "required": false, + "schema": { + "type": "integer" + }, + "example": 10 } ], "responses": { "200": { - "description": "Stream object", + "description": "Fabric Cloud Router Packages", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/PackageResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamResponseExample" + "Example": { + "$ref": "#/components/examples/ListFCRPackagesResponse" } } } } }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, "401": { "description": "Unauthorized", "content": { @@ -13467,8 +13522,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -13476,7 +13531,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } @@ -13498,52 +13553,34 @@ } } } - }, - "put": { + } + }, + "/fabric/v4/routerPackages/{routerPackageCode}": { + "get": { "tags": [ - "Streams" + "Cloud Routers" ], - "summary": "Update Stream", - "description": "This API provides capability to update user's stream", - "operationId": "updateStreamByUuid", + "summary": "Get Package Details", + "description": "This API provides capability to retrieve user's Cloud Routers Package Details", + "operationId": "getCloudRouterPackageByCode", "parameters": [ { - "name": "streamId", + "name": "routerPackageCode", "in": "path", - "description": "Stream UUID", + "description": "Equinix-assigned Cloud Router package identifier", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/RouterPackageCode" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamPutRequest" - }, - "examples": { - "UpdateStream": { - "$ref": "#/components/examples/StreamPutRequestExample" - } - } - } - }, - "required": true - }, "responses": { - "202": { - "description": "Stream object", + "200": { + "description": "Fabric Cloud Router Package details", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" - }, - "examples": { - "StreamResponse": { - "$ref": "#/components/examples/StreamResponseExample" - } + "$ref": "#/components/schemas/CloudRouterPackage" } } } @@ -13554,6 +13591,20 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "invalidPackage": { + "$ref": "#/components/examples/400_invalid_package" + }, + "invalidName": { + "$ref": "#/components/examples/400_invalid_name" + }, + "invalidAccount": { + "$ref": "#/components/examples/400_invalid_account" + }, + "maxLabFcrReached": { + "$ref": "#/components/examples/400_max_lab_fcr_demo" + } } } } @@ -13588,21 +13639,6 @@ } } }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404" - } - } - } - } - }, "415": { "description": "Unsupported Media Type", "content": { @@ -13634,106 +13670,143 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/health": { + "get": { "tags": [ - "Streams" - ], - "summary": "Delete Stream", - "description": "This API provides capability to delete user's stream", - "operationId": "deleteStreamByUuid", - "parameters": [ - { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamId" - } - } + "Health" ], + "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": { - "202": { - "description": "Stream object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Stream" + "$ref": "#/components/schemas/HealthResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamDeleteRequestExample" + "metroExample": { + "$ref": "#/components/examples/healthResponse" } } } } - }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/401" - } - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "/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" }, - "examples": { - "example": { - "$ref": "#/components/examples/403" - } + "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" } } } }, - "404": { - "description": "Not Found", + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorList" + "$ref": "#/components/schemas/ConnectionResponse" }, "examples": { - "example": { - "$ref": "#/components/examples/404" + "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" } } } } }, - "500": { - "description": "Internal server error", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" }, "examples": { - "example": { - "$ref": "#/components/examples/500" + "Bad Request": { + "$ref": "#/components/examples/error-400" } } } @@ -13742,45 +13815,44 @@ } } }, - "/fabric/v4/streamAssets/search": { + "/fabric/v4/networks": { "post": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Assets", - "description": "This API provides capability to retrieve stream assets", - "operationId": "getStreamsAssets", + "summary": "Create Network", + "description": "This API provides capability to create user's Fabric Network", + "operationId": "createNetwork", "parameters": [ { - "name": "offset", - "in": "query", - "description": "offset", - "required": false, - "schema": { - "type": "integer" - }, - "example": 1 - }, - { - "name": "limit", + "name": "dryRun", "in": "query", - "description": "number of records to fetch", + "description": "option to verify that API calls will succeed", "required": false, "schema": { - "type": "integer" - }, - "example": 10 + "type": "boolean", + "default": false + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAssetSearchRequest" + "$ref": "#/components/schemas/NetworkPostRequest" }, "examples": { - "SearchAssets": { - "$ref": "#/components/examples/StreamAssetSearchRequestExample" + "CreateGlobalNetwork": { + "$ref": "#/components/examples/CreateGlobalNetwork" + }, + "CreateRegionalNetwork": { + "$ref": "#/components/examples/CreateRegionalNetwork" + }, + "CreateLocalNetwork": { + "$ref": "#/components/examples/CreateLocalNetwork" + }, + "NetworkDryRunCreate": { + "$ref": "#/components/examples/CreateNetworkDryRunResponse" } } } @@ -13793,11 +13865,41 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllStreamAssetResponse" + "$ref": "#/components/schemas/Network" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-asset-get-all-example" + "networkDryRun": { + "$ref": "#/components/examples/CreateNetworkDryRunResponse" + } + } + } + } + }, + "202": { + "description": "Fabric Network Access point object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Network" + }, + "examples": { + "networkResponse": { + "$ref": "#/components/examples/NetworkPostResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400" } } } @@ -13833,8 +13935,8 @@ } } }, - "404": { - "description": "Not Found", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -13842,7 +13944,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/415" } } } @@ -13866,69 +13968,41 @@ } } }, - "/fabric/v4/streams/{streamId}/{asset}/{assetId}": { + "/fabric/v4/networks/{networkId}": { "get": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Asset", - "description": "This API provides capability to get user's assets attached to a stream", - "operationId": "getStreamAssetByUuid", + "summary": "Get Network By ID", + "description": "This API provides capability to retrieve user's Fabric Network", + "operationId": "getNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], "responses": { "200": { - "description": "Stream asset object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamConnectionAssetResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkGetResponseExample" } } } } }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - } - } - } - }, "401": { "description": "Unauthorized", "content": { @@ -13973,86 +14047,38 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } }, - "put": { + "delete": { "tags": [ - "Streams" + "Networks" ], - "summary": "Attach Asset", - "description": "This API provides capability to attach an asset to a stream", - "operationId": "updateStreamAssetByUuid", + "summary": "Delete Network By ID", + "description": "This API provides capability to delete user's Fabric Network", + "operationId": "deleteNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamAssetPutRequest" - }, - "examples": { - "UpdateStream": { - "$ref": "#/components/examples/StreamAssetPutRequestExample" - } - } - } - }, - "required": true - }, "responses": { "202": { - "description": "Stream object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamAssetResponse": { - "$ref": "#/components/examples/StreamRouterAssetAttachResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkDeleteResponseExample" } } } @@ -14064,6 +14090,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -14112,86 +14143,56 @@ } } } - }, - "415": { - "description": "Unsupported Media Type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/415" - } - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } }, - "delete": { + "patch": { "tags": [ - "Streams" + "Networks" ], - "summary": "Detach Asset", - "description": "This API provides capability to detach an asset from a stream", - "operationId": "deleteStreamAssetByUuid", + "summary": "Update Network By ID", + "description": "This API provides capability to update user's Fabric Network", + "operationId": "updateNetworkByUuid", "parameters": [ { - "name": "assetId", - "in": "path", - "description": "asset UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/AssetId" - } - }, - { - "name": "asset", - "in": "path", - "description": "asset", - "required": true, - "schema": { - "$ref": "#/components/schemas/Asset" - } - }, - { - "name": "streamId", + "name": "networkId", "in": "path", - "description": "Stream UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamId" + "$ref": "#/components/schemas/NetworkId" } } ], + "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": { - "202": { - "description": "Stream object", + "200": { + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamAsset" + "$ref": "#/components/schemas/Network" }, "examples": { - "StreamAssetResponse": { - "$ref": "#/components/examples/StreamRouterAssetDetachResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkPatchResponseExample" } } } @@ -14203,6 +14204,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_state" + } } } } @@ -14252,8 +14258,8 @@ } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14261,7 +14267,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } @@ -14270,63 +14276,51 @@ } } }, - "/fabric/v4/streams/{streamId}/streamSubscriptions": { - "get": { + "/fabric/v4/networks/search": { + "post": { "tags": [ - "Streams" + "Networks" ], - "summary": "Get Stream's Subs", - "description": "This API provides capability to retrieve subscriptions in a stream", - "operationId": "getSubscriptionsInStream", - "parameters": [ - { - "name": "streamId", - "in": "path", - "description": "Stream UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamId" + "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" + } + } } }, - { - "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 - } - ], + "required": true + }, "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetSubscriptionsInStreamResponse" + "$ref": "#/components/schemas/NetworkSearchResponse" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-get-all-subscription-example" + "networkResponse": { + "$ref": "#/components/examples/NetworkSearchResponseExample" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -14334,14 +14328,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_invalid_sorting" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -14349,14 +14343,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -14364,14 +14358,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14379,7 +14373,7 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } @@ -14388,54 +14382,43 @@ } } }, - "/fabric/v4/streamSubscriptions": { + "/fabric/v4/networks/{networkId}/connections": { "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Get Subscriptions", - "description": "This API provides capability to retrieve stream subscriptions", - "operationId": "getStreamSubscriptions", + "summary": "Get Connections", + "description": "The API provides capability to get list of user's Fabric Network connections", + "operationId": "getConnectionsByNetworkUuid", "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": "networkId", + "in": "path", + "description": "Network UUID", + "required": true, "schema": { - "type": "integer" - }, - "example": 10 + "$ref": "#/components/schemas/NetworkId" + } } ], "responses": { "200": { - "description": "Successful operation", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetAllStreamSubscriptionResponse" + "$ref": "#/components/schemas/NetworkConnections" }, "examples": { - "Example": { - "$ref": "#/components/examples/stream-subscription-get-all-example" + "networkResponse": { + "$ref": "#/components/examples/GetNetworkConnectionExample" } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad request", "content": { "application/json": { "schema": { @@ -14443,14 +14426,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/401" + "$ref": "#/components/examples/400_invalid_uuid" } } } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -14458,14 +14441,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/403" + "$ref": "#/components/examples/401" } } } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -14473,14 +14456,14 @@ }, "examples": { "example": { - "$ref": "#/components/examples/404" + "$ref": "#/components/examples/403" } } } } }, - "500": { - "description": "Internal server error", + "415": { + "description": "Unsupported Media Type", "content": { "application/json": { "schema": { @@ -14488,57 +14471,45 @@ }, "examples": { "example": { - "$ref": "#/components/examples/500" + "$ref": "#/components/examples/415" } } } } } } - }, - "post": { + } + }, + "/fabric/v4/networks/{networkId}/changes": { + "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Create Subscription", - "description": "This API provides capability to create user's Stream Subscriptions", - "operationId": "createStreamSubscriptions", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamSubscriptionPostRequest" - }, - "examples": { - "CreateStreamSubscription_Splunk": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSplunk" - }, - "CreateStreamSubscription_Slack": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSlack" - }, - "CreateStreamSubscription_Pagerduty": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExamplePagerduty" - }, - "CreateStreamSubscription_Datadog": { - "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleDatadog" - } - } + "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" } - }, - "required": true - }, + } + ], "responses": { - "202": { - "description": "Stream Subscription object", + "200": { + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/NetworkChangeResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkChangeResponseExample" } } } @@ -14550,6 +14521,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } } } } @@ -14598,55 +14574,49 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } } }, - "/fabric/v4/streamSubscriptions/{streamSubscriptionId}": { + "/fabric/v4/networks/{networkId}/changes/{changeId}": { "get": { "tags": [ - "Stream Subscriptions" + "Networks" ], - "summary": "Get Subscription", - "description": "This API provides capability to delete user's get Stream Subscriptions", - "operationId": "getStreamSubscriptionByUuid", + "summary": "Get Change By ID", + "description": "This API provides capability to retrieve user's Fabric Network Change", + "operationId": "getNetworkChangeByUuid", "parameters": [ { - "name": "streamSubscriptionId", + "name": "networkId", "in": "path", - "description": "Stream Subscription UUID", + "description": "Network UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" + "$ref": "#/components/schemas/NetworkId" + } + }, + { + "name": "changeId", + "in": "path", + "description": "Network Change UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChangeId_5" } } ], "responses": { "200": { - "description": "Stream Subscription object", + "description": "Fabric Network Access point object", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/NetworkChange" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "networkResponse": { + "$ref": "#/components/examples/NetworkGetChangeResponseExample" } } } @@ -14658,6 +14628,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/400_invalid_uuid" + } } } } @@ -14706,51 +14681,46 @@ } } } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/500" - } - } - } - } } } - }, - "put": { + } + }, + "/fabric/v4/timeServices": { + "post": { "tags": [ - "Stream Subscriptions" - ], - "summary": "Update Subscription", - "description": "This API provides capability to update user's Stream Subscriptions", - "operationId": "updateStreamSubscriptionByUuid", - "parameters": [ - { - "name": "streamSubscriptionId", - "in": "path", - "description": "Stream Subscription UUID", - "required": true, - "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" - } - } + "Precision Time" ], + "summary": "Create Time Service", + "description": "The API provides capability to create Precision Time service", + "operationId": "createTimeServices", + "parameters": [], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscriptionPutRequest" + "$ref": "#/components/schemas/precisionTimeServiceRequest" }, "examples": { - "UpdateSubscription": { - "$ref": "#/components/examples/StreamSubscriptionPutRequestExample" + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardService" + }, + "ptpStandard": { + "$ref": "#/components/examples/ptpStandardService" + }, + "ntpEnterprise": { + "$ref": "#/components/examples/ntpEnterpriseService" + }, + "ptpEnterprise": { + "$ref": "#/components/examples/ptpEnterpriseService" + }, + "ptpStandardWithAdvancedConfiguration": { + "$ref": "#/components/examples/ptpStandardWithAdvancedConfiguration" + }, + "ptpEnterpriseWithAdvancedConfiguration": { + "$ref": "#/components/examples/ptpEnterpriseWithAdvancedConfiguration" + }, + "ntpEnterpriseWithAdvancedConfiguration": { + "$ref": "#/components/examples/ntpEnterpriseWithAdvancedConfiguration" } } } @@ -14759,15 +14729,24 @@ }, "responses": { "202": { - "description": "Stream Subscription object", + "description": "Successful Accepted operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/precisionTimeServiceResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionResponseExample" + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardCreateResponse" + }, + "ntpEnterprise": { + "$ref": "#/components/examples/ntpEnterpriseCreateResponse" + }, + "ptpStandard": { + "$ref": "#/components/examples/ptpStandardCreateResponse" + }, + "ptpEnterprise": { + "$ref": "#/components/examples/ptpEnterpriseCreateResponse" } } } @@ -14779,6 +14758,137 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } } } } @@ -14813,21 +14923,6 @@ } } }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorList" - }, - "examples": { - "example": { - "$ref": "#/components/examples/404" - } - } - } - } - }, "415": { "description": "Unsupported Media Type", "content": { @@ -14859,36 +14954,62 @@ } } } - }, - "delete": { + } + }, + "/fabric/v4/timeServices/{serviceId}": { + "get": { "tags": [ - "Stream Subscriptions" + "Precision Time" ], - "summary": "Delete Subscription", - "description": "This API provides capability to delete user's Stream Subscriptions", - "operationId": "deleteStreamSubscriptionByUuid", + "summary": "Get Service By ID.", + "description": "The API provides capability to get Precision Time Service details", + "operationId": "getTimeServicesById", "parameters": [ { - "name": "streamSubscriptionId", + "name": "serviceId", "in": "path", - "description": "Stream Subscription UUID", + "description": "Service UUID", "required": true, "schema": { - "$ref": "#/components/schemas/StreamSubscriptionId" + "$ref": "#/components/schemas/ServiceId" } } ], "responses": { - "202": { - "description": "Stream Subscription object", + "200": { + "description": "Successful operation", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StreamSubscription" + "$ref": "#/components/schemas/precisionTimeServiceResponse" }, "examples": { - "StreamSubscriptionResponse": { - "$ref": "#/components/examples/StreamSubscriptionDeleteResponseExample" + "ntpStandardOriginPort": { + "$ref": "#/components/examples/ntpStandardResponseASidePort" + }, + "ntpStandardOriginVirtualDevice": { + "$ref": "#/components/examples/ntpStandardResponseASideVirtualDevice" + }, + "ntpStandardOriginCloudRouter": { + "$ref": "#/components/examples/ntpStandardResponseASideCloudRouter" + }, + "ntpEnterpriseOriginPort": { + "$ref": "#/components/examples/ntpEnterpriseWOMD5ResponseASidePort" + }, + "ntpEnterpriseWithAdvConfigOriginPort": { + "$ref": "#/components/examples/ntpEnterpriseResponseASidePort" + }, + "ntpEnterpriseWithAdvConfigOriginVirtualDevice": { + "$ref": "#/components/examples/ntpEnterpriseResponseASideVirtualDevice" + }, + "ntpEnterpriseWithAdvConfigOriginCloudRouter": { + "$ref": "#/components/examples/ntpEnterpriseResponseASideCloudRouter" + }, + "ptpStandardOriginPort": { + "$ref": "#/components/examples/ptpStandardResponse" + }, + "ptpEnterpriseOriginPort": { + "$ref": "#/components/examples/ptpEnterpriseResponse" } } } @@ -14949,6 +15070,21 @@ } } }, + "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": { @@ -14965,38 +15101,2956 @@ } } } - } - } - }, - "components": { - "schemas": { - "ConnectionPostRequest": { - "required": [ - "aSide", - "bandwidth", - "name", - "notifications", - "type", - "zSide" + }, + "put": { + "tags": [ + "Precision Time" ], - "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" - } + "summary": "Configure Service.", + "description": "The API provides capability to Configure/Fulfill the Precision Time Service.", + "operationId": "fulfillTimeServices", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceRequest" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/configureStandardService" + }, + "ptpStandard": { + "$ref": "#/components/examples/configureStandardService" + }, + "ntpEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/configureNtpEnterpriseAdvancedConfig" + }, + "ptpEnterpriseWithAdvanceConfiguration": { + "$ref": "#/components/examples/configurePtpWithAdvancedConfig" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Accepted operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardConfigureResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Precision Time" + ], + "summary": "Delete by ID.", + "description": "The API provides capability to delete Precision Time Service by service id.", + "operationId": "deleteTimeServiceById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "responses": { + "202": { + "description": "Successful Delete", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardDeletingResponse" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "patch": { + "tags": [ + "Precision Time" + ], + "summary": "Update By ID.", + "description": "The API provides capability to update Precision Time Service by service id.", + "operationId": "updateTimeServicesById", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "maxItems": 1, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/precisionTimeChangeOperation" + } + }, + "examples": { + "updateName": { + "$ref": "#/components/examples/updateName" + }, + "updatePackageCode": { + "$ref": "#/components/examples/updatePackageCode" + }, + "updateNetworkInformation": { + "$ref": "#/components/examples/updateNetworkInformation" + }, + "updatePtpAdvancedConfiguration": { + "$ref": "#/components/examples/updatePtpAdvancedConfiguration" + }, + "updateNtpAdvancedConfiguration": { + "$ref": "#/components/examples/updateNtpAdvancedConfiguration" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Accepted operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceResponse" + }, + "examples": { + "ntpStandard": { + "$ref": "#/components/examples/ntpStandardReprovisionResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "InvalidName": { + "$ref": "#/components/examples/400-Invalid-Name" + }, + "ValidateName": { + "$ref": "#/components/examples/400-Validate-Name" + }, + "DuplicateName": { + "$ref": "#/components/examples/400-Duplicate-Name" + }, + "MandatoryConnectionUuid": { + "$ref": "#/components/examples/400-Mandatory-ConnectionUUid" + }, + "InvalidConnectionUuidFormat": { + "$ref": "#/components/examples/400-Invalid-ConnectionUuid-Format" + }, + "InvalidConnectionStatus": { + "$ref": "#/components/examples/400-Invalid-Connection-Status" + }, + "ValidateConnectionUuid": { + "$ref": "#/components/examples/400-Validate-ConnectionUuid" + }, + "InvalidConnectionLocation": { + "$ref": "#/components/examples/400-Invalid-Connection-Location" + }, + "MandatoryPackageType": { + "$ref": "#/components/examples/400-Mandatory-PackageType" + }, + "InvalidPackageType": { + "$ref": "#/components/examples/400-Invalid-PackageType" + }, + "InvalidConnectionPackageType": { + "$ref": "#/components/examples/400-Invalid-Connection-PackageType" + }, + "MandatoryPackage": { + "$ref": "#/components/examples/400-Mandatory-Package" + }, + "InvalidPackage": { + "$ref": "#/components/examples/400-Invalid-Package" + }, + "InvalidConnectionPackage": { + "$ref": "#/components/examples/400-Invalid-Connection-Package" + }, + "MandatoryPrimaryIP": { + "$ref": "#/components/examples/400-Mandatory-PrimaryIP" + }, + "InvalidPrimaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-PrimaryIP-Format" + }, + "ValidatePrimaryIP": { + "$ref": "#/components/examples/400-Validate-PrimaryIP" + }, + "MandatorySecondaryIP": { + "$ref": "#/components/examples/400-Mandatory-SecondaryIP" + }, + "InvalidSecondaryIPFormat": { + "$ref": "#/components/examples/400-Invalid-SecondaryIP-Format" + }, + "ValidateSecondaryIP": { + "$ref": "#/components/examples/400-Validate-SecondaryIP" + }, + "ValidateSameSubnet": { + "$ref": "#/components/examples/400-Validate-SameSubnet" + }, + "MandatoryNetworkMask": { + "$ref": "#/components/examples/400-Mandatory-NetworkMask" + }, + "InvalidNetworkMaskFormat": { + "$ref": "#/components/examples/400-Invalid-NetworkMask-Format" + }, + "ValidateNetworkMask": { + "$ref": "#/components/examples/400-Validate-NetworkMask" + }, + "InvalidDefaultGatewayFormat": { + "$ref": "#/components/examples/400-Invalid-DefaultGateway-Format" + }, + "ValidateDefaultGateway": { + "$ref": "#/components/examples/400-Validate-DefaultGateway" + }, + "InvalidTimeScale": { + "$ref": "#/components/examples/400-Invalid-TimeScale" + }, + "InvalidDomain": { + "$ref": "#/components/examples/400-Invalid-Domain" + }, + "InvalidPriority1": { + "$ref": "#/components/examples/400-Invalid-Priority1" + }, + "InvalidPriority2": { + "$ref": "#/components/examples/400-Invalid-Priority2" + }, + "InvalidLogAnnounceInterval": { + "$ref": "#/components/examples/400-Invalid-LogAnnounceInterval" + }, + "ValidateLogAnnounceIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogAnnounceInterval-Range" + }, + "InvalidLogSyncInterval": { + "$ref": "#/components/examples/400-Invalid-LogSyncInterval" + }, + "ValidateLogSyncIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogSyncInterval-Range" + }, + "InvalidLogDelayReqInterval": { + "$ref": "#/components/examples/400-Invalid-LogDelayReqInterval" + }, + "ValidateLogDelayReqIntervalRange": { + "$ref": "#/components/examples/400-Validate-LogDelayReqInterval-Range" + }, + "InvalidTransportMode": { + "$ref": "#/components/examples/400-Invalid-TransportMode" + }, + "InvalidGrantTime": { + "$ref": "#/components/examples/400-Invalid-GrantTime" + }, + "ValidateGrantTimeRange": { + "$ref": "#/components/examples/400-Validate-GrantTime-Range" + }, + "InvalidType": { + "$ref": "#/components/examples/400-Invalid-Type" + }, + "InvalidId": { + "$ref": "#/components/examples/400-Invalid-Id" + }, + "InvalidPassword": { + "$ref": "#/components/examples/400-Invalid-Password" + }, + "ValidatePassword": { + "$ref": "#/components/examples/400-Validate-Password" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServices/search": { + "post": { + "tags": [ + "Precision Time" + ], + "summary": "Search Time Services", + "description": "The API provides capability to get list of user's Time Services using search criteria, including optional filtering, pagination and sorting", + "operationId": "searchTimeServices", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimeServicesSearchRequest" + }, + "examples": { + "SearchFilterByStatus": { + "$ref": "#/components/examples/SearchTimeServicesFilterByStatus" + }, + "SearchFilterByNameAndProtocol": { + "$ref": "#/components/examples/SearchTimeServicesByNameAndProtocol" + }, + "SearchFilterOrAnd": { + "$ref": "#/components/examples/SearchTimeServicesFilterOrAnd" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceSearchResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/serviceSearchResponse" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/service_400_invalid_sorting" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServices/{serviceId}/connections": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Connection Links", + "description": "The API provides capability to get prevision timing service's details", + "operationId": "getTimeServicesConnectionsByServiceId", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Service UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/ServiceId" + } + } + ], + "responses": { + "200": { + "description": "Return Time Service Connection", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServiceConnectionsResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/serviceConnectionsResponse" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/timeServicePackages": { + "get": { + "tags": [ + "Precision Time" + ], + "summary": "Get Packages", + "description": "The API provides capability to get timing service's packages", + "operationId": "getTimeServicesPackages", + "parameters": [], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimeServicePackagesResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/servicePackagesResponse" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/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" + ] + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/precisionTimePackageResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/servicePackageResponse" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/marketplaceSubscriptions/{subscriptionId}": { + "get": { + "tags": [ + "Marketplace Subscriptions" + ], + "summary": "Get Subscription", + "description": "The API provides capability to get subscription", + "operationId": "getSubscriptionById", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/SubscriptionId" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionResponse" + }, + "examples": { + "example": { + "$ref": "#/components/examples/subscription-response" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Streams", + "description": "This API provides capability to retrieve streams", + "operationId": "getStreams", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Streams" + ], + "summary": "Create Stream", + "description": "This API provides capability to create user's stream", + "operationId": "createStreams", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamPostRequest" + }, + "examples": { + "CreateStream": { + "$ref": "#/components/examples/StreamPostRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Stream", + "description": "This API provides capability to get user's stream", + "operationId": "getStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "200": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Streams" + ], + "summary": "Update Stream", + "description": "This API provides capability to update user's stream", + "operationId": "updateStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamPutRequest" + }, + "examples": { + "UpdateStream": { + "$ref": "#/components/examples/StreamPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamResponse": { + "$ref": "#/components/examples/StreamResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Streams" + ], + "summary": "Delete Stream", + "description": "This API provides capability to delete user's stream", + "operationId": "deleteStreamByUuid", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Stream" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamDeleteRequestExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamAssets/search": { + "post": { + "tags": [ + "Streams" + ], + "summary": "Get Assets", + "description": "This API provides capability to retrieve stream assets", + "operationId": "getStreamsAssets", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAssetSearchRequest" + }, + "examples": { + "SearchAssets": { + "$ref": "#/components/examples/StreamAssetSearchRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamAssetResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-asset-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}/{asset}/{assetId}": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Asset", + "description": "This API provides capability to get user's assets attached to a stream", + "operationId": "getStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "200": { + "description": "Stream asset object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamConnectionAssetResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Streams" + ], + "summary": "Attach Asset", + "description": "This API provides capability to attach an asset to a stream", + "operationId": "updateStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAssetPutRequest" + }, + "examples": { + "UpdateStream": { + "$ref": "#/components/examples/StreamAssetPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamAssetResponse": { + "$ref": "#/components/examples/StreamRouterAssetAttachResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Streams" + ], + "summary": "Detach Asset", + "description": "This API provides capability to detach an asset from a stream", + "operationId": "deleteStreamAssetByUuid", + "parameters": [ + { + "name": "assetId", + "in": "path", + "description": "asset UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/AssetId" + } + }, + { + "name": "asset", + "in": "path", + "description": "asset", + "required": true, + "schema": { + "$ref": "#/components/schemas/Asset" + } + }, + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + } + ], + "responses": { + "202": { + "description": "Stream object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamAsset" + }, + "examples": { + "StreamAssetResponse": { + "$ref": "#/components/examples/StreamRouterAssetDetachResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streams/{streamId}/streamSubscriptions": { + "get": { + "tags": [ + "Streams" + ], + "summary": "Get Stream's Subs", + "description": "This API provides capability to retrieve subscriptions in a stream", + "operationId": "getSubscriptionsInStream", + "parameters": [ + { + "name": "streamId", + "in": "path", + "description": "Stream UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamId" + } + }, + { + "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": { + "schema": { + "$ref": "#/components/schemas/GetSubscriptionsInStreamResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-get-all-subscription-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamSubscriptions": { + "get": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Get Subscriptions", + "description": "This API provides capability to retrieve stream subscriptions", + "operationId": "getStreamSubscriptions", + "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, + "schema": { + "type": "integer" + }, + "example": 10 + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllStreamSubscriptionResponse" + }, + "examples": { + "Example": { + "$ref": "#/components/examples/stream-subscription-get-all-example" + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Create Subscription", + "description": "This API provides capability to create user's Stream Subscriptions", + "operationId": "createStreamSubscriptions", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionPostRequest" + }, + "examples": { + "CreateStreamSubscription_Splunk": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSplunk" + }, + "CreateStreamSubscription_Slack": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleSlack" + }, + "CreateStreamSubscription_Pagerduty": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExamplePagerduty" + }, + "CreateStreamSubscription_Datadog": { + "$ref": "#/components/examples/StreamSubscriptionPostRequestExampleDatadog" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + }, + "/fabric/v4/streamSubscriptions/{streamSubscriptionId}": { + "get": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Get Subscription", + "description": "This API provides capability to delete user's get Stream Subscriptions", + "operationId": "getStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "responses": { + "200": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Update Subscription", + "description": "This API provides capability to update user's Stream Subscriptions", + "operationId": "updateStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionPutRequest" + }, + "examples": { + "UpdateSubscription": { + "$ref": "#/components/examples/StreamSubscriptionPutRequestExample" + } + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/415" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "Stream Subscriptions" + ], + "summary": "Delete Subscription", + "description": "This API provides capability to delete user's Stream Subscriptions", + "operationId": "deleteStreamSubscriptionByUuid", + "parameters": [ + { + "name": "streamSubscriptionId", + "in": "path", + "description": "Stream Subscription UUID", + "required": true, + "schema": { + "$ref": "#/components/schemas/StreamSubscriptionId" + } + } + ], + "responses": { + "202": { + "description": "Stream Subscription object", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamSubscription" + }, + "examples": { + "StreamSubscriptionResponse": { + "$ref": "#/components/examples/StreamSubscriptionDeleteResponseExample" + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/401" + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/403" + } + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/404" + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorList" + }, + "examples": { + "example": { + "$ref": "#/components/examples/500" + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ConnectionPostRequest": { + "required": [ + "aSide", + "bandwidth", + "name", + "notifications", + "type", + "zSide" + ], + "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" + } }, "bandwidth": { "maximum": 50000, @@ -15028,6 +18082,9 @@ }, "marketplaceSubscription": { "$ref": "#/components/schemas/marketplaceSubscription" + }, + "endCustomer": { + "$ref": "#/components/schemas/EndCustomer" } }, "description": "Create connection post request" @@ -16945,6 +20002,10 @@ "format": "uri", "readOnly": true }, + "expiry": { + "type": "integer", + "deprecated": true + }, "uuid": { "type": "string", "description": "Equinix-assigned service token identifier", @@ -16953,10 +20014,7 @@ "issuerSide": { "type": "string", "description": "information about token side", - "enum": [ - "ASIDE", - "ZSIDE" - ] + "deprecated": true }, "name": { "type": "string", @@ -17203,7 +20261,8 @@ "description": "Geographic boundary types", "enum": [ "CANADA", - "CONUS" + "CONUS", + "JAPAN" ] }, "MetroErrorList": { @@ -17461,6 +20520,9 @@ "$ref": "#/components/schemas/PortAdditionalInfo" } }, + "endCustomer": { + "$ref": "#/components/schemas/EndCustomer" + }, "physicalPorts": { "type": "array", "description": "Physical ports that implement this port", @@ -17715,6 +20777,61 @@ } } }, + "GetAllConnectionRouteAggregationsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregations attached to a Connection", + "items": { + "$ref": "#/components/schemas/ConnectionRouteAggregationData" + } + } + } + }, + "RouteAggregationId": { + "type": "string", + "description": "Route Aggregations UUID", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "ConnectionRouteAggregationData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "attachmentStatus": { + "type": "string", + "enum": [ + "ATTACHING", + "ATTACHED", + "DETACHED", + "DETACHING", + "FAILED", + "PENDING_BGP_CONFIGURATION" + ] + } + } + }, "GetAllConnectionRouteFiltersResponse": { "type": "object", "properties": { @@ -17740,13 +20857,13 @@ "properties": { "href": { "type": "string", - "description": "Route Filter URI", + "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", + "description": "Route filter type", "enum": [ "BGP_IPv4_PREFIX_FILTER", "BGP_IPv6_PREFIX_FILTER" @@ -17828,7 +20945,7 @@ "properties": { "href": { "type": "string", - "description": "Route Filter URI", + "description": "Route filter URI", "format": "uri", "example": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -17842,7 +20959,7 @@ }, "uuid": { "type": "string", - "description": "Route Filter identifier", + "description": "Route filter identifier", "format": "uuid", "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -17904,7 +21021,7 @@ } } }, - "description": "List of Route Filter changes" + "description": "List of route filter changes" }, "ChangeId_1": { "type": "string", @@ -17926,7 +21043,7 @@ }, "createdBy": { "type": "string", - "description": "Created by User Key" + "description": "Created by user key" }, "createdDateTime": { "type": "string", @@ -17935,7 +21052,7 @@ }, "updatedBy": { "type": "string", - "description": "Updated by User Key" + "description": "Updated by user key" }, "updatedDateTime": { "type": "string", @@ -17950,7 +21067,7 @@ "$ref": "#/components/schemas/RouteFiltersChangeOperation" } }, - "description": "Current state of latest Route Filter change", + "description": "Current state of latest route filter change", "allOf": [ { "$ref": "#/components/schemas/RouteFiltersChange" @@ -18051,7 +21168,7 @@ }, "data": { "type": "array", - "description": "List of Route Filters", + "description": "List of route filters", "items": { "$ref": "#/components/schemas/RouteFiltersData" } @@ -18109,7 +21226,7 @@ }, "type": { "type": "string", - "description": "Route Filter type", + "description": "Route filter type", "enum": [ "BGP_IPv4_PREFIX_FILTER_RULE", "BGP_IPv6_PREFIX_FILTER_RULE" @@ -18183,7 +21300,7 @@ } } }, - "description": "List of Route Filter Rule changes" + "description": "List of route filter rule changes" }, "ChangeId_2": { "type": "string", @@ -18225,7 +21342,7 @@ "$ref": "#/components/schemas/RouteFilterRulesChangeOperation" } }, - "description": "Current state of latest Route Filter Rules change", + "description": "Current state of latest route filter rules change", "allOf": [ { "$ref": "#/components/schemas/RouteFilterRulesChange" @@ -18245,6 +21362,430 @@ }, "description": "Create Route Filter Rule POST request" }, + "RouteAggregationsBase": { + "required": [ + "name", + "project", + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION", + "BGP_IPv6_PREFIX_AGGREGATION" + ] + }, + "name": { + "type": "string", + "example": "My-direct-route-1" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description" + }, + "project": { + "$ref": "#/components/schemas/Project" + } + } + }, + "RouteAggregationsData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION", + "BGP_IPv6_PREFIX_AGGREGATION" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "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/RouteAggregationState" + }, + "change": { + "$ref": "#/components/schemas/RouteAggregationsChange" + }, + "connectionsCount": { + "type": "integer", + "example": 0 + }, + "rulesCount": { + "type": "integer", + "example": 0 + }, + "project": { + "$ref": "#/components/schemas/RouteAggregationsData_project" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "RouteAggregationsPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Aggregations request", + "items": { + "$ref": "#/components/schemas/RouteAggregationsPatchRequestItem" + } + }, + "RouteAggregationChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationChangeData" + } + } + }, + "description": "List of Route Aggregation changes" + }, + "ChangeId_3": { + "type": "string", + "description": "Route Aggregations Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteAggregationChangeData": { + "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/RouteAggregationsChangeOperation" + } + }, + "description": "Current state of latest Route Aggregation change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteAggregationsChange" + } + ] + }, + "GetRouteAggregationGetConnectionsResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Connections using a Route Aggregation", + "items": { + "$ref": "#/components/schemas/RouteAggregationConnectionsData" + } + } + } + }, + "RouteAggregationsSearchBase": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/RouteAggregationsSearchBase_filter" + }, + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationSortItem" + } + } + } + }, + "RouteAggregationsSearchFilterItem": { + "type": "object", + "properties": { + "property": { + "type": "string", + "enum": [ + "/type", + "/name", + "/project/projectId", + "/uuid", + "/state" + ] + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RouteAggregationSortItem": { + "type": "object", + "properties": { + "property": { + "type": "string", + "description": "Possible field names to use on sorting", + "default": "/changeLog/updatedDateTime", + "enum": [ + "/type", + "/uuid", + "/name", + "/project/projectId", + "/state", + "/connectionsCount", + "/changeLog/createdDateTime", + "/changeLog/updatedDateTime" + ] + }, + "direction": { + "type": "string", + "description": "Sorting direction", + "default": "DESC", + "enum": [ + "DESC", + "ASC" + ] + } + } + }, + "RouteAggregationsSearchResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregations", + "items": { + "$ref": "#/components/schemas/RouteAggregationsData" + } + } + } + }, + "GetRouteAggregationRulesResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "description": "List of Route Aggregation Rules", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesData" + } + } + } + }, + "RouteAggregationRulesBase": { + "required": [ + "prefix" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Private-subnet-Aggregation" + }, + "description": { + "type": "string", + "description": "Customer-provided Route Aggregation Rule description" + }, + "prefix": { + "type": "string", + "example": "192.168.0.0/24" + } + } + }, + "RouteAggregationRulesData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Route Aggregation Rules URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "type": { + "type": "string", + "description": "Route Aggregation type", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_RULE" + ] + }, + "uuid": { + "type": "string", + "description": "Route Aggregation Rule identifier", + "format": "uuid", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "name": { + "type": "string", + "example": "Private-subnet-aggregation-2" + }, + "description": { + "type": "string", + "description": "Customer-provided Route Aggregation Rule description" + }, + "state": { + "$ref": "#/components/schemas/RouteAggregationRuleState" + }, + "change": { + "$ref": "#/components/schemas/RouteAggregationRulesChange" + }, + "prefix": { + "type": "string", + "example": "192.168.0.0/24" + }, + "changeLog": { + "$ref": "#/components/schemas/Changelog" + } + } + }, + "RouteAggregationRuleId": { + "type": "string", + "description": "Route Aggregation Rule UUID", + "example": "65b025ef-022b-4180-85cf-82cfc1ab655b" + }, + "RouteAggregationRulesPatchRequest": { + "minItems": 1, + "type": "array", + "description": "Patch Route Aggregations Rule request", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesPatchRequestItem" + } + }, + "RouteAggregationRulesChangeDataResponse": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesChangeData" + } + } + }, + "description": "List of Route Aggregation Rule changes" + }, + "ChangeId_4": { + "type": "string", + "description": "Route Aggregation Rule Change UUID", + "format": "uuid", + "example": "6d500177-9404-41f2-99e8-2bf1a84d8db5" + }, + "RouteAggregationRulesChangeData": { + "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" + }, + "data": { + "$ref": "#/components/schemas/RouteAggregationRulesChangeOperation" + } + }, + "description": "Current state of latest Route Aggregation Rules change", + "allOf": [ + { + "$ref": "#/components/schemas/RouteAggregationRulesChange" + } + ] + }, + "RouteAggregationRulesPostRequest": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Route Aggregation Rule configuration", + "items": { + "$ref": "#/components/schemas/RouteAggregationRulesBase" + } + } + }, + "description": "Create Route Aggregation Rule POST request" + }, "CloudRouterPostRequest": { "type": "object", "properties": { @@ -18317,31 +21858,11 @@ "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" - }, "marketplaceSubscription": { "$ref": "#/components/schemas/marketplaceSubscription" }, @@ -18384,7 +21905,7 @@ }, "CloudRouterActionState": { "type": "string", - "description": "Cloud Router action state", + "description": "Cloud router action state", "enum": [ "SUCCEEDED", "FAILED", @@ -18429,7 +21950,7 @@ "$ref": "#/components/schemas/Operation" } }, - "description": "Cloud Router actions response object" + "description": "Cloud router actions response object" }, "CloudRouterActionRequest": { "required": [ @@ -18444,7 +21965,7 @@ "$ref": "#/components/schemas/RouterActionsConnection" } }, - "description": "Cloud Router action request" + "description": "Cloud router action request" }, "CloudRouterActionsSearchRequest": { "type": "object", @@ -18905,46 +22426,10 @@ "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": "CloudRouter package NAT supported type", - "example": "STATIC_NAT", - "enum": [ - "STATIC_NAT" - ] - }, "vcCountMax": { "minimum": 0, "type": "integer", @@ -19326,7 +22811,7 @@ }, "description": "List of network changes" }, - "ChangeId_3": { + "ChangeId_5": { "type": "string", "description": "Network Change UUID", "format": "uuid", @@ -19463,6 +22948,7 @@ "description": "Precision Time Service Status.", "enum": [ "CANCELLED", + "CANCELLING", "CONFIGURING", "CONFIGURING_FAILED", "DRAFT", @@ -19507,6 +22993,9 @@ "order": { "$ref": "#/components/schemas/precisionTimeOrder" }, + "pricing": { + "$ref": "#/components/schemas/precisionTimePrice" + }, "changeLog": { "$ref": "#/components/schemas/Changelog" } @@ -19863,9 +23352,12 @@ "trial": { "$ref": "#/components/schemas/SubscriptionTrial" }, - "subscriptionKey": { - "type": "string", - "description": "Subscription Key" + "metroCodes": { + "type": "array", + "description": "List of available metro", + "items": { + "type": "string" + } }, "entitlements": { "type": "array", @@ -19878,8 +23370,7 @@ "$ref": "#/components/schemas/Changelog" } }, - "description": "Subscription Response", - "x-preview": false + "description": "Subscription Response" }, "SubscriptionState": { "type": "string", @@ -20046,7 +23537,7 @@ "description": "Stream subscriptions count", "example": 2 }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" } }, @@ -20212,7 +23703,9 @@ "ports", "connections", "routers", - "metros" + "metros", + "organizations", + "projects" ] }, "StreamAsset": { @@ -20230,6 +23723,20 @@ "format": "uuid", "example": "c9b8e7a2-f3b1-4576-a4a9-1366a63df170" }, + "type": { + "type": "string", + "description": "Asset types", + "enum": [ + "XF_PORT", + "IP_VC", + "EVPLAN_VC", + "EVPL_VC", + "XF_METRO", + "XF_ROUTER", + "ORGANIZATION", + "PROJECT" + ] + }, "metricsEnabled": { "type": "boolean", "description": "enable metric", @@ -20321,6 +23828,12 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" } @@ -20383,6 +23896,30 @@ } } }, + "StreamSubscriptionSelector": { + "type": "object", + "properties": { + "include": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/StreamSubscriptionExpression" + } + }, + "except": { + "maxItems": 8, + "type": "array", + "items": { + "$ref": "#/components/schemas/StreamSubscriptionExpression" + } + } + } + }, + "StreamSubscriptionExpression": { + "type": "string", + "description": "Possible event or metric names to use on event and metric selectors:\n * `*` - all events or metrics\n * `equinix.fabric.port.*` - port events or metrics\n * `equinix.fabric.connection.*` - connection events or metrics\n * `equinix.fabric.cloudrouter.*` - cloud router events\n * `equinix.fabric.metro.*` - metro metrics\n * `equinix.fabric.network.*` - network events\n * `equinix.fabric.service_token.*` - service token events\n * `equinix.fabric.network_edge.*` - network edge events\n", + "example": "equinix.fabric.connection.*" + }, "StreamSubscriptionSink": { "type": "object", "properties": { @@ -20528,10 +24065,16 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" }, - "changelog": { + "changeLog": { "$ref": "#/components/schemas/Changelog" } }, @@ -20565,6 +24108,12 @@ "filters": { "$ref": "#/components/schemas/StreamSubscriptionFilter" }, + "metricSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, + "eventSelector": { + "$ref": "#/components/schemas/StreamSubscriptionSelector" + }, "sink": { "$ref": "#/components/schemas/StreamSubscriptionSink" } @@ -20735,7 +24284,9 @@ "description": "Marketplace Subscription type", "example": "AWS_MARKETPLACE_SUBSCRIPTION", "enum": [ - "AWS_MARKETPLACE_SUBSCRIPTION" + "AWS_MARKETPLACE_SUBSCRIPTION", + "GCP_MARKETPLACE_SUBSCRIPTION", + "AZURE_MARKETPLACE_SUBSCRIPTION" ] }, "uuid": { @@ -20746,6 +24297,22 @@ }, "description": "Equinix Fabric Entity for Marketplace Subscription" }, + "EndCustomer": { + "type": "object", + "properties": { + "isDisclosed": { + "type": "boolean", + "description": "Indicate if endCustomer info should be disclosed or not", + "default": false + }, + "name": { + "type": "string" + }, + "mdmId": { + "type": "string" + } + } + }, "ConnectionState": { "type": "string", "description": "Connection status", @@ -21138,7 +24705,7 @@ "$ref": "#/components/schemas/Changelog" } }, - "description": "Adv/Rec Route table entry object" + "description": "Advertised and received route table entry object" }, "BGPConnectionIpv4": { "required": [ @@ -21598,6 +25165,9 @@ }, "port": { "$ref": "#/components/schemas/VirtualPortPrice" + }, + "timeService": { + "$ref": "#/components/schemas/TimeServicePrice" } } }, @@ -21621,6 +25191,10 @@ "SimplifiedLocation": { "type": "object", "properties": { + "metroHref": { + "type": "string", + "example": "https://api.equinix.com/fabric/v4/metros/AM" + }, "region": { "type": "string", "example": "AMER, APAC, EMEA" @@ -21633,10 +25207,6 @@ "type": "string", "example": "AM" }, - "metroHref": { - "type": "string", - "example": "https://api.equinix.com/fabric/v4/metros/AM" - }, "ibx": { "type": "string", "example": "AM1", @@ -21674,6 +25244,7 @@ "description": "Type of Connection", "enum": [ "EVPL_VC", + "EPL_VC", "EVPLAN_VC", "EPLAN_VC", "IPWAN_VC" @@ -22293,11 +25864,11 @@ }, "href": { "type": "string", - "description": "Route Filter Change URI", + "description": "Route filter change URI", "format": "uri" } }, - "description": "Current state of latest Route Filter change" + "description": "Current state of latest route filter change" }, "RouteFiltersPatchRequestItem": { "required": [ @@ -22322,7 +25893,7 @@ "description": "new value for updated parameter" } }, - "description": "Route Filter change operation data" + "description": "Route filter change operation data" }, "RouteFiltersChangeOperation": { "required": [ @@ -22350,7 +25921,7 @@ "$ref": "#/components/schemas/RouteFiltersBase" } }, - "description": "Route Filter change operation data" + "description": "Route filter change operation data" }, "RouteFilterConnectionsData": { "type": "object", @@ -22366,7 +25937,7 @@ }, "uuid": { "type": "string", - "description": "Route Filter identifier", + "description": "Route filter identifier", "format": "uuid", "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" }, @@ -22378,7 +25949,7 @@ }, "RouteFilterRuleState": { "type": "string", - "description": "Route Filter Rule status", + "description": "Route filter rule status", "enum": [ "PROVISIONING", "REPROVISIONING", @@ -22418,7 +25989,7 @@ "format": "uri" } }, - "description": "Current state of latest Route Filter Rule change" + "description": "Current state of latest route filter rule change" }, "RouteFilterRulesPatchRequestItem": { "required": [ @@ -22443,7 +26014,7 @@ "description": "new value for updated parameter" } }, - "description": "Route Filter Rule change operation data" + "description": "Route filter rule change operation data" }, "RouteFilterRulesChangeOperation": { "required": [ @@ -22471,7 +26042,222 @@ "$ref": "#/components/schemas/RouteFilterRulesBase" } }, - "description": "Route Filter Rule change operation data" + "description": "Route filter rule change operation data" + }, + "RouteAggregationState": { + "type": "string", + "description": "Route Aggregation status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteAggregationsChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", + "BGP_IPv4_PREFIX_AGGREGATION_CREATION", + "BGP_IPv4_PREFIX_AGGREGATION_DELETION", + "BGP_IPv6_PREFIX_AGGREGATION_UPDATE", + "BGP_IPv6_PREFIX_AGGREGATION_CREATION", + "BGP_IPv6_PREFIX_AGGREGATION_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route AGGREGATION Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Route Aggregation change" + }, + "RouteAggregationsPatchRequestItem": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/name" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Route Aggregation change operation data" + }, + "RouteAggregationsChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "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/RouteAggregationsBase" + } + }, + "description": "Route Aggregation change operation data" + }, + "RouteAggregationConnectionsData": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Connection URI", + "format": "uri", + "example": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f" + }, + "type": { + "$ref": "#/components/schemas/ConnectionType" + }, + "uuid": { + "type": "string", + "description": "Route Aggregation identifier", + "format": "uuid", + "example": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d" + }, + "name": { + "type": "string", + "example": "connection-1" + } + } + }, + "RouteAggregationRuleState": { + "type": "string", + "description": "Route Aggregation Rule status", + "enum": [ + "PROVISIONING", + "REPROVISIONING", + "DEPROVISIONING", + "PROVISIONED", + "DEPROVISIONED", + "NOT_PROVISIONED", + "NOT_DEPROVISIONED" + ] + }, + "RouteAggregationRulesChange": { + "required": [ + "type", + "uuid" + ], + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Uniquely identifies a change" + }, + "type": { + "type": "string", + "description": "Type of change", + "enum": [ + "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE", + "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", + "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION" + ] + }, + "href": { + "type": "string", + "description": "Route Aggregation Change URI", + "format": "uri" + } + }, + "description": "Current state of latest Route Aggregation Rule change" + }, + "RouteAggregationRulesPatchRequestItem": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "op": { + "type": "string", + "description": "Handy shortcut for operation name", + "example": "replace" + }, + "path": { + "type": "string", + "description": "path to change", + "example": "/prefix" + }, + "value": { + "type": "object", + "description": "new value for updated parameter" + } + }, + "description": "Route Aggregation Rule change operation data" + }, + "RouteAggregationRulesChangeOperation": { + "required": [ + "op", + "path", + "value" + ], + "type": "object", + "properties": { + "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/RouteAggregationRulesBase" + } + }, + "description": "Route Aggregation Rule change operation data" }, "SimplifiedLocationWithoutIBX": { "required": [ @@ -22479,9 +26265,10 @@ ], "type": "object", "properties": { - "href": { + "metroHref": { "type": "string", - "description": "The Canonical URL at which the resource resides." + "description": "The Canonical URL at which the resource resides.", + "example": "https://api.equinix.com/fabric/v4/metros/AM" }, "region": { "type": "string", @@ -22624,7 +26411,7 @@ }, "CloudRouterActionType": { "type": "string", - "description": "Cloud Router action type", + "description": "Cloud router action type", "enum": [ "BGP_SESSION_STATUS_UPDATE", "ROUTE_TABLE_ENTRY_UPDATE", @@ -22648,12 +26435,12 @@ "properties": { "bgpIpv4RoutesCount": { "type": "integer", - "description": "IPV4 Route Count", + "description": "IPV4 route count", "example": 6 }, "bgpIpv6RoutesCount": { "type": "integer", - "description": "IPV6 Route Count", + "description": "IPV6 route count", "example": 6 } }, @@ -23167,6 +26954,23 @@ }, "description": "Fabric Connection Precision Time Service Response Object" }, + "precisionTimePrice": { + "title": "precisionTimePrice", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "offering price currency" + }, + "charges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PriceCharge" + } + } + }, + "description": "Precision Time Price" + }, "connectionLink": { "type": "object", "properties": { @@ -23464,7 +27268,8 @@ "VIRTUAL_CONNECTION_PRODUCT", "IP_BLOCK_PRODUCT", "VIRTUAL_PORT_PRODUCT", - "CLOUD_ROUTER_PRODUCT" + "CLOUD_ROUTER_PRODUCT", + "PRECISION_TIME_PRODUCT" ] }, "PriceCharge": { @@ -23597,6 +27402,26 @@ }, "description": "Preferences and settings for a virtual port connected to an internet service provider (ISP) or other Equinix platform entity." }, + "TimeServicePrice": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Precision Time Service Type refers to the corresponding Protocol.", + "enum": [ + "NTP", + "PTP" + ] + }, + "package": { + "$ref": "#/components/schemas/precisionTimePackageRequest" + }, + "connection": { + "$ref": "#/components/schemas/TimeServicePriceConnection" + } + }, + "description": "Time Service Product configuration" + }, "ServiceTokenSide": { "type": "object", "properties": { @@ -23774,7 +27599,7 @@ ] }, "keyNumber": { - "maximum": 65534, + "maximum": 65535, "minimum": 1, "type": "integer", "description": "The authentication Key ID.", @@ -23817,6 +27642,12 @@ "SimplifiedPort": { "type": "object", "properties": { + "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 + }, "type": { "$ref": "#/components/schemas/PortType" }, @@ -23824,12 +27655,6 @@ "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", @@ -24194,6 +28019,9 @@ "properties": { "metroCode": { "type": "string" + }, + "ibx": { + "type": "string" } } }, @@ -24274,6 +28102,15 @@ }, "description": "Port configuration." }, + "TimeServicePriceConnection": { + "type": "object", + "properties": { + "aSide": { + "$ref": "#/components/schemas/TimeServicePriceConnectionASide" + } + }, + "description": "Time Service Price Connection configuration" + }, "AccessPointSelector": { "type": "object", "properties": { @@ -24286,6 +28123,10 @@ "NETWORK" ] }, + "hideAssetInfo": { + "type": "boolean", + "deprecated": true + }, "port": { "$ref": "#/components/schemas/SimplifiedMetadataEntity" }, @@ -24356,6 +28197,15 @@ "REMOTE" ] }, + "TimeServicePriceConnectionASide": { + "type": "object", + "properties": { + "accessPoint": { + "$ref": "#/components/schemas/TimeServicePriceConnectionAccessPoint" + } + }, + "description": "Time Service Price Connection ASide configuration" + }, "SimplifiedMetadataEntity": { "type": "object", "properties": { @@ -24495,6 +28345,15 @@ } } }, + "TimeServicePriceConnectionAccessPoint": { + "type": "object", + "properties": { + "location": { + "$ref": "#/components/schemas/PriceLocation" + } + }, + "description": "Time Service Price Connection Access Point configuration" + }, "PriceError_additionalInfo": { "type": "object", "properties": { @@ -24536,6 +28395,35 @@ } } }, + "RouteAggregationsData_project": { + "required": [ + "projectId" + ], + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "Subscriber-assigned project ID", + "example": "44f4c4f8-2f39-494e-838c-d8e640591be5" + }, + "href": { + "type": "string", + "description": "Project URI", + "format": "uri" + } + } + }, + "RouteAggregationsSearchBase_filter": { + "type": "object", + "properties": { + "and": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RouteAggregationsSearchFilterItem" + } + } + } + }, "ValidateRequest_filter_and": { "properties": { "property": { @@ -27828,6 +31716,105 @@ ] } }, + "CreateConnectionDryRunRequest": { + "value": { + "type": "EVPL_VC", + "name": "My-EVPL-Connection", + "bandwidth": 500, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "uuid": "2a4fb415-5a7f-436f-bae6-02f5e403deec" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1137 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "type": "L2_PROFILE", + "uuid": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "location": { + "metroCode": "DC" + } + } + }, + "project": { + "projectId": 41418 + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, + "CreateConnectionDryRunResponse": { + "value": { + "type": "EVPL_VC", + "name": "My-EVPL-Connection", + "bandwidth": 500, + "redundancy": { + "priority": "PRIMARY" + }, + "aSide": { + "accessPoint": { + "type": "COLO", + "port": { + "href": "https://api.equinix.com/fabric/v4/ports/2a4fb415-5a7f-436f-bae6-02f5e403deec", + "uuid": "2a4fb415-5a7f-436f-bae6-02f5e403deec" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1137 + } + } + }, + "zSide": { + "accessPoint": { + "type": "SP", + "profile": { + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/92dc376a-a932-43aa-a6a2-c806dedbd784", + "type": "L2_PROFILE", + "uuid": "92dc376a-a932-43aa-a6a2-c806dedbd784" + }, + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/DC", + "metroCode": "DC" + } + } + }, + "project": { + "projectId": 41418 + }, + "order": { + "purchaseOrderNumber": "1-129105284100" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@test.com" + ] + } + ] + } + }, "ConnectionExample": { "value": { "href": "https://api.equinix.com/fabric/v4/connections/3a58dd05-f46d-4b1d-a154-2e85c396ea62", @@ -28159,7 +32146,7 @@ }, "Vd2ServiceToken_Response": { "value": { - "href": "http://api.corp.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", + "href": "https://api.equinix.com/fabric/v4/connections/ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", "type": "EVPL_VC", "uuid": "ebc37e2e-c36b-4e93-86a4-fc4efce7abc8", "name": "Test ST", @@ -28222,7 +32209,7 @@ "metroCode": "DC" }, "port": { - "href": "http://api.corp.equinix.com/fabric/v4/ports/c791f8cb-59d0-9d00-8ce0-306a5c00a4ee", + "href": "https://api.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" }, @@ -29124,7 +33111,7 @@ "Metal2Sp-IBM-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a", + "href": "https://api.equinix.com/fabric/v4/connections/f0e56501-d92f-4ca3-b047-f95628d4a32a", "uuid": "f0e56501-d92f-4ca3-b047-f95628d4a32a", "name": "Metal2IBM-Connection", "operation": { @@ -29174,7 +33161,7 @@ "metroCode": "SV" }, "profile": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026", + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/317dcd1c-83ba-4d7c-994a-3e7ddb875026", "type": "L2_PROFILE", "name": "IBM Cloud Direct Link 2", "uuid": "317dcd1c-83ba-4d7c-994a-3e7ddb875026" @@ -29188,7 +33175,7 @@ "Metal2Port-Dot1q-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd", + "href": "https://api.equinix.com/fabric/v4/connections/02b7b7d4-1726-4451-9598-e28091c096cd", "uuid": "02b7b7d4-1726-4451-9598-e28091c096cd", "name": "Metal2Port-dot1q", "operation": { @@ -29238,8 +33225,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "uuid": "6c73d02c-87e1-4642-8e18-01eb4b87e243", "name": "290061-SV1-CX-SEC-01" }, @@ -29254,7 +33241,7 @@ "Metal2Port-Qinq-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d", + "href": "https://api.equinix.com/fabric/v4/connections/d87489aa-c32d-4756-a81a-6f557afb871d", "uuid": "d87489aa-c32d-4756-a81a-6f557afb871d", "name": "Metal2Port-qinq", "operation": { @@ -29304,8 +33291,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/4ff4047c-7217-4b79-9943-c2c4a2f7324d", "uuid": "4ff4047c-7217-4b79-9943-c2c4a2f7324d", "name": "290061-SV1-CX-PRI-02" }, @@ -29321,7 +33308,7 @@ "Metal2ServiceToken-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", + "href": "https://api.equinix.com/fabric/v4/connections/f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", "uuid": "f712745e-ccf9-4a0d-9e4d-83c1bb5b9028", "name": "Metal2ServiceToken", "operation": { @@ -29367,7 +33354,7 @@ }, "zSide": { "serviceToken": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90", + "href": "https://api.equinix.com/fabric/v4/serviceTokens/bc1383be-579a-4d75-ae19-b0d487bbff90", "uuid": "bc1383be-579a-4d75-ae19-b0d487bbff90", "project": { "projectId": "377533000114703" @@ -29378,8 +33365,8 @@ "metroCode": "SV" }, "port": { + "href": "https://api.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "type": "XF_PORT", - "href": "http://qa3api.corp.equinix.com/fabric/v4/ports/6c73d02c-87e1-4642-8e18-01eb4b87e243", "uuid": "6c73d02c-87e1-4642-8e18-01eb4b87e243", "name": "290061-SV1-CX-SEC-01" }, @@ -29394,7 +33381,7 @@ "Metal2Sp-Generic-Response": { "value": { "type": "EVPL_VC", - "href": "http://qa3api.corp.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", + "href": "https://api.equinix.com/fabric/v4/connections/1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", "uuid": "1a9ffa8f-d4d4-44ab-9733-362c9a36ec94", "name": "Metal2Generic", "operation": { @@ -29444,7 +33431,7 @@ "metroCode": "SV" }, "profile": { - "href": "http://qa3api.corp.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d", + "href": "https://api.equinix.com/fabric/v4/serviceProfiles/f1a247aa-8f86-4a89-88c2-72497686cd0d", "type": "L2_PROFILE", "name": "Generic Service Profile", "uuid": "f1a247aa-8f86-4a89-88c2-72497686cd0d" @@ -30076,6 +34063,20 @@ } } }, + "400_dry_run": { + "value": [ + { + "errorCode": "EQ-3142411", + "errorMessage": "Dry run is not supported for this connection type", + "correlationId": "1012536-0000-108258589231-api", + "additionalInfo": [ + { + "reason": "queryParam:dryRun" + } + ] + } + ] + }, "createBulkGeneric": { "value": { "data": [ @@ -35207,6 +39208,178 @@ } } }, + "PrecisionTimeNtpStandardPackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "NTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "NTP_STANDARD" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, + "PrecisionTimeNtpEnterprisePackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "NTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "NTP_ENTERPRISE" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/metroCode", + "operator": "=", + "values": [ + "CH" + ] + } + ] + } + } + }, + "PrecisionTimePtpStandardPackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "PTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "PTP_STANDARD" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, + "PrecisionTimePtpEnterprisePackage": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "PRECISION_TIME_PRODUCT" + ] + }, + { + "property": "/account/accountNumber", + "operator": "=", + "values": [ + "270001" + ] + }, + { + "property": "/timeService/type", + "operator": "=", + "values": [ + "PTP" + ] + }, + { + "property": "/timeService/package/code", + "operator": "=", + "values": [ + "PTP_ENTERPRISE" + ] + }, + { + "property": "/connection/aSide/accessPoint/location/ibx", + "operator": "=", + "values": [ + "CH3" + ] + } + ] + } + } + }, "VirtualConnection": { "value": { "pagination": { @@ -35377,6 +39550,49 @@ ] } }, + "PrecisionTimeService": { + "value": { + "pagination": { + "offset": 0, + "limit": 1, + "total": 1 + }, + "data": [ + { + "type": "PRECISION_TIME_PRODUCT", + "code": "EDG00009.PROD", + "name": "Equinix Precision Time Product", + "description": "Equinix Precision Time Product", + "account": { + "accountNumber": 270001 + }, + "charges": [ + { + "type": "MONTHLY_RECURRING", + "price": 495 + } + ], + "currency": "USD", + "timeService": { + "type": "NTP", + "package": { + "code": "NTP_STANDARD" + }, + "connection": { + "aSide": { + "accessPoint": { + "location": { + "metroCode": "CH", + "ibx": "CH3" + } + } + } + } + } + } + ] + } + }, "400_prices": { "value": [ { @@ -37442,103 +41658,52 @@ ] } }, - "createServiceTokenWithVxlan": { - "value": { - "type": "VC_TOKEN", - "name": "Az_Aside_VxLAN_Pri_SV", - "description": "Az_Aside_VxLAN_Pri_SV_Description", - "expirationDateTime": "2021-03-18T06:43:49.980Z", - "connection": { - "type": "EVPL_VC", - "allowRemoteConnection": true, - "bandwidthLimit": 50, - "allowCustomBandwidth": false, - "aSide": { - "accessPointSelectors": [ - { - "type": "COLO", - "port": { - "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" - }, - "linkProtocol": { - "type": "VXLAN", - "vlanTag": 510000 - } - } - ] - } - }, - "notifications": [ - { - "type": "NOTIFICATION", - "emails": [ - "abc@company.com", - "provider@company.com" - ] - } - ] - } - }, - "createZsideServiceTokenWithQnQ": { + "createServiceTokenWithVxlan": { "value": { "type": "VC_TOKEN", - "name": "Az_Zside_Dot1Q_Pri_SV", - "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", + "name": "Az_Aside_VxLAN_Pri_SV", + "description": "Az_Aside_VxLAN_Pri_SV_Description", + "expirationDateTime": "2021-03-18T06:43:49.980Z", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, - "supportedBandwidths": [ - 10, - 50, - 200, - 500, - 1000, - 2000, - 5000, - 10000, - 25000, - 50000 - ], - "zSide": { + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { - "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" }, "linkProtocol": { - "type": "QINQ", - "vlanCTag": 1399, - "vlanSTag": 1388 + "type": "VXLAN", + "vlanTag": 510000 } } ] } }, - "expirationDateTime": "2021-03-18T06:43:49.980Z", "notifications": [ { "type": "NOTIFICATION", "emails": [ - "abc@company.com" + "abc@company.com", + "provider@company.com" ] } ] } }, - "createZsideServiceTokenWithQnQ-CRH": { + "createZsideServiceTokenWithQnQ": { "value": { "type": "VC_TOKEN", "name": "Az_Zside_Dot1Q_Pri_SV", "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, + "allowCustomBandwidth": false, "supportedBandwidths": [ 10, 50, @@ -37555,7 +41720,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37574,7 +41738,6 @@ "project": { "projectId": "30ad25e2-53dc-11ed-bdc3-0242ac120002" }, - "expiry": 1, "expirationDateTime": "2021-03-18T06:43:49.980Z", "notifications": [ { @@ -37591,11 +41754,10 @@ "type": "VC_TOKEN", "name": "Az_Zside_Dot1Q_Pri_SV", "description": "Az_Zside_Dot1Q_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, - "allowCustombandwidth": false, + "allowCustomBandwidth": false, "supportedBandwidths": [ 10, 50, @@ -37612,7 +41774,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37640,7 +41801,6 @@ "type": "VC_TOKEN", "name": "Az_Zside_VxLAN_Pri_SV", "description": "Az_Zside_VxLAN_Pri_SV_Description", - "issuerSide": "Z_Side", "connection": { "type": "EVPL_VC", "allowRemoteConnection": true, @@ -37661,7 +41821,6 @@ "accessPointSelectors": [ { "type": "COLO", - "hideAssetInfo": false, "port": { "uuid": "b840a1db-5413-413f-97e0-328a5c00a874" }, @@ -37768,6 +41927,81 @@ ] } }, + "createServiceTokenDryRunRequest": { + "value": { + "type": "VC_TOKEN", + "name": "Aside_Dot1Q_Service_Token", + "description": "Az_Aside_Dot1Q_DryRun_Description", + "expirationDateTime": "2024-12-18T06:43:49.980Z", + "connection": { + "type": "EVPL_VC", + "allowRemoteConnection": false, + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { + "accessPointSelectors": [ + { + "type": "COLO", + "port": { + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1399 + } + } + ] + } + }, + "notifications": [ + { + "type": "NOTIFICATION", + "emails": [ + "abc@company.com", + "provider@company.com" + ] + } + ] + } + }, + "createServiceTokenDryRunResponse": { + "value": { + "type": "VC_TOKEN", + "name": "Aside_Dot1Q_Service_Token", + "description": "Az_Aside_Dot1Q_DryRun_Description", + "expirationDateTime": "2024-12-18T06:43:49.980Z", + "connection": { + "type": "EVPL_VC", + "allowRemoteConnection": false, + "bandwidthLimit": 50, + "allowCustomBandwidth": false, + "aSide": { + "accessPointSelectors": [ + { + "type": "COLO", + "port": { + "href": "http://api.equinix.com/fabric/v4/ports/b840a1db-5758-758f-97e0-328a5c00a874", + "uuid": "b840a1db-5758-758f-97e0-328a5c00a874" + }, + "linkProtocol": { + "type": "DOT1Q", + "vlanTag": 1399 + } + } + ] + } + }, + "notifications": [ + { + "type": "NOTIFICATION", + "emails": [ + "abc@company.com", + "provider@company.com" + ] + } + ] + } + }, "Resend_Service_Token": { "value": { "type": "RESEND_EMAIL_NOTIFICATION" @@ -38065,6 +42299,23 @@ } ] }, + "ibxByMetro": { + "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 1 + }, + "data": [ + { + "href": "https://api.equinix.com/v4/fabric/metros/AM/ibxs/AM1", + "type": "XF_IBX", + "code": "AM1", + "isTimeServiceEnabled": true + } + ] + } + }, "ports": { "value": { "pagination": { @@ -38235,25 +42486,424 @@ } } }, - "physicalPorts": [ + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOSinglePortLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOLagPortNewGroup": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + }, + { + "demarcationPoint": { + "ibx": "GV1", + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "connectorType": "SC" + } + } + ] + } + }, + "COLOAddSecondaryPort": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 10000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "COLO", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false, + "sharedPortProduct": null + }, + "redundancy": { + "priority": "SECONDARY", + "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": 567 + }, + "account": { + "accountNumber": 1000 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.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" + ] + } + ], + "physicalPorts": [ + { + "demarcationPoint": { + "ibx": "AM1", + "cabinet": "AM1:02:032575:0105", + "cage": "AM1:02:032575", + "patchPanel": "PP:0105:1260379", + "patchPanelPortA": 14, + "patchPanelPortB": 15, + "connectorType": "LC" + } + } + ] + } + }, + "REMOTESinglePortNewGroupLagRequest": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "REMOTE", + "physicalPortsCount": 1, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "settings": { + "packageType": "STANDARD", + "sharedPortType": false + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } + } + }, + "BMMRSinglePortLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF", + "physicalPortsCount": 1, + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": true, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" + } + ], + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } + } + }, + "BMMRSinglePortNoLag": { + "value": { + "type": "XF_PORT", + "physicalPortsSpeed": 1000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "location": { + "metroCode": "GV" + }, + "demarcationPointIbx": "GV1", + "package": { + "code": "STANDARD" + }, + "lagEnabled": false, + "encapsulation": { + "type": "DOT1Q", + "tagProtocolId": 33024 + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "account": { + "accountNumber": 270848 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "TECHNICAL" + } + ], + "loas": [ + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + }, + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" } ] } }, - "COLOSinglePortLag": { + "BMMRAddSecondaryPort": { "value": { "type": "XF_PORT", - "physicalPortsSpeed": 1000, + "physicalPortsSpeed": 10000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF|EQUINIX", "location": { "metroCode": "GV" }, @@ -38261,25 +42911,24 @@ "package": { "code": "STANDARD" }, - "lagEnabled": true, + "settings": { + "sharedPortProduct": "NETWORK_EDGE" + }, + "redundancy": { + "priority": "SECONDARY", + "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + }, + "lagEnabled": false, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "projectId": 567 }, "account": { - "accountNumber": 270848 + "accountNumber": 1000 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], "order": { "purchaseOrder": { "number": 156576, @@ -38297,25 +42946,50 @@ } } }, - "physicalPorts": [ + "notifications": [ { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "PEERING", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "ESCALATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } + ], + "loas": [ + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + }, + { + "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" } ] } }, - "COLOLagPortNewGroup": { + "BMMRLagPortNewGroup": { "value": { "type": "XF_PORT", "physicalPortsSpeed": 1000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "connectivitySourceType": "BMMR", + "bmmrType": "SELF", + "physicalPortsCount": 1, "location": { "metroCode": "GV" }, @@ -38358,75 +43032,49 @@ "email": "john.doe@company.com" } } - }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } - }, - { - "demarcationPoint": { - "ibx": "GV1", - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "connectorType": "SC" - } - } - ] + } } }, - "COLOAddSecondaryPort": { + "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, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", + "physicalPortsCount": 1, "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortType": false, - "sharedPortProduct": null + "metroCode": "AM" }, + "demarcationPointIbx": "AM1", "redundancy": { - "priority": "SECONDARY", - "group": "1f6bdb37-f131-5925-c039-fe1785fad165" + "group": 1, + "priority": "PRIMARY" }, "lagEnabled": false, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, "project": { - "projectId": 567 + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" }, "account": { "accountNumber": 1000 }, "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, + "orderNumber": "1-207799950758", "signature": { "signatory": "DELEGATE", "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + "email": "testEmail1@equinix.com" } } }, @@ -38444,1766 +43092,2212 @@ ] }, { - "type": "PEERING", - "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" + } + ] + }, + "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" + } + ] + }, + "COLOBulkPort": { + "value": { + "data": [ + { + "type": "XF_PORT", + "name": "L2-DEV-USER01-CX-10G-PRIMARY", + "description": "Test Redundant port in Amsterdam", + "physicalPortsSpeed": 10000, + "physicalPortsType": "1000BASE_LX", + "connectivitySourceType": "BMMR", + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "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": "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "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": [ + { + "href": "https://api.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, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "href": "https://api.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, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + }, + "package": { + "code": "STANDARD" + }, + "settings": { + "sharedPortType": false + }, + "notifications": [ + { + "type": "TECHNICAL", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + }, + { + "type": "NOTIFICATION", + "registeredUsers": [ + "jaguarsuser-port-order" + ] + } ] } - ], - "physicalPorts": [ + ] + } + }, + "COLOAddToLag": { + "value": { + "data": [ { + "type": "XF_PHYSICAL_PORT", "demarcationPoint": { "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } + ] + }, + { + "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-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } + ] } ] } }, - "REMOTESinglePortNewGroupLagRequest": { + "REMOTEAddToLag": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "REMOTE", - "physicalPortsCount": 1, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "settings": { - "packageType": "STANDARD", - "sharedPortType": false - }, - "lagEnabled": true, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "notifications": [ + "data": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "type": "XF_PHYSICAL_PORT", + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + }, + "account": { + "accountReferenceId": "17829Id" + } + }, { - "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + { + "type": "XF_PHYSICAL_PORT", + "account": { + "accountReferenceId": "17829Id" } + }, + { + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] } - } + ] } }, - "BMMRSinglePortLag": { + "BMMRAddToLag": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF", - "physicalPortsCount": 1, - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "lagEnabled": true, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "data": [ { - "uuid": "396e93c2-3b3a-4d47-a9d9-1ea68627374b" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } } - } - } - } - }, - "BMMRSinglePortNoLag": { - "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 1000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "account": { - "accountNumber": 270848 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "notifications": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "loas": [ + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] + }, { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" + "type": "XF_PHYSICAL_PORT", + "account": { + "accountNumber": 17829 + }, + "order": { + "purchaseOrder": { + "number": 156576, + "amount": 10, + "startDate": "2018-06-11T22:25:52.206Z", + "endDate": "2018-07-11T22:25:52.206Z", + "type": "NEW" + }, + "signature": { + "signatory": "DELEGATE", + "delegate": { + "firstName": "John", + "lastName": "Doe", + "email": "john.doe@company.com" + } + } + } }, { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" + "loas": [ + { + "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" + } + ] } ] } }, - "BMMRAddSecondaryPort": { + "COLOAddToLagResponse": { "value": { - "type": "XF_PORT", - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF|EQUINIX", - "location": { - "metroCode": "GV" - }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortProduct": "NETWORK_EDGE" - }, - "redundancy": { - "priority": "SECONDARY", - "group": "1f6bdb37-f131-5925-c039-fe1785fad165" - }, - "lagEnabled": false, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 - }, - "project": { - "projectId": 567 - }, - "account": { - "accountNumber": 1000 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, + "data": [ { - "type": "PEERING", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "39", + "patchPanelPortB": "40", + "connectorType": "SC", + "ibx": "GV1" + }, + "order": { + "orderNumber": "1-210210611904" + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } ] }, { - "type": "ESCALATION", - "registeredUsers": [ - "jaguarsuser-port-order" + "type": "XF_PHYSICAL_PORT", + "demarcationPoint": { + "cabinetUniqueSpaceId": "Demarc", + "cageUniqueSpaceId": "GV1:01:002174", + "patchPanel": "CP:Demarc:1259684", + "patchPanelPortA": "41", + "patchPanelPortB": "42", + "connectorType": "SC", + "ibx": "GV1" + }, + "order": { + "orderNumber": "1-210210611904" + }, + "notifications": [ + { + "registeredUsers": [ + "jaguarsuser-port-order" + ], + "type": "NOTIFICATION" + } ] } - ], - "loas": [ - { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c3" - }, - { - "uuid": "f47a6f46-e3f8-430e-9459-bfcc0f54f3c4" - } ] } }, - "BMMRLagPortNewGroup": { + "portByUUID": { "value": { + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", "type": "XF_PORT", - "physicalPortsSpeed": 1000, + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "ACTIVE", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, + "physicalPortsSpeed": 10000, "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "bmmrType": "SELF", - "physicalPortsCount": 1, + "connectivitySourceType": "COLO", + "redundancy": { + "group": "1", + "priority": "Secondary" + }, "location": { - "metroCode": "GV" + "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", + "ibx": "AT1", + "metroCode": "AT", + "metroName": "Atlanta", + "region": "AMER" }, - "demarcationPointIbx": "GV1", - "package": { - "code": "STANDARD" + "device": { + "name": "dev-m7a2.lab", + "redundancy": { + "group": "1", + "priority": "Secondary" + } }, - "lagEnabled": true, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "lagEnabled": true, + "package": { + "code": "STANDARD", + "type": "MSP" }, - "account": { - "accountNumber": 270848 + "settings": { + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true }, - "notifications": [ + "physicalPorts": [ { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "TECHNICAL" - } - ], - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" + "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" + } }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" + { + "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", + "opStatusChangedAt": "2021-06-14T17:21:25.586Z", + "connectionCount": 0, + "evplVcCount": 0, + "fgVcCount": 0, + "accessVcCount": 0 + }, + "account": { + "accountNumber": 100179, + "accountName": "L2", + "globalCustId": "007700000090982RG8", + "orgId": 100179, + "organizationName": "Cust_Org_100179" + }, + "changeLog": { + "createdDateTime": "2018-06-14T17:21:25.587Z" + }, + "project": { + "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" } } }, - "COLOSinglePortNonLagResponse": { + "portDelete": { "value": { - "href": "https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166", + "href": "https://api.equinix.com/fabric/v4/ports/e91484bb-4f65-4ab3-8f77-500dec2f855d", "type": "XF_PORT", - "uuid": "0f6bdb36-e130-4924-b038-ee1785fad166", - "state": "PENDING", - "physicalPortsType": "10GBASE_L", - "physicalPortsSpeed": 10000, - "physicalPortsCount": 1, - "location": { - "metroCode": "AM" - }, - "demarcationPointIbx": "AM1", + "uuid": "e91484bb-4f65-4ab3-8f77-500dec2f855d", + "name": "test-AT1-Dot1q-L-Secondary-108608", + "state": "DEPROVISIONING", + "bandwidth": 10000, + "usedBandwidth": 0, + "availableBandwidth": 20000, "redundancy": { - "group": 1, + "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", "priority": "PRIMARY" }, - "lagEnabled": false, + "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": "C91484bb-4f65-4ab3-8f77-500dec2f855C", + "priority": "PRIMARY" + } + }, "encapsulation": { "type": "DOT1Q", "tagProtocolId": 33024 }, - "package": { - "code": "STANDARD" - }, + "lagEnabled": true, "settings": { - "sharedPortType": false - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "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" - } - ] - }, - "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" + "buyout": false, + "placeVcOrderPermission": true, + "viewPortPermission": true }, - { - "errorCode": "EQ-3143008", - "errorMessage": "virtual Port not found", - "details": "connectionDetails[%s].patchPanelName is not valid" - } - ] - }, - "COLOBulkPort": { - "value": { - "data": [ + "physicalPorts": [ { - "type": "XF_PORT", - "name": "L2-DEV-USER01-CX-10G-PRIMARY", - "description": "Test Redundant port in Amsterdam", - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "BMMR", - "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-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "state": "DEPROVISIONING", + "type": "XF_PHYSICAL_PORT", + "bandwidth": 10000, + "tether": { + "crossConnectId": "100179-A", + "patchPanel": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" }, - "redundancy": { - "priority": "PRIMARY" + "demarcationPoint": { + "ibx": "AT1", + "patchPanel": "PP:8118:1586", + "patchPanelName": "PP:8118:1586", + "patchPanelPortA": "92", + "patchPanelPortB": "24" + } + } + ], + "account": { + "accountNumber": 100179, + "accountName": "L2 account", + "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, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee" }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "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 + "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" }, - "account": { - "accountNumber": 1000 + "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 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanSTag": 1000, + "vlanCTag": 500, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65" }, - "redundancy": { - "priority": "SECONDARY" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "QINQ", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanSTag": 1001, + "vlanCTag": 1001, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95" }, - "physicalPorts": [ - { - "demarcationPoint": { - "ibx": "AM1", - "cabinet": "AM1:02:032575:0105", - "cage": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 14, - "patchPanelPortB": 15, - "connectorType": "LC" - } - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOBulkPortResponse": { + "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": [ { - "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 + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTag": 200, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, "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, - "package": { - "code": "STANDARD" - }, - "settings": { - "sharedPortType": false - }, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" - }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ] + "createdDateTime": "2020-05-21T10:30:00Z" + } }, { - "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 + "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": { - "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, - "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "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 }, - "package": { - "code": "STANDARD" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTag": 240, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "settings": { - "sharedPortType": false + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTag": 240, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 }, - "notifications": [ - { - "type": "TECHNICAL", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - }, - { - "type": "NOTIFICATION", - "registeredUsers": [ - "jaguarsuser-port-order" - ] - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } } ] } }, - "COLOAddToLag": { + "LinkProtocolGetVlanRangeResponseExample": { "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", - "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 + "type": "DOT1Q", + "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", + "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "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 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] + "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 }, - "demarcationPoint": { - "ibx": "AM1", - "cabinetUniqueSpaceId": "AM1:02:032575:0105", - "cageUniqueSpaceId": "AM1:02:032575", - "patchPanel": "PP:0105:1260379", - "patchPanelPortA": 16, - "patchPanelPortB": 17, - "connectorType": "LC" + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", + "bandwidth": 1000 }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z" + } + }, + { + "type": "DOT1Q", + "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", + "state": "RESERVED", + "vlanTagMin": 177, + "vlanTagMax": 179, + "asset": { + "href": "https://api.equinix.com/fabric/v4/connections/3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "uuid": "3268d105-e57b-4b2b-8a0a-2e3e42312d95", + "bandwidth": 1000 }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] + "changeLog": { + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } + ] + } + }, + "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": { + "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": [ + { + "property": "/device/name", + "direction": "DESC" } ] } }, - "REMOTEAddToLag": { + "ConnectionRouteAggregationsGetAll": { "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - }, - "account": { - "accountReferenceId": "17829Id" - } + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/52f7791a-fe90-49bc-8807-18b3d6eda566", + "type": "BGP_IPv6_PREFIX_AGGREGATION", + "uuid": "52f7791a-fe90-49bc-8807-18b3d6eda566", + "attachmentStatus": "ATTACHED" }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountReferenceId": "17829Id" - } + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "8b67bf1c-7afa-4a9e-98c3-d5ab17da6652", + "attachmentStatus": "ATTACHED" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/65d74639-8f48-4e10-9684-45d364645e97", + "type": "BGP_IPv6_PREFIX_AGGREGATION", + "uuid": "65d74639-8f48-4e10-9684-45d364645e97", + "attachmentStatus": "ATTACHED" } ] } }, - "BMMRAddToLag": { + "400_invalid_input": { + "value": [ + { + "errorCode": "EQ-3044305", + "errorMessage": "Invalid input", + "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", + "additionalInfo": [ + { + "property": "type" + } + ] + } + ] + }, + "AttachConnectionRouteAggregationsResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "ATTACHING" + } + }, + "400_transient_state": { + "value": [ + { + "errorCode": "EQ-3044008", + "errorMessage": "Cannot attach or detach route aggregation with connection in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot attach or detach route aggregation with connection in transient state" + } + ] + }, + "DetachConnectionRouteAggregationResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "attachmentStatus": "DETACHING" + } + }, + "ConnectionRouteFiltersGetAll": { "value": { + "pagination": { + "offset": 0, + "limit": 20, + "total": 4, + "next": null, + "previous": null + }, "data": [ { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - } + "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" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "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" }, { - "type": "XF_PHYSICAL_PORT", - "account": { - "accountNumber": 17829 - }, - "order": { - "purchaseOrder": { - "number": 156576, - "amount": 10, - "startDate": "2018-06-11T22:25:52.206Z", - "endDate": "2018-07-11T22:25:52.206Z", - "type": "NEW" - }, - "signature": { - "signatory": "DELEGATE", - "delegate": { - "firstName": "John", - "lastName": "Doe", - "email": "john.doe@company.com" - } - } - } + "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" }, { - "loas": [ - { - "uuid": "64de7e5-7fe7-41e6-b984-80d5aa159a0e" - } - ] + "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" } ] } }, - "COLOAddToLagResponse": { + "AttachConnectionRouteFiltersResponse": { "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" - }, - "order": { - "orderNumber": "1-210210611904" - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] - }, - { - "type": "XF_PHYSICAL_PORT", - "demarcationPoint": { - "cabinetUniqueSpaceId": "Demarc", - "cageUniqueSpaceId": "GV1:01:002174", - "patchPanel": "CP:Demarc:1259684", - "patchPanelPortA": "41", - "patchPanelPortB": "42", - "connectorType": "SC", - "ibx": "GV1" - }, - "order": { - "orderNumber": "1-210210611904" - }, - "notifications": [ - { - "registeredUsers": [ - "jaguarsuser-port-order" - ], - "type": "NOTIFICATION" - } - ] - } - ] + "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" } }, - "portByUUID": { + "AttachConnectionRouteFilterInbound": { "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", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "physicalPortsSpeed": 10000, - "physicalPortsType": "1000BASE_LX", - "connectivitySourceType": "COLO", - "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, - "package": { - "code": "STANDARD", - "type": "MSP" - }, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true - }, - "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" - } - }, - { - "state": "PROVISIONED", - "type": "XF_PHYSICAL_PORT", - "id": 6968, - "bandwidth": 10000, - "tether": { - "crossConnectId": "100179-A", - "patchPanel": "PP:8118:1586", - "patchPanelPortA": "92", - "patchPanelPortB": "24" + "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" } - } - ], - "operation": { - "operationalStatus": "UP", - "opStatusChangedAt": "2021-06-14T17:21:25.586Z", - "connectionCount": 0, - "evplVcCount": 0, - "fgVcCount": 0, - "accessVcCount": 0 - }, - "account": { - "accountNumber": 100179, - "accountName": "L2", - "globalCustId": "007700000090982RG8", - "orgId": 100179, - "organizationName": "Cust_Org_100179" - }, - "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + ] + } + ] + }, + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, + "notifications": { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + } + }, + "RouteFilterCreateBgpIpv6Prefix": { + "value": { + "type": "BGP_IPv6_PREFIX_FILTER", + "name": "My-route-filter-v6", + "description": "Test filter", "project": { - "projectId": "8f23b36f-db8f-44c8-a6e5-606e1b485931" + "projectId": 567 } } }, - "portDelete": { + "RouteFilterCreateBgpIpv4PrefixResponse": { "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": "DEPROVISIONING", - "bandwidth": 10000, - "usedBandwidth": 0, - "availableBandwidth": 20000, - "redundancy": { - "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", - "priority": "PRIMARY" - }, - "location": { - "metroHref": "https://api.equinix.com/fabric/v4/metros/AT", - "ibx": "AT1", - "metroCode": "AT", - "metroName": "Atlanta", - "region": "AMER" + "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" }, - "device": { - "name": "dev-m7a2.lab", - "redundancy": { - "group": "C91484bb-4f65-4ab3-8f77-500dec2f855C", - "priority": "PRIMARY" - } + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, - "encapsulation": { - "type": "DOT1Q", - "tagProtocolId": 33024 + "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" }, - "lagEnabled": true, - "settings": { - "buyout": false, - "placeVcOrderPermission": true, - "viewPortPermission": true + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, - "physicalPorts": [ - { - "state": "DEPROVISIONING", - "type": "XF_PHYSICAL_PORT", - "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" - } - } - ], - "account": { - "accountNumber": 100179, - "accountName": "L2 account", - "globalCustId": "007700000090982RG8", - "orgId": 100179, - "organizationName": "Cust_Org_100179" + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { - "createdDateTime": "2018-06-14T17:21:25.587Z" + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z" } } }, - "LinkProtocolGetQinqResponseExample": { + "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": 5 + "total": 4, + "next": null, + "previous": null }, "data": [ { - "type": "QINQ", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanSTag": 1000, - "vlanCTag": 500, - "asset": { - "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, - "asset": { - "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" + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + } } }, { - "type": "QINQ", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanSTag": 1001, - "vlanCTag": 1001, - "asset": { - "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" - } + "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" + } + ] } ] } }, - "LinkProtocolGetDot1qResponseExample": { + "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": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + } + } + } + }, + "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": [ - { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTag": 200, - "asset": { - "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 + "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" + } + } + }, + "SearchRouteFiltersRequest": { + "value": { + "filter": { + "and": [ + { + "property": "/type", + "operator": "=", + "values": [ + "BGP_IPv4_PREFIX_FILTER" + ] }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" - } - }, - { - "type": "DOT1Q", - "uuid": "7c968801-e03b-4530-8424-aa5ecc4339e2", - "state": "RESERVED", - "vlanTag": 240, - "asset": { - "href": "https://api.equinix.com/fabric/v4/connections/2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "uuid": "2ac4e14f-6120-4705-886e-d37f1d0c6a65", - "bandwidth": 1000 + { + "property": "/name", + "operator": "like", + "values": [ + "%Route_Filter_Demo%" + ] }, - "changeLog": { - "createdDateTime": "2020-05-21T10:30:00Z" + { + "property": "/project/projectId", + "operator": "=", + "values": [ + "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + ] } - }, + ] + }, + "pagination": { + "offset": 1, + "limit": 2, + "total": 10 + }, + "sort": [ { - "type": "DOT1Q", - "uuid": "db812bba-94b8-43e6-8d9c-850f04350c3d", - "state": "RESERVED", - "vlanTag": 240, - "asset": { - "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" - } + "property": "/changeLog/updatedDateTime", + "direction": "DESC" } ] } }, - "LinkProtocolGetVlanRangeResponseExample": { + "SearchRouteFiltersResponse": { "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" + "offset": 1, + "limit": 2, + "total": 10, + "next": "/routeFilters?offset=3&limit=2", + "previous": "/routeFilters?offset=0&limit=2" }, "data": [ { - "type": "DOT1Q", - "uuid": "52d61263-fb0a-459d-a086-bc7fd6bd7384", - "state": "RESERVED", - "vlanTagMin": 177, - "vlanTagMax": 179, - "asset": { - "href": "https://api.equinix.com/fabric/v4/connections/cd67f685-41b0-1b07-6de0-320a5c00abee", - "uuid": "cd67f685-41b0-1b07-6de0-320a5c00abee", - "bandwidth": 1000 + "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_Route_Filter_Demo_1", + "description": "Test filter", + "state": "PROVISIONING", + "notMatchedRuleAction": "DENY", + "connectionsCount": 1, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "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 + "href": "https://api.equinix.com/fabric/v4/routeFilters/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_FILTER", + "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "name": "My_Route_Filter_Demo_2", + "description": "Test filter", + "state": "PROVISIONING", + "notMatchedRuleAction": "DENY", + "connectionsCount": 0, + "project": { + "href": "https://api.equinix.com/resourceManager/v1/projects/567", + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", "createdDateTime": "2020-05-21T10:30:00Z" } - }, + } + ] + } + }, + "RouteFilterRulesGetAll": { + "value": { + "pagination": { + "offset": 0, + "limit": 32, + "total": 2, + "next": null, + "previous": null + }, + "data": [ { - "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", + "state": "PROVISIONED", + "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, - "asset": { - "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", + "state": "PROVISIONED", + "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, - "asset": { - "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": { - "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" - } + "RouteFilterRuleCreateBgpIpv4Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" + } + }, + "RouteFilterRuleCreateBgpIpv6Prefix": { + "value": { + "name": "Private-subnet-filter", + "description": "Test rule", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "orlonger" + } + }, + "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", + "state": "PROVISIONING", + "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", + "updatedBy": "testuser", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" } - ] + } + }, + "RouteFilterRuleCreateBgpIpv6PrefixResponse": { + "value": { + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "state": "PROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_CREATION", + "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" + }, + "action": "PERMIT", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "exact", + "changeLog": { + "createdBy": "testuser", + "createdByEmail": "testuser@equinix.com", + "createdByFullName": "testuser testuser", + "createdDateTime": "2020-05-21T10:30:00Z", + "updatedBy": "testuser", + "updatedByEmail": "testuser@equinix.com", + "updatedByFullName": "testuser testuser", + "updatedDateTime": "2020-05-21T10:30:00Z" + } + } }, - "403-port-access": { + "400_bad_request": { "value": [ { - "errorCode": "EQ-3035002", - "errorMessage": "Access Forbidden", - "correlationId": "UnAuthorized User- Cannot perform action" + "errorCode": "EQ-3044013", + "errorMessage": "Invalid argument value passed", + "property": "prefixMatch", + "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" } ] }, - "PortSearchByProjectId": { + "UpdateRouteFilterRuleIPv4": { "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 - }, - "sort": [ - { - "property": "/device/name", - "direction": "DESC" - } - ] + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefix": "192.168.0.0/24", + "prefixMatch": "exact" } }, - "ConnectionRouteFiltersGetAll": { + "UpdateRouteFilterRuleIPv6": { "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" - } - ] + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "exact" } }, - "400_invalid_input": { - "value": [ - { - "errorCode": "EQ-3044101", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "type" - } - ] + "RouteFilterRuleReplaceIpv4Response": { + "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-update", + "description": "Test rule", + "prefixMatch": "exact", + "state": "REPROVISIONING", + "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" } - ] + } }, - "AttachConnectionRouteFiltersResponse": { + "RouteFilterRuleReplaceIpv6Response": { "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" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter-update", + "description": "Test rule", + "prefixMatch": "exact", + "state": "REPROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_UPDATE", + "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" + }, + "prefix": "2001:7a9::34f4:0:f3dd:1/128", + "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" + } } }, - "AttachConnectionRouteFilterInbound": { + "RouteFilterRuleDeleteBgpIpv4PrefixResponse": { "value": { - "direction": "INBOUND" + "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", + "state": "DEPROVISIONING", + "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", + "prefixMatch": "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" + } } }, - "AttachConnectionRouteFilterOutbound": { + "RouteFilterRuleDeleteBgpIpv6PrefixResponse": { "value": { - "direction": "OUTBOUND" + "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "uuid": "9890d520-1579-4489-8003-154b34b8f403", + "name": "Private-subnet-filter", + "description": "Test rule", + "state": "REPROVISIONING", + "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_IPv6_PREFIX_FILTER_RULE_DELETION", + "uuid": "e8528788-14d3-4a7b-a740-99b702067485" + }, + "action": "PERMIT", + "prefix": "2001:7a9::34f4:0:f3dd:1/126", + "prefixMatch": "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_invalid_direction": { + "400_transient_filter": { "value": [ { - "errorCode": "EQ-3044001", - "errorMessage": "Invalid input", - "correlationId": "20d32a80-0d61-4333-bc03-707b591ae2f5", - "additionalInfo": [ - { - "property": "direction" - } - ] + "errorCode": "EQ-3044215", + "errorMessage": "Cannot delete route filter rule in transient state", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Cannot delete route filter rule in transient state" } ] }, - "400_transient_state": { + "PatchRouteFilterRuleName": { "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" + "op": "replace", + "path": "/name", + "value": "test-route-filter-name-patch" } ] }, - "DetachConnectionRouteFilterInboundResponse": { + "PatchRouteFilterRulePrefix": { + "value": [ + { + "op": "replace", + "path": "/prefix", + "value": "192.168.0.0/30" + } + ] + }, + "PatchRouteFilterRulePrefixMatch": { + "value": [ + { + "op": "replace", + "path": "/prefixMatch", + "value": "orlonger" + } + ] + }, + "RouteFilterRulesGetAllChangesResponseExample": { "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" + "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", + "prefixMatch": "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" + } + ] + } + ] } }, - "DetachConnectionRouteFilterOutboundResponse": { + "RouteFilterRuleGetChangeResponseExample": { "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" + "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", + "prefixMatch": "exact", + "action": "PERMIT" + } } }, - "RouteFilterCreateBgpIpv4Prefix": { + "RouteFilterRulesBulkResponse": { "value": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", - "project": { - "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" + "pagination": { + "offset": 0, + "limit": 32, + "total": 2, + "next": null, + "previous": null }, - "notifications": { - "type": "ALL", - "emails": [ - "test@equinix.com" - ] - } + "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", + "state": "PROVISIONING", + "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", + "state": "PROVISIONING", + "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" + } + } + ] } }, - "RouteFilterCreateBgpIpv6Prefix": { + "RouteAggregationCreateBgpIpv4Prefix": { "value": { - "type": "BGP_IPv6_PREFIX_FILTER", - "name": "My-route-filter-v6", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test aggregation", "project": { - "projectId": 567 + "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } }, - "RouteFilterCreateBgpIpv4PrefixResponse": { + "RouteAggregationCreateBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4", - "description": "Test filter", + "name": "My-prefix-aggregation-v4", + "description": "Test aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "notMatchedRuleAction": "DENY", + "rulesCount": 0, "connectionsCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40214,23 +45308,22 @@ } } }, - "RouteFilterDeleteBgpIpv4PrefixResponse": { + "RouteAggregationDeleteBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4", - "description": "Test filter", + "name": "My-prefix-aggregation-v4", + "description": "Test Aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/c2ec84c5-6de6-4f5c-b506-3ce218630c31", + "type": "BGP_IPv4_PREFIX_AGGREGATION_DELETION", "uuid": "c2ec84c5-6de6-4f5c-b506-3ce218630c31" }, - "notMatchedRuleAction": "DENY", "connectionsCount": 0, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40249,42 +45342,31 @@ } } }, - "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": { + "PatchRouteAggregationName": { "value": [ { "op": "replace", "path": "/name", - "value": "My-route-filter-v4-updated" + "value": "My-route-aggregation-v4-updated" } ] }, - "RouteFilterNamePatchResponse": { + "RouteAggregationNamePatchResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My-prefix-filter-v4-updated", - "description": "Test filter", + "name": "My-prefix-aggregation-v4-updated", + "description": "Test aggregation", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3" }, - "notMatchedRuleAction": "DENY", "connectionsCount": 1, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40295,17 +45377,7 @@ } } }, - "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": { + "RouteAggregationGetAllChangesResponseExample": { "value": { "pagination": { "offset": 0, @@ -40316,8 +45388,8 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40329,17 +45401,17 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test Aggregation", "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_UPDATE", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40354,18 +45426,18 @@ { "op": "replace", "path": "/name", - "value": "My-route-filter-v4-updated", - "previousValue": "My-route-filter-v4" + "value": "My-route-aggregations-v4-updated", + "previousValue": "My-route-aggregations-v4" } ] } ] } }, - "RouteFilterGetChangeResponseExample": { + "RouteAggregationGetChangeResponseExample": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/changes/04af0d37-9160-43d8-97ef-9da9786996a3", + "type": "BGP_IPv4_PREFIX_AGGREGATION_CREATION", "uuid": "04af0d37-9160-43d8-97ef-9da9786996a3", "status": "COMPLETED", "createdBy": "testuser", @@ -40377,16 +45449,16 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER", - "name": "My-route-filter-v4", - "description": "Test filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION", + "name": "My-route-aggregation-v4", + "description": "Test aggregation", "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" } } } }, - "RouteFilterGetConnectionsResponse": { + "RouteAggregationGetConnectionsResponse": { "value": { "pagination": { "offset": 0, @@ -40403,7 +45475,7 @@ } } }, - "SearchRouteFiltersRequest": { + "SearchRouteAggregationsRequest": { "value": { "filter": { "and": [ @@ -40411,14 +45483,14 @@ "property": "/type", "operator": "=", "values": [ - "BGP_IPv4_PREFIX_FILTER" + "BGP_IPv4_PREFIX_AGGREGATION" ] }, { "property": "/name", "operator": "like", "values": [ - "%Route_Filter_Demo%" + "%Route_Aggregation_Demo%" ] }, { @@ -40443,27 +45515,26 @@ ] } }, - "SearchRouteFiltersResponse": { + "SearchRouteAggregationsResponse": { "value": { "pagination": { "offset": 1, "limit": 2, "total": 10, - "next": "/routeFilters?offset=3&limit=2", - "previous": "/routeFilters?offset=0&limit=2" + "next": "/routeAggregations?offset=3&limit=2", + "previous": "/routeAggregations?offset=0&limit=2" }, "data": [ { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My_Route_Filter_Demo_1", - "description": "Test filter", + "name": "My_Route_Aggregation_Demo_1", + "description": "Test aggregation", "state": "PROVISIONING", - "notMatchedRuleAction": "DENY", "connectionsCount": 1, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40474,16 +45545,15 @@ } }, { - "href": "https://api.equinix.com/fabric/v4/routeFilters/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "type": "BGP_IPv4_PREFIX_FILTER", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/795a8471-6595-4ac6-a2f4-b3d96ed3a59d", + "type": "BGP_IPv4_PREFIX_AGGREGATION", "uuid": "695a8471-6595-4ac6-a2f4-b3d96ed3a59d", - "name": "My_Route_Filter_Demo_2", - "description": "Test filter", + "name": "My_Route_Aggregation_Demo_2", + "description": "Test aggregation", "state": "PROVISIONING", - "notMatchedRuleAction": "DENY", "connectionsCount": 0, + "rulesCount": 0, "project": { - "href": "https://api.equinix.com/resourceManager/v1/projects/567", "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, "changeLog": { @@ -40496,7 +45566,7 @@ ] } }, - "RouteFilterRulesGetAll": { + "RouteAggregationRulesGetAll": { "value": { "pagination": { "offset": 0, @@ -40507,18 +45577,16 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "exact", - "action": "PERMIT", "prefix": "192.168.10.0/24", "state": "PROVISIONED", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40529,18 +45597,16 @@ } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "orlonger", - "action": "PERMIT", "prefix": "192.168.20.0/24", "state": "PROVISIONED", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40553,38 +45619,27 @@ ] } }, - "RouteFilterRuleCreateBgpIpv4Prefix": { + "RouteAggregationRuleCreateBgpIpv4Prefix": { "value": { - "name": "Private-subnet-filter", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/24", - "prefixMatch": "exact" + "prefix": "192.168.0.0/24" } }, - "RouteFilterRuleCreateBgpIpv6Prefix": { + "RouteAggregationRuleCreateBgpIpv4PrefixResponse": { "value": { - "name": "Private-subnet-filter", - "description": "Test rule", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "orlonger" - } - }, - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", + "name": "Private-subnet-aggregation", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_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", @@ -40597,73 +45652,24 @@ } } }, - "RouteFilterRuleCreateBgpIpv6PrefixResponse": { + "UpdateRouteAggregationRuleIPv4": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", - "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", - "description": "Test rule", - "state": "PROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_CREATION", - "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e" - }, - "action": "PERMIT", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "exact", - "changeLog": { - "createdBy": "testuser", - "createdByEmail": "testuser@equinix.com", - "createdByFullName": "testuser testuser", - "createdDateTime": "2020-05-21T10:30:00Z", - "updatedBy": "testuser", - "updatedByEmail": "testuser@equinix.com", - "updatedByFullName": "testuser testuser", - "updatedDateTime": "2020-05-21T10:30:00Z" - } - } - }, - "400_bad_request": { - "value": [ - { - "errorCode": "EQ-3044013", - "errorMessage": "Invalid argument value passed", - "property": "prefixMatch", - "correlationId": "cebc3d33-9037-4a2b-a7af-0ad65602cdec" - } - ] - }, - "UpdateRouteFilterRuleIPv4": { - "value": { - "name": "Private-subnet-filter-update", - "description": "Test rule", - "prefix": "192.168.0.0/24", - "prefixMatch": "exact" - } - }, - "UpdateRouteFilterRuleIPv6": { - "value": { - "name": "Private-subnet-filter-update", + "name": "Private-subnet-aggregation-update", "description": "Test rule", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "exact" + "prefix": "192.168.0.0/24" } }, - "RouteFilterRuleReplaceIpv4Response": { + "RouteAggregationRuleReplaceIpv4Response": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter-update", + "name": "Private-subnet-aggregation-update", "description": "Test rule", - "prefixMatch": "exact", "state": "REPROVISIONING", - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/a25ca469-721a-4614-89a9-cdef287aa628", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_UPDATE", "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" }, "prefix": "192.168.0.0/24", @@ -40679,50 +45685,20 @@ } } }, - "RouteFilterRuleReplaceIpv6Response": { + "RouteAggregationRuleDeleteBgpIpv4PrefixResponse": { "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter-update", - "description": "Test rule", - "prefixMatch": "exact", - "state": "REPROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_UPDATE", - "uuid": "a25ca469-721a-4614-89a9-cdef287aa628" - }, - "prefix": "2001:7a9::34f4:0:f3dd:1/128", - "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", + "name": "Private-subnet-aggregation", "description": "Test rule", "state": "DEPROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/e8528788-14d3-4a7b-a740-99b702067485", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_DELETION", "uuid": "e8528788-14d3-4a7b-a740-99b702067485" }, - "action": "PERMIT", "prefix": "192.168.0.0/24", - "prefixMatch": "exact", "changeLog": { "createdBy": "testuser", "createdByEmail": "testuser@equinix.com", @@ -40739,58 +45715,26 @@ } } }, - "RouteFilterRuleDeleteBgpIpv6PrefixResponse": { - "value": { - "href": "https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/9890d520-1579-4489-8003-154b34b8f403", - "type": "BGP_IPv6_PREFIX_FILTER_RULE", - "uuid": "9890d520-1579-4489-8003-154b34b8f403", - "name": "Private-subnet-filter", - "description": "Test rule", - "state": "REPROVISIONING", - "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_IPv6_PREFIX_FILTER_RULE_DELETION", - "uuid": "e8528788-14d3-4a7b-a740-99b702067485" - }, - "action": "PERMIT", - "prefix": "2001:7a9::34f4:0:f3dd:1/126", - "prefixMatch": "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": { + "400_transient_aggregation": { "value": [ { - "errorCode": "EQ-3044215", - "errorMessage": "Cannot delete Route Filter Rule, Route Filter transient state", + "errorCode": "EQ-3044415", + "errorMessage": "Cannot delete route aggregation rule, route aggregation in transient state", "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", - "details": "Cannot delete Route Filter Rule, Route filter is in transient state" + "details": "Cannot delete route aggregation rule, route aggregation is in transient state" } ] }, - "PatchRouteFilterRuleName": { + "PatchRouteAggregationRuleName": { "value": [ { "op": "replace", "path": "/name", - "value": "test-route-filter-name-patch" + "value": "test-route-aggregation-name-patch" } ] }, - "PatchRouteFilterRulePrefix": { + "PatchRouteAggregationRulePrefix": { "value": [ { "op": "replace", @@ -40799,16 +45743,7 @@ } ] }, - "PatchRouteFilterRulePrefixMatch": { - "value": [ - { - "op": "replace", - "path": "/prefixMatch", - "value": "orlonger" - } - ] - }, - "RouteFilterRulesGetAllChangesResponseExample": { + "RouteAggregationRulesGetAllChangesResponseExample": { "value": { "pagination": { "offset": 0, @@ -40819,8 +45754,8 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", "status": "COMPLETED", "createdBy": "testuser", @@ -40832,65 +45767,19 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER_RULE", - "name": "Private-subnet-filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/25", - "prefixMatch": "exact", - "action": "PERMIT" + "prefix": "192.168.0.0/25" } - }, - { - "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": { + "RouteAggregationRuleGetChangeResponseExample": { "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/ff9653dc-88c5-47b5-b552-8a08d2f73f7e", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "ff9653dc-88c5-47b5-b552-8a08d2f73f7e", "status": "COMPLETED", "createdBy": "testuser", @@ -40902,16 +45791,14 @@ "updatedByFullName": null, "updatedDateTime": "2020-05-21T10:30:00Z", "data": { - "type": "BGP_IPv4_PREFIX_FILTER_RULE", - "name": "Private-subnet-filter", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", + "name": "Private-subnet-aggregation", "description": "Test rule", - "prefix": "192.168.0.0/25", - "prefixMatch": "exact", - "action": "PERMIT" + "prefix": "192.168.0.0/25" } } }, - "RouteFilterRulesBulkResponse": { + "RouteAggregationRulesBulkResponse": { "value": { "pagination": { "offset": 0, @@ -40922,18 +45809,16 @@ }, "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/65b025ef-022b-4180-85cf-82cfc1ab655b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "65b025ef-022b-4180-85cf-82cfc1ab655b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "exact", - "action": "PERMIT", "prefix": "192.168.10.0/24", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -40944,18 +45829,16 @@ } }, { - "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/ea48337b-fe04-4164-a3f0-48d81abf575b", + "type": "BGP_IPv4_PREFIX_AGGREGATION_RULE", "uuid": "ea48337b-fe04-4164-a3f0-48d81abf575b", - "name": "Private-subnet-filter-2", + "name": "Private-subnet-aggregation-2", "description": "Test rule", - "prefixMatch": "orlonger", - "action": "PERMIT", "prefix": "192.168.20.0/24", "state": "PROVISIONING", "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", + "href": "https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/9890d520-1579-4489-8003-154b34b8f403/changes/9397f111-19aa-489c-b3c7-349c86818f2d", + "type": "IPv4_BGP_PREFIX_AGGREGATION_RULE_CREATION", "uuid": "9397f111-19aa-489c-b3c7-349c86818f2d" }, "changeLog": { @@ -41054,10 +45937,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41077,8 +45962,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41096,10 +45979,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "project": { @@ -41113,8 +45998,6 @@ ] } ], - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "marketplaceSubscription": { "href": "https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5", @@ -41129,6 +46012,34 @@ } } }, + "CloudRouterResponseExampleDryRun": { + "value": { + "type": "XF_ROUTER", + "name": "My-Cloud-Router", + "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/SV", + "metroCode": "SV" + }, + "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", + "code": "STANDARD" + }, + "project": { + "projectId": "e1c94b73-1be8-44d5-b577-99bbf67249a4" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "abc@abc.com" + ] + } + ], + "account": { + "accountNumber": 123 + } + } + }, "400_invalid_package": { "value": [ { @@ -41139,6 +46050,48 @@ } ] }, + "400_invalid_name": { + "value": [ + { + "errorCode": "EQ-3040022", + "errorMessage": "Name is minimum 3 and up to 24 characters in length", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Name is minimum 3 and up to 24 characters in length", + "additionalInfo": [ + { + "property": "/name", + "reason": "Name is minimum 3 and up to 24 characters in length" + } + ] + } + ] + }, + "400_invalid_account": { + "value": [ + { + "errorCode": "EQ-3040032", + "errorMessage": "Invalid account number", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Invalid account number", + "additionalInfo": [ + { + "property": "/account/accountNumber", + "reason": "Invalid project account number" + } + ] + } + ] + }, + "400_max_lab_fcr_demo": { + "value": [ + { + "errorCode": "EQ-3040060", + "errorMessage": "Create request rejected", + "correlationId": "c82ff3bc-de07-47e5-b3ec-53a009d01515", + "details": "Only 3 Lab Fabric Cloud Routers allowed per Organization" + } + ] + }, "CloudRouterResponseExample": { "value": { "href": "https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d", @@ -41147,17 +46100,19 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { "purchaseOrderNumber": "1-129105284100" }, "project": { - "projectId": "123456" + "projectId": "ae708bbb-d669-406a-845a-99b39ff65fd0" }, "notifications": [ { @@ -41170,10 +46125,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 4, - "bgpIpv6RoutesCount": 4, - "distinctIpv4PrefixesCount": 2, - "distinctIpv6PrefixesCount": 2, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41199,10 +46150,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "project": { @@ -41216,10 +46169,6 @@ ] } ], - "bgpIpv4RoutesCount": 4, - "bgpIpv6RoutesCount": 4, - "distinctIpv4PrefixesCount": 2, - "distinctIpv6PrefixesCount": 2, "connectionsCount": 0, "marketplaceSubscription": { "href": "https://api.equinix.com/fabric/v4/marketplaceSubscriptions/20d32a80-0d61-4333-bc03-707b591ae2f5", @@ -41291,10 +46240,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41314,8 +46265,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "change": { "uuid": "3c9b8e7a2-f3b1-4576-a4a9-1366a63df170", @@ -41688,10 +46637,12 @@ "type": "XF_ROUTER", "name": "My-Cloud-Router", "location": { + "metroHref": "https://api.equinix.com/fabric/v4/metros/HH", "metroCode": "HH" }, "equinixAsn": 30000, "package": { + "href": "https://api.equinix.com/fabric/v4/routerPackages/STANDARD", "code": "STANDARD" }, "order": { @@ -41711,8 +46662,6 @@ "account": { "accountNumber": 123 }, - "bgpIpv4RoutesCount": 0, - "bgpIpv6RoutesCount": 0, "connectionsCount": 0, "changeLog": { "createdBy": "abc@xyz.com", @@ -41747,13 +46696,7 @@ "description": "string", "totalIPv4RoutesMax": 50, "totalIPv6RoutesMax": 50, - "staticIPv4RoutesMax": 3, - "staticIPv6RoutesMax": 3, - "naclsMax": 2, - "naclRulesMax": 5, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 10, "crCountMax": 3, "vcBandwidthMax": 50, @@ -41769,13 +46712,7 @@ "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, @@ -41791,13 +46728,7 @@ "description": "string", "totalIPv4RoutesMax": 4000, "totalIPv6RoutesMax": 250, - "staticIPv4RoutesMax": 150, - "staticIPv6RoutesMax": 150, - "naclsMax": 60, - "naclRulesMax": 1000, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 99999, "crCountMax": 3, "vcBandwidthMax": 50000, @@ -41813,13 +46744,7 @@ "description": "string", "totalIPv4RoutesMax": 10000, "totalIPv6RoutesMax": 500, - "staticIPv4RoutesMax": 150, - "staticIPv6RoutesMax": 150, - "naclsMax": 60, - "naclRulesMax": 1000, - "haSupported": true, "routeFilterSupported": true, - "natType": "STATIC_NAT", "vcCountMax": 10, "crCountMax": 3, "vcBandwidthMax": 50000, @@ -42819,6 +47744,24 @@ ] } }, + "CreateNetworkDryRunResponse": { + "value": { + "type": "EVPLAN", + "name": "My-EVPLAN-1", + "scope": "GLOBAL", + "project": { + "projectId": "z1a596ed-s24a-097c-12a8-44e00000ee11" + }, + "notifications": [ + { + "type": "ALL", + "emails": [ + "test@equinix.com" + ] + } + ] + } + }, "NetworkPostResponseExample": { "value": { "href": "https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784", @@ -45188,9 +50131,12 @@ "isAutoRenew": false, "offerId": "offer-wqquayy2jy25o", "trial": { - "enabled": true, - "expiryDateTime": "2020-05-21T10:30:00Z" + "enabled": true }, + "metroCodes": [ + "SV", + "DC" + ], "entitlements": [ { "uuid": "a15b6b20-b765-4bf7-a661-a3e9372d5435", @@ -45206,7 +50152,6 @@ }, { "uuid": "2e3a9041-19ce-4c80-add3-3e3a069fc5e9", - "name": "Connection 500 Mbps", "quantityEntitled": 1, "quantityConsumed": 0, "quantityAvailable": 1, @@ -45214,6 +50159,16 @@ "type": "IP_VC", "bandwidth": 500 } + }, + { + "uuid": "9e30f661-d92e-4083-812f-db359807806e", + "quantityEntitled": 1, + "quantityConsumed": 0, + "quantityAvailable": 1, + "asset": { + "type": "IPWAN_VC", + "bandwidth": 200 + } } ], "changeLog": { @@ -45245,7 +50200,7 @@ "state": "PROVISIONED", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45257,10 +50212,10 @@ "type": "TELEMETRY_STREAM", "name": "splunk1", "description": "subscription-1", - "enabled": true, "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" - } + }, + "enabled": true } }, "StreamResponseExample": { @@ -45277,7 +50232,7 @@ "state": "PROVISIONED", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45303,7 +50258,7 @@ "state": "DEPROVISIONING", "assetsCount": 1, "streamSubscriptionsCount": 2, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45344,6 +50299,7 @@ { "href": "https://api.equinix.com/fabric/v4/ports/e684aa26-8276-48b7-bb42-a6d9def0a419", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_PORT", "metricsEnabled": false, "attachmentStatus": "ATTACHED" } @@ -45352,8 +50308,9 @@ }, "StreamConnectionAssetResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "IP_VC", "metricsEnabled": false, "attachmentStatus": "ATTACHED" } @@ -45365,16 +50322,18 @@ }, "StreamRouterAssetAttachResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_ROUTER", "metricsEnabled": false, "attachmentStatus": "ATTACHING" } }, "StreamRouterAssetDetachResponseExample": { "value": { - "href": "https://api.equinix.com/fabric/v4/stream/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", + "href": "https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/routers/d684aa26-8276-48b7-bb42-a6d9def0a418", "uuid": "d684aa26-8276-48b7-bb42-a6d9def0a418", + "type": "XF_ROUTER", "metricsEnabled": false, "attachmentStatus": "DETACHING" } @@ -45437,6 +50396,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45444,7 +50413,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45474,6 +50443,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45501,6 +50480,27 @@ "project": { "projectId": "dadd3ab6-c0af-430c-8216-43d44f08c1c5" }, + "filters": { + "and": [ + { + "property": "/type", + "operator": "LIKE", + "values": [ + "%com.equinix.fabric.connection%" + ] + } + ] + }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SLACK" @@ -45530,6 +50530,11 @@ } ] }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "PAGERDUTY", @@ -45566,6 +50571,11 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xx.datadoghq.com", "type": "DATADOG", @@ -45608,6 +50618,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45624,7 +50644,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } } @@ -45648,6 +50668,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45694,6 +50724,16 @@ } ] }, + "metricSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, + "eventSelector": { + "include": [ + "equinix.fabric.connection.*" + ] + }, "sink": { "uri": "https://xxxxxx", "type": "SPLUNK_HEC", @@ -45710,7 +50750,7 @@ "batchSizeMax": 50, "batchWaitTimeMax": 5 }, - "changelog": { + "changeLog": { "createdDateTime": "2024-05-06T16:21:18.545214Z" } }